Трохи допиляв попередній варіант перетворювальника картинок у таблиці екселя. Тепер він може обробляти навіть великі зображення (наприклад можна отримати таку картинку), а все завдяки зменшенню глибини кольору.
Як зменшити глибину кольору зображення у Java? Я нагуглив такий варіант:
BufferedImage dest = new BufferedImage(src.getWidth(), src.getHeight(),
BufferedImage.TYPE_BYTE_INDEXED);
ColorConvertOp cco = new ColorConvertOp(src.getColorModel().getColorSpace(),
dest.getColorModel().getColorSpace(), null);
cco.filter(src, dest);
return dest;
}
cco.filter(src, dest);
return dest;
}
До купи ще й ресайз зображення:
private static BufferedImage resizeImage(BufferedImage originalImage, int type) {
BufferedImage resizedImage = new BufferedImage(IMG_WIDTH, IMG_HEIGHT, type);
Graphics2D g = resizedImage.createGraphics();
g.drawImage(originalImage, 0, 0, IMG_WIDTH, IMG_HEIGHT, null);
g.dispose();
return resizedImage;
}
BufferedImage resizedImage = new BufferedImage(IMG_WIDTH, IMG_HEIGHT, type);
Graphics2D g = resizedImage.createGraphics();
g.drawImage(originalImage, 0, 0, IMG_WIDTH, IMG_HEIGHT, null);
g.dispose();
return resizedImage;
}
0 коментарі:
Дописати коментар