用Java進行圖像處理,會遇到ColorSpace這個類:ColorSpace
這個類的作用用官方語言就是就很困惑了,我這里舉一個例子大家就明白這個類是做什么的了,大家利用Photoshop新建一副圖片的時候都要選擇“顏色模式”
圖片中的“顏色模式”就是我們這里的ColorSpace。我們可以利用ColorSpace將一個顏色模式抓換成另一個顏色模式。這點也好理解:你把一副彩色圖片復制到灰度圖片上,圖片就是一個灰色的圖片。
ColorSpace作用:
1.用做一個顏色空間標記,標識 Color 對象的特定顏色空間。
2.通過 ColorModel 對象標識 Image、BufferedImage 或 GraphicsDevice 的特定顏色空間。
3.將指定顏色空間中的顏色與 sRGB 和定義良好的 CIEXYZ 顏色空間中的顏色進行相互轉換的方法。
我們已經知道顏色空間(模式)了,現在就看看它怎么使用,首先需要一個類:ColorConvertOp
看名字也知道它的作用了:顏色轉換操作類。它的作用就是將一個顏色模式的圖片轉換為另一個顏色模式的圖片。知道了這些我就輕易的將一副彩色(RGB)顏色的圖片編程灰色(黑白)顏色的圖片,原理就是利用ColorConvertOp將圖片編成灰色圖片。代碼非常簡單:
解析下上面的函數:
首先創建一個圖片存儲空間newPic,我們定義它的空間類型為:TYPE_3BYTE_BGR(也可以是TYPE_BYTE_GRAY,后者會 損失更多的細節),然后利用ColorConvertOp,將一個RGB顏色的圖片originalPic轉換為灰度圖片newPic。得到這個灰度圖片 newPic后,我們就可以在頁面上顯示和存儲了。
利用BufferedImage.TYPE_3BYTE_BGR存儲獲得的新圖片:
利用BufferedImage.TYPE_BYTE_GRAY存儲獲得的新圖片:
完整的程序代碼見附件
文章地址:http://javapub.iteye.com/blog/687082
相關文章
Java圖像圖片 邊緣檢測 http://javapub.iteye.com/blog/685468
Java圖像變灰 http://javapub.iteye.com/blog/687082
Java 給圖片增加 水印圖片 水印文字 [url]Java 給圖片增加 水印圖片 水印文字[/url]
Java圖像漸變 http://javapub.iteye.com/blog/736799
Java將大圖片轉成小圖片 http://javapub.iteye.com/blog/666607
這個類的作用用官方語言就是就很困惑了,我這里舉一個例子大家就明白這個類是做什么的了,大家利用Photoshop新建一副圖片的時候都要選擇“顏色模式”

圖片中的“顏色模式”就是我們這里的ColorSpace。我們可以利用ColorSpace將一個顏色模式抓換成另一個顏色模式。這點也好理解:你把一副彩色圖片復制到灰度圖片上,圖片就是一個灰色的圖片。
ColorSpace作用:
1.用做一個顏色空間標記,標識 Color 對象的特定顏色空間。
2.通過 ColorModel 對象標識 Image、BufferedImage 或 GraphicsDevice 的特定顏色空間。
3.將指定顏色空間中的顏色與 sRGB 和定義良好的 CIEXYZ 顏色空間中的顏色進行相互轉換的方法。
我們已經知道顏色空間(模式)了,現在就看看它怎么使用,首先需要一個類:ColorConvertOp
看名字也知道它的作用了:顏色轉換操作類。它的作用就是將一個顏色模式的圖片轉換為另一個顏色模式的圖片。知道了這些我就輕易的將一副彩色(RGB)顏色的圖片編程灰色(黑白)顏色的圖片,原理就是利用ColorConvertOp將圖片編成灰色圖片。代碼非常簡單:
- public final BufferedImage getGrayPicture(BufferedImage originalPic) {
- int imageWidth = originalPic.getWidth();
- int imageHeight = originalPic.getHeight();
- BufferedImage newPic = new BufferedImage(imageWidth, imageHeight,
- BufferedImage.TYPE_3BYTE_BGR);
- ColorConvertOp cco = new ColorConvertOp(ColorSpace
- .getInstance(ColorSpace.CS_GRAY), null);
- cco.filter(originalPic, newPic);
- return newPic;
- }
解析下上面的函數:
首先創建一個圖片存儲空間newPic,我們定義它的空間類型為:TYPE_3BYTE_BGR(也可以是TYPE_BYTE_GRAY,后者會 損失更多的細節),然后利用ColorConvertOp,將一個RGB顏色的圖片originalPic轉換為灰度圖片newPic。得到這個灰度圖片 newPic后,我們就可以在頁面上顯示和存儲了。
利用BufferedImage.TYPE_3BYTE_BGR存儲獲得的新圖片:

利用BufferedImage.TYPE_BYTE_GRAY存儲獲得的新圖片:

完整的程序代碼見附件
文章地址:http://javapub.iteye.com/blog/687082
相關文章
Java圖像圖片 邊緣檢測 http://javapub.iteye.com/blog/685468
Java圖像變灰 http://javapub.iteye.com/blog/687082
Java 給圖片增加 水印圖片 水印文字 [url]Java 給圖片增加 水印圖片 水印文字[/url]
Java圖像漸變 http://javapub.iteye.com/blog/736799
Java將大圖片轉成小圖片 http://javapub.iteye.com/blog/666607
- ZPhotoer.zip (17.1 KB)
- 下載次數: 126