Java Loop through pixels in an image?

后端 未结 2 1371
情书的邮戳
情书的邮戳 2020-12-15 17:13

I\'m trying to find a way to make maps for my 2D java game, and I thought of one Idea in which I would loop through each pixel of an image and depends on what color the pixe

2条回答
  •  感动是毒
    2020-12-15 18:04

    Note that if you want to loop over all pixels in an image, make sure to make the outer loop over the y-coordinate, like so:

    for (int y = 0; y < image.getHeight(); y++) {
        for (int x = 0; x < image.getWidth(); x++) {
              int  clr   = image.getRGB(x, y); 
              int  red   = (clr & 0x00ff0000) >> 16;
              int  green = (clr & 0x0000ff00) >> 8;
              int  blue  =  clr & 0x000000ff;
              image.setRGB(x, y, clr);
        }
    }
    

    This will likely make your code much faster, as you'll be accessing the image data in the order it's stored in memory. (As rows of pixels.)

提交回复
热议问题