2017-02-08 53 views
-1

我試圖建立這些合成圖像程序之一,你餵它X圖像,它會使另一張照片出這些圖像。現在,我已經從比較公式中獲得了一切,從源文件夾中獲取文件以進行比較,但我似乎無法弄清楚如何用我已有的圖像替換單一像素。如果這可以用bufferedImage /文件完成,怎麼樣?如果不是,我還有另一種方法可以實現它嗎?有沒有辦法用文件/緩衝讀取器替換圖像的像素?

+2

讀取文件將是一個問題,因爲許多文件格式被壓縮,並不總是以線性方式存儲圖像數據。你可以使用'ImageIO'加載圖像,它會給你一個'BufferedImage',或者可能有其他庫可用,它們不需要加載整個圖像以便操作它。 – MadProgrammer

+0

我建議使用'ImageIO'和'BufferedImage's,但請閱讀[使用圖像](https://docs.oracle.com/javase/tutorial/2d/images/index.html)和[合成](https://docs.oracle.com .com/javase/tutorial/2d/advanced/compositing.html)在開始之前在Java2D教程中。 PS:一些(未壓縮)格式可以支持[通過ImageWriter API取代像素](https://docs.oracle.com/javase/7/docs/api/javax/imageio/ImageWriter.html#canReplacePixels(int) ),但我不認爲你會需要這個只是.. – haraldK

回答

-1
//create simple image 
BufferedImage img = new BufferedImage(320, 240, BufferedImage.TYPE_INT_RGB); 
//set pixel color RED at x=10, y=10 
img.setRGB(10, 10, Color.red.getRGB()); 

//get pixel color as RGB 
int rgb = img.getRGB(50, 50); 

//get components of RGB as separated R, G and B values 
int red = (rgb >> 16) & 0xFF; 
int green = (rgb >> 8) & 0xFF; 
int blue = rgb & 0xFF; 
+0

對不起,澄清,我有一個空的Bufferedimage對象,我想用其他BufferedImages填充它。有沒有辦法將BufferedImage中的像素設置爲另一個BufferedImage對象或類似的東西? –

相關問題