2013-05-16 31 views
2

我試着去使用PythonMagick一個jpg圖像創建縮略圖:設置採樣算法中

img.quality(90) 
# TODO set the sampling algo e.g. bilinear 
img.sample(Geometry(scaledWid, scaledHei)) 
img.crop(Geometry(THUMBNAIL_WID-1, THUMBNAIL_HEI-1,cropLeft, cropTop)) 
img.write(destFilePath) 

如何設置採樣算法中使用?我相信現在它正在使用最近的鄰居,看起來很醜陋。

回答

0

在調用.resize()或我想像的.sample()之前,調整大小過濾器是通過圖像集上的屬性設置的。

該屬性是.filterType(),並從PythonMagick.FilterTypes上列舉的值之一 - 它是與Magick++ FilterTypes相同的列表中設置。

(NB從來就沒有對PythonMagick任何文件,但它本質上只是Magick++的包裝,只是使用API documentation了點。)

因此,嘗試(未經測試,我不使用Python ):

img.quality(90) 

img.filterType(PythonMagick.FilterTypes.SincFilter) 
img.sample(Geometry(scaledWid, scaledHei)) 

img.crop(Geometry(THUMBNAIL_WID-1, THUMBNAIL_HEI-1,cropLeft, cropTop)) 

img.write(destFilePath) 

注意默認過濾器通常是LanczosFilter,或至少它應該是,這是非常好的。