java圖像處理的方法

來源:文萃谷 1.29W

項目需要調整圖片服務器的解決方案,這次調整使用fastdfs存儲小文件,也就是圖片,因為現在還沒有fastdfs的版的客服端,所以理所當然把處理圖片放到了java這塊,使用java來處理圖片並且上傳到fastdfs上以下是小編為大家搜索整理的java圖像處理的方法,歡迎閲讀!更多精彩內容請及時關注我們應屆畢業生考試網!

java圖像處理的方法

  圖像剪切

對於一個已經存在的Image對象,要得到它的一個局部圖像,可以使用下面的步驟:

//import .*;

//import e.*;

Image croppedImage;

ImageFilter cropFilter;

CropFilter =new CropImageFilter(25,30,75,75);//四個參數分別為圖像起點座標和寬高,即CropImageFilter(int x,int y,int width,int height),詳細情況請參考API

CroppedImage= efaultToolkit()teImage(new FilteredImageSource(ource(),cropFilter));

//如果是在Component的子類中使用,可以將上面的efaultToolkit().去掉。

//FilteredImageSource是一個ImageProducer對象。

  圖像縮放

對於一個已經存在的Image對象,得到它的一個縮放的Image對象可以使用Image的getScaledInstance方法:

Image scaledImage=sourceImage. getScaledInstance(100,100, E_DEFAULT);//得到一個100X100的'圖像

Image doubledImage=sourceImage. getScaledInstance(idth(this)*2,eight(this)*2, E_DEFAULT);//得到一個放大兩倍的圖像,這個程序一般在一個swing的組件中使用,而類Jcomponent實現了圖像觀察者接口ImageObserver,所有可以使用this。

//其它情況請參考API。

  灰度變換

下面的程序使用三種方法對一個彩色圖像進行灰度變換,變換的效果都不一樣。一般而言,灰度變換的算法是將象素的三個顏色分量使用 R*0.3+G*0.59+B*0.11得到灰度值,然後將之賦值給紅綠藍,這樣顏色取得的效果就是灰度的。另一種就是取紅綠藍三色中的最大值作為灰度值。java核心包也有一種算法,但是沒有看源代碼,不知道具體算法是什麼樣的,效果和上述不同。

/* */

/*@author:cherami */

/*/

import e.*;

public class GrayFilter extends RGBImageFilter {

int modelStyle;

public GrayFilter() {

modelStyle=_MAX;

canFilterIndexColorModel=true;

}

public GrayFilter(int style) {

modelStyle=style;

canFilterIndexColorModel=true;

}

public void setColorModel(ColorModel cm) {

if (modelStyle==_MAX) {

substituteColorModel(cm,new GrayModel(cm));

}

else if (modelStyle==_FLOAT) {

substituteColorModel(cm,new GrayModel(cm,modelStyle));

}

public int filterRGB(int x,int y,int pixel) {

return pixel;

}

}

/* */

/*@author:cherami */

/*/

import e.*;

public class GrayModel extends ColorModel {

public static final int CS_MAX=0;

public static final int CS_FLOAT=1;

ColorModel sourceModel;

int modelStyle;

public GrayModel(ColorModel sourceModel) {

super(ixelSize());

ceModel=sourceModel;

modelStyle=0;

}

熱門標籤