Мне нужно изменить размер изображений в Java примерно с 1000 до 200 пикселей, затем они копируются в веб-папку для отображения в HTML-отчете с разрешением 200 пикселей. (Обратите внимание, что я должен создать эти файлы, потому что исходные изображения не будут доступны веб-серверу, и простое копирование исходных изображений потребует слишком много места.)
Хотя исходные изображения обычно высокого качества, изображения размером 200 пикселейможет быть довольно зернистым, могу ли я настроить код ниже для получения более качественных изображений
public static BufferedImage resizeUsingImageIO(Image srcImage, int size)
{
int w = srcImage.getWidth(null);
int h = srcImage.getHeight(null);
// Determine the scaling required to get desired result.
float scaleW = (float) size / (float) w;
float scaleH = (float) size / (float) h;
MainWindow.logger.finest("Image Resizing to size:" + size + " w:" + w + ":h:" + h + ":scaleW:" + scaleW + ":scaleH" + scaleH);
//Create an image buffer in which to paint on, create as an opaque Rgb type image, it doesn't matter what type
//the original image is we want to convert to the best type for displaying on screen regardless
BufferedImage bi = new BufferedImage(size, size, BufferedImage.TYPE_INT_RGB);
// Set the scale.
AffineTransform tx = new AffineTransform();
tx.scale(scaleW, scaleH);
// Paint image.
Graphics2D g2d = bi.createGraphics();
g2d.setColor(Color.WHITE);
g2d.fillRect(0, 0, size, size);
g2d.setComposite(AlphaComposite.SrcOver);
g2d.drawImage(srcImage, tx, null);
g2d.dispose();
return bi;