本文目錄一覽:
- 1、JAVA關於圖像處理問題
- 2、java直接保存的圖片不清楚,請問需要如何處理
- 3、java圖片處理
- 4、用java處理圖片,使圖片像素和長寬成比例變小,請各位高手幫忙解決一下,急
- 5、如何用Java對圖片進行馬賽克處理?
JAVA關於圖像處理問題
讀取控制台輸入的路徑
判斷文件是否存在
Y: – 2
N:在命令行輸出”Sorry, I cannot find that file.”並退出
讀取圖片
分析圖片像素,按要求將多餘的像素截掉
創建一個新圖片,像素為原圖片的1/4大小
合併像素,將4個像素通過給定的條件計算RGB值合併為1個像素
輸出圖片,路徑為原始圖片路徑,文件名按要求做處理
不知仁兄的水平在啥程度,整個流程如上列出,哪一步不明確的可以追問
java直接保存的圖片不清楚,請問需要如何處理
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(image);
param.setQuality(1f, false);
encoder.setJPEGEncodeParam(param);
encoder.encode(image);
out.close();
public void setQuality(float quality, boolean forceBaseline)
quality取值在 1.0 到 0.0 之間
JDK6 裏面是可以使用的,JDK7就看着辦吧
java圖片處理
下一個圖像處理庫,簡單的,用java語言可以直接調用的,SimpleImage
如果有複雜的需求,用jni調用opencv(c++的dll形式,必須用jni才能調用)
用java處理圖片,使圖片像素和長寬成比例變小,請各位高手幫忙解決一下,急
90 * 90的圖片
應該是分成9個10 * 10的吧
static Image createImage(Image image, int x, int y, int width, int height, int transform)
Image類裏面自帶方法創建分割圖片
可以這樣創建:
Image imgBase = Image.createImage(“/*.png”);
Image img[] = new Image[9];
for(int i = 0; i 9; i++)
{
img[i] = Image.createImage(imgBase, (i % 3) * 10, (i / 3) * 10, 10, 10, Sprite.TRANS_NONE); //參數分別是:源圖片,截取的X坐標,Y坐標,寬,高,翻轉類型
}
這樣就可以了
當然以上代碼需要放在try裏面
如果想分成其他的小圖片,可以按照需要變動坐標和寬高等參數
如何用Java對圖片進行馬賽克處理?
把圖片壓縮成32*32這個不難,java有這樣的類提供了方法
BufferedImage bi = new BufferedImage(w * 2 / scale, h * 2 / scale, bm.getType());//畫布大小
Graphics2D g2 = bi.createGraphics();
g2.drawImage(bm, 0, 0, w * 2 / scale, h * 2 / scale, null); //繪製縮小後的圖
// 轉換成JPEG圖像格式
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(bos);
JPEGEncodeParam jpeg = encoder.getDefaultJPEGEncodeParam(bi);
jpeg.setQuality(1f, false);
encoder.setJPEGEncodeParam(jpeg);
encoder.encode(bi);
byte[] data = bos.toByteArray();
但是要減少顏色數的話,這個比較麻煩,這個首先需要知道圖片中
顏色空間,比如16色,32色等,你需要讀取圖片文件中的內容,然後根據圖片頭的信息
讀取每個像素的RGB值(如果是RGB空間),並對每一個像素進行 顏色 設置
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/201304.html