在Java中遍历我的BufferedImage时,通常会使用如下所示的for循环:
for(int x = 0; x < width; x++) {
for(int y = 0; y < height; y++) {
由于某种原因,这不起作用。但是,当使用这样的for循环时:
for(int x = 0; x < height; x++) {
for(int y = 0; y < width; y++) {
它就像一种魅力。我仍然像在上一个循环(bufferedImage.getRGB(x,y))中那样使用x和y,即使它们已打开。为什么?!
编辑:我得到这样的宽度和高度:
final int width = bufferedImage.getWidth();
final int height = bufferedImage.getHeight();
第二次编辑:不工作,我的意思是rgb值与实际值不匹配。我的图片仅包含(0,255,0)/(255,0,0)/(0,0,255)之类的值,它告诉我(255、255、255)之类的东西。即使那时它是透明的,我也能得到值。
第3次编辑:对于遇到类似问题的每个人:
-切换x和y实际上没有任何作用(在我的情况下,因为我有12x12的图像)
当图像在该点透明时,会出现-像(255,255,255)之类的颜色。知道为什么
答案 0 :(得分:-1)
这里的“ x”的含义是图像中的第x行,而“ y”是图像中的y列,因为您正在操纵像素。因此,x从0变为高度,y从0变为宽度。