2012-11-03 85 views
2

我正嘗試用pharo調整硬盤驅動器上的圖像文件大小。這是我目前的做法:在Smalltalk(Pharo)中調整圖像文件大小(JPEG)

img := ImageReadWriter formFromFileNamed: 'picture.jpg'. 
scaledimage := img scaledIntoFormOfSize: 100. 
scaledimage writeJPEGfileNamed: 'scaledPicture.jpg'. 

這是一個很好的方法嗎?還有一種方法可以指定此圖像的JPEG壓縮質量?

謝謝!

Henne

+0

在Form類中似乎還有一個magnify:by:方法。我不明白的是爲什麼這個方法將矩形作爲參數之一。但也許這也是一種可能性!? –

回答

2

好吧,我找到了這樣做的方法,並希望分享我的解決方案。這裏是代碼:

img := ImageReadWriter formFromFileNamed: 'pic.jpg'. 
scaledimage := img magnifyBy: 0.8. 
PluginBasedJPEGReadWriter 
    putForm: scaledimage 
    quality: 95 
    progressiveJPEG: false 
    onFileNamed: 'scaledPicture95.jpg'. 
scaledimage writeJPEGfileNamed: 'scaledPictureDfl.jpg'. 

這樣你可以按比例縮放圖像,在這種情況下,0.8。大於1的因素也有效。此外,您可以指定JPEG質量。在這個例子中,我選擇了95。標誌逐行JPEG可以創建一個圖像,在加載時顯示在瀏覽器中的預覽質量,並獲得更好的數據傳輸。儘管這不是所有瀏覽器都支持的!最後一行是可選的,只是將第二個JPEG與默認設置保存在一起作爲比較。我希望這可以幫助一些人在未來尋找這個。

1

我不知道PluginBasedJPEGReadWriter

Smagick。它需要ImageMagick和OSProcess才能使其工作。

如果您需要一個完整的圖像處理庫,它可能很有用。

相關問題