java圖像處理的方法大全
【提要】本篇《java圖像處理的方法》特別為需要方法編程學習的朋友收集整理的,僅供參考。內容如下:
項目需要調整圖片服務器的解決方案,這次調整使用fastdfs存儲小文件,也就是圖片,因為現在還沒有fastdfs的版的客服端,所以理所當然把處理圖片放到了java這塊,使用java來處理圖片並且上傳到fastdfs上以下是小編為大家搜索整理的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 f
inal int CS_FLOAT=1;
ColorModel sourceModel;
int modelStyle;
public GrayModel(ColorModel sourceModel) {
super(ixelSize());
ceModel=sourceModel;
modelStyle=0;
}
-
關於Java程序員面試中的多線程問題總結
很多核心Java面試題來源於多線程(Multi-Threading)和集合框架(CollectionsFramework),理解核心線程概念時,嫻熟的實際經驗是必需的。這篇文章收集了Java線程方面一些典型的問題,這些問題經常被高級工程師所問到。0、Java中多線程同步是什麼?在多線程程序下,同步能控...
-
java環境變量設置path
導語:java的環境變量是怎麼設置的呢?以下小編為大家介紹java環境變量設置path文章,僅供參考!java環境變量設置path環境變量是一個具有特定名字的對象,它包含了一個或者多個應用程序所將使用到的信息。例如path,當要求系統運行一個程序而沒有告訴它程序所在的完整路...
-
Java開發崗位面試題
為幫助參加Java開發崗位面試的朋友們做好準備,以下是本站小編搜索整理的一份Java集合面試問題40個【附答案】,供參考練習,希望對大家有所幫助!想了解更多相關信息請持續關注我們應屆畢業生考試網!一、Java基礎1、String類為什麼是final的。2、HashMap的源碼,實現原...
-
Java運算符
計算機的最基本用途之一就是執行數學運算,作為一門計算機語言,Java也提供了一套豐富的運算符來操縱變量。歡迎大家閲讀!更多相關信息請關注相關欄目!Java中的運算符和C/C++相差無幾。數學運算符數學運算,結果為一個數值。見下表:關係運算符關係運算符,結果為一個布爾...