当前位置: 首页 > 面试题库 >

Crop image to smallest size by removing transparent pixels in java

公良子轩
2023-03-14
问题内容

I have a sprite sheet which has each image centered in a 32x32 cell. The
actual images are not 32x32, but slightly smaller. What I’d like to do is take
a cell and crop the transparent pixels so the image is as small as it can be.

How would I do that in Java (JDK 6)?

Here is an example of how I’m currently breaking up the tile sheet into cells:

BufferedImage tilesheet = ImageIO.read(getClass().getResourceAsStream("/sheet.png");
for (int i = 0; i < 15; i++) {
  Image img = tilesheet.getSubimage(i * 32, 0, 32, 32);
  // crop here..
}

My current idea was to test each pixel from the center working my way out to
see if it is transparent, but I was wondering if there would be a
faster/cleaner way of doing this.


问题答案:

I think this is exactly what you should do, loop through the array of pixels,
check for alpha and then discard. Although when you for example would have a
star shape it will not resize the image to be smaller be aware of this.



 类似资料:

相关阅读

相关文章

相关问答