到CS_GRAY我知道它可以將圖像轉換使用的Java轉換色彩空間而不使用ConvertColorOp
public static BufferedImage getGrayBufferedImage(BufferedImage image) {
BufferedImageOp op = new ColorConvertOp(ColorSpace
.getInstance(ColorSpace.CS_GRAY), null);
BufferedImage sourceImgGray = op.filter(image, null);
return sourceImgGray;
}
然而CS_GRAY,這是我整個程序的阻塞點。我需要經常這樣做,在800x600像素的圖像上,平均需要大約200-300ms才能完成此操作。我知道我可以更快地做到這一點,通過使用一個循環來遍歷圖像數據並立即設置它。另一方面,上面的代碼構造了一個全新的800x600 BufferedImage,它是灰度級的。我寧願只是轉換我通過的圖像。
是否有人知道如何使用for循環執行此操作,並且該圖像是RGB色彩空間?