Hey guys 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 colour the pixel it was that would be the tile to draw.
e.g.
Now my question is, Is it possible to loop through an Images pixels? and if so how?
Could you please supply me with some helpful links or code snippets?
Thanks for any help you give me.
解决方案
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.)