2013-07-21 124 views
1

是否可以通過Scalr實現first example生成縮略圖並用顏色填充空白區域

我的代碼如下:

BufferedImage thumbnail = Scalr.resize(ImageIO.read(sourceFile), Scalr.Method.ULTRA_QUALITY, Scalr.Mode.FIT_TO_WIDTH, 
       width, height, Scalr.OP_ANTIALIAS); 
ImageIO.write(thumbnail, destinationfile.getExtension(), destinationfile); 

我想要的是收到這樣的圖片: enter image description here其中藍色條是我想要填充的顏色空間。

謝謝

更新:也許這是可能的Thumbnailator實現?

+0

問題和答案不應僅依賴(外部)鏈接,請至少描述示例。此外,唯一正確的答案是「是」和「否」,除非你要求一個代碼示例 - 你不應該這樣做。 –

+0

@owlstead對不起,更新。 – nKognito

回答

1

沒有人有想法,所以我會發布我的解決方案... 我決定繼續使用Scalr(我沒有檢查Thumbnailator的最新版本,但以前的大圖片失敗)。 所以首先我打電話resize方法,以及隨後,如果新的縮略圖的尺寸更大然後給那些我稱之爲crop方法,通過中心作物的縮略圖。該代碼如下:

BufferedImage thumbnail = Scalr.resize(sourceFile, Scalr.Method.ULTRA_QUALITY, Scalr.Mode.AUTOMATIC, destinationSize.width, destinationSize.height); 
if (thumbnail.getWidth() > destinationSize.width) 
    thumbnail = Scalr.crop(thumbnail, (thumbnail.getWidth() - destinationSize.width)/2, 0, destinationSize.width, destinationSize.height); 
else if (thumbnail.getHeight() > destinationSize.height) 
    thumbnail = Scalr.crop(thumbnail, 0, (thumbnail.getHeight() - destinationSize.height)/2, destinationSize.width, destinationSize.height); 

這是不理想的,但至少它處理縮略圖生成後的'寬'圖像