使用ImageIO.write绘制BufferedImage,从而调整图像大小

时间:2014-07-21 10:38:20

标签: java javax.imageio

我有这段代码:

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。为什么尺寸如此不同以及如何解决它?

谢谢

0 个答案:

没有答案