2010-02-21 71 views

回答

6

有關於如何做到這一點四處撒網完整的報道,像這些應該讓你去:

+1

實際上我是在談論文件大小(3mb - > 200 kb),而不是圖像的尺寸。它也覆蓋他們嗎? – Anand 2010-12-15 11:34:25

+0

@Anand你找到解決方案嗎? – 2016-08-17 07:04:41

5

你可以用」 t很容易將圖像從一個文件大小調整到另一個文件大小,但大多數JPG/PNG/GIF /等。基於其分辨率往往具有相似的文件大小。例如,一個200kb的壓縮JPG可能通常是1280x960的大小。如果是這種情況,您只需定位所有調整大小操作即可將目標圖像調整爲該大小,並獲得您想要的大小約束。

一個非常簡單的方法就是使用非常簡單的java image resizing library(Apache 2許可證),它可以完全適合您。示例代碼,調整應該是這樣的:

BufferedImage img = ImageIO.read(...); // load image 
BufferedImage scaledImg = Scalr.resize(img, 1280, 960); 

您的圖片比例兌現,該庫使得它應該使用基於圖像因縮放變化量的方法的最佳猜測(最快,平衡或質量)和支持最好的Java2D圖像類型總是用來進行縮放以避免「黑色」結果或非常糟糕的輸出結果(例如過度抖動的GIF圖像)。

另外,如果你想用它強制輸出最好看的結果可能在Java中,API調用是這樣的:

BufferedImage img = ImageIO.read(...); // load image 
BufferedImage scaledImg = Scalr.resize(img, Method.QUALITY, 1280, 960); 

圖書館使用的Java2D推薦增量擴展你給你最好看的結果。

您可以通讀庫中的所有註釋(代碼本身大量文檔)以查看解決所有不同的JDK錯誤或進行優化以改進性能或內存使用情況。我花了很多時間來調整這個實現,並且已經有很多人在Web應用程序和其他Java項目中部署它的很好的反饋。