【发布时间】:2012-12-30 07:31:37
【问题描述】:
对于 PIL 中的线和椭圆,图像是粗糙的。
我发现抗锯齿仅在调整大小和缩略图中。
在画线或椭圆时有什么方法可以做抗锯齿吗?
【问题讨论】:
-
你可以做一个低通滤波 :) 你可能会想要移动到
aggdraw(或cairo,或...)以获得“更高级”的绘图。
标签: python python-imaging-library antialiasing
对于 PIL 中的线和椭圆,图像是粗糙的。
我发现抗锯齿仅在调整大小和缩略图中。
在画线或椭圆时有什么方法可以做抗锯齿吗?
【问题讨论】:
aggdraw(或cairo,或...)以获得“更高级”的绘图。
标签: python python-imaging-library antialiasing
在本地进行此操作的唯一方法是使用超级采样。以所需大小的倍数渲染图像,然后使用resize resample=Image.ANTIALIAS,例如:
im = im.resize((width // 2, height // 2), resample=Image.ANTIALIAS)
【讨论】:
TypeError: resize() got an unexpected keyword argument 'filter,所以使用就地im.thumbnail((original_width, original_height)),它也默认为resample=ANTIALIAS以获得最佳质量。
PIL的枕头叉当前稳定版的Image.resize()方法中,关键字参数命名为resample。这可能已在 version 2.7.0 中更改。另请注意,Image.LANCZOS is the same thing 与 Image.ANTIALIAS 相同——该方法的文档中未提及。
img.resize((width, height), Image.ANTIALIAS) 为我工作。谢谢!
aggdraw (http://effbot.org/zone/aggdraw-index.htm) 可能是你感兴趣的东西。
aggdraw 模块在 AGG 库之上实现了基本的 WCK 2D 绘图接口。该库提供高质量的绘图、抗锯齿和 alpha 合成,同时与 WCK 渲染器完全兼容。
aggdraw 模块可以与 PIL 或 WCK 库一起使用(在 Tkinter 或本机 Windows 下)。它也可以用作独立的库。
【讨论】: