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)

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

4

1 回答 1

0

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

该属性是.filterType()并且是从枚举值之一设置的- 它与Magick++PythonMagick.FilterTypes的列表相同。FilterTypes

(注意。PythonMagick 从来没有任何文档,但由于它本质上只是Magick++的包装器,因此只需使用API 文档。)

所以试试(未经测试,我不使用 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,或者至少应该是,这非常好。

于 2013-06-25T14:17:23.950 回答