[英]In java, the pixel values with which I draw an image and the values extract from the image after drawing it is not remaining same
我使用以下代碼提取圖像的像素值。
int[][] pixels = new int[w][h];
for( int i = 0; i < w; i++ )
for( int j = 0; j < h; j++ )
pixels[i][j] = imgBuffer.getRGB( i, j );
現在,我修改了像素值,並通過
BufferedImage image=new BufferedImage(w,h,BufferedImage.TYPE_INT_RGB);
for( int i = 0; i < w; i++ )
for( int j = 0; j < h; j++ )
image.setRGB( i, j,pixels[i][j] );
現在,當我嘗試通過
int[][] pixels1 = new int[w1][h1];
for( int i = 0; i < w1; i++ )
for( int j = 0; j < h1; j++ )
pixels1[i][j] = imgBuffer1.getRGB( i, j );
這給了我全新的價值觀
您沒有顯示imgBuffer
和imgBuffer1
來源。 它們是同一個對象,還是兩個不同的對象引用了內存中的同一緩沖區,還是兩個不同的對象引用了完全不同的緩沖區? 如果它們沒有指向內存中的相同緩沖區,則可以認為它們至少可以並且可能會產生不同的輸出。
另外,您是否嘗試過進行簡單的測試,例如對輸入使用純色緩沖區(例如,純藍色)並多次提取像素數據以查看其是否與輸入不同? 另外,如果不同,至少是否始終是不同的(一種顏色和另一種顏色之間發生相同的偏移,相同的顏色總是第二次出現,而不管輸入如何,等等)?
您目前所缺少的問題的一部分是您試圖確定為什么會發生這種情況的過程-您已經嘗試了什么才能弄清楚正在發生什么,結果是什么?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.