当java程序添加文本时,图像大小会增加

时间:2016-06-08 14:02:41

标签: java image-processing graphics

我正在创建带有标题的图像,但在对图像应用文本标题之前,图像的大小为1 mb,但之后它增加了大约4-5 mb。

File f = new File("E:/picTest/08062016_110130_0.jpg");

final BufferedImage image = ImageIO.read(f);

String s ="hello";
Graphics g = image.getGraphics();
g.setFont(g.getFont().deriveFont(30f));
g.setColor(Color.black);
g.drawString(s, 100, 100);
g.dispose();

ImageIO.write(image, "png", new File("E:/picTest/test2.jpg"));

所以,我希望我的图像尺寸不会增加,如果增加,图像的最小尺寸会增加。

1 个答案:

答案 0 :(得分:0)

我找不到合适的密文,所以我会将此作为答案发布。您的问题不仅仅是因为您编写新图像,而且还在编写新文件时将文件格式从丢失格式jpg转换为无损格式png,因此您的文件很多更大,因为png文件几乎总是大于他们的jpg等价物。如果您最关心图像质量而不是文件大小,那么继续您正在做的事情,尽管您应该将要写入的文件的扩展名更改为png。否则,如果文件大小非常重要,则通过更改

将输出文件写为jpg
ImageIO.write(image, "png", new File("E:/picTest/test2.jpg"));

为:

ImageIO.write(image, "jpg", new File("E:/picTest/test2.jpg"));

有关这两种文件格式和其他格式之间差异的更多信息,请查看PNG vs. GIF vs. JPEG vs. SVG - When best to use?