2016-06-08 39 views
-1

我正在創建具有標題的圖像,但在圖像上應用文本標題之前,圖像的大小爲1 mb,但在此之後它增加了大約4-5 mb。當java程序添加文本時圖像大小增加

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")); 

所以,我想我的圖像大小不增加,如果它增加,圖像的最小尺寸增加。

+2

您似乎將圖像格式從jpg更改爲png,但您寫入的文件仍有jpg擴展名。如果您更改格式,我會希望文件大小發生重大變化,特別是從有損文件格式轉換爲無損文件格式時。 –

+0

看到這個問題和答案:[PNG與GIF對比JPEG與SVG - 何時最好使用?](http://stackoverflow.com/questions/2336522/png-vs-gif-vs-jpeg-vs- svg-when-best-to-use),更多關於格式之間的差異。 –

回答

0

我無法找到一個體面的重複,所以我會張貼這個答案。你的問題是由於你不僅僅是在寫一個新的圖像,而且你還在將文件格式從無損格式JPG轉換爲無損格式PNG,當你編寫新文件時,由於這個原因你的文件很多更大,因爲PNG文件幾乎總是比他們的JPG相當。如果你最關心的是圖像質量超過文件大小,那麼繼續你在做什麼,儘管你應該改變你寫的文件的擴展名到PNG。否則,如果文件大小是最重要的,然後通過改變

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

寫你的輸出文件爲JPG:

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

再次以獲得更多關於這兩種文件格式之間的差異,以及其他格式以及請看PNG vs. GIF vs. JPEG vs. SVG - When best to use?