[英]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.