设置采样算法

时间:2013-05-16 09:44:08

标签: imagemagick pythonmagick

我尝试使用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)

如何设置使用的采样算法?我相信现在它正在使用最近的邻居,这看起来很难看。

1 个答案:

答案 0 :(得分:0)

调整大小过滤器是在调用.resize()之前通过图像集上的属性设置的,或者,我想,.sample()

该属性为.filterType(),并根据PythonMagick.FilterTypes上的一个枚举值设置 - 与Magick++ FilterTypes的列表相同。

(注意:从来没有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,或者至少它应该是,这是非常好的。