3
的位深度的最佳方法我在BufferedImage中有一个PNG图像,我想降低比特深度,以使其更小。以下是将图像的一小部分保存到“磁盘”的功能。 writeImage函数是将它写入磁盘的函数。有任何想法吗?请告诉我以降低PNG
private BufferedImage createSubImage(Avatar avatar, int[] srcRect, Dimension size, BufferedImage image, String name) throws IOException {
Graphics2D graphics;
BufferedImage thumb = new BufferedImage(size.width, size.height, BufferedImage.TYPE_INT_ARGB);
graphics = (Graphics2D) thumb.getGraphics();
//lower PNG bitdepth here
graphics.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC);
graphics.drawImage(image, 0, 0, size.width, size.height, srcRect[0], srcRect[1],
srcRect[2], srcRect[3], null);
writeImage(DataAccess.APP_DATA_BUCKET, thumb, "avatars/" + avatar.getId() + "/" + name);
thumb.flush();
return thumb;
}