我有这段代码:
public void draw(File image, int number, File destination) {
BufferedImage img = null;
try {
img = ImageIO.read(image);
//create graphic object
Graphics2D graphicImg = img.createGraphics();
//select the font
Font font = new Font("TimesRoman", Font.BOLD, 96);
graphicImg.setFont(font);
//draw the text
graphicImg.drawString(String.valueOf(number), 100, 100);
//save on disk
ImageIO.write(img, "jpg", destination);
} catch (Exception e) {
System.out.println("Error while trying to write on image!");
}
}
我传递一个文件(将是一个图像)作为第一个参数,一个int和一个文件(代表目的地)的文件。
该方法应在此文件上绘制一个数字。
问题是新图像的图像尺寸将低于原始图像。例如,如果我将带有3Mb的图像作为第一个参数,则保存的图像将具有大约1.5Mb。为什么尺寸如此不同以及如何解决它?
谢谢