2013-01-16 18 views
9

PIL içinde çizgiler ve elipsler için, görüntüler pürüzlüdür.Python PIL için bir antialiasing yöntemi var mı?

Yalnızca yeniden boyutlandırma ve küçük resimlerde antialiasing buldum.

Çizgi veya elips çizerken antialiasing yapmanın bir yolu var mı?

+1

Düşük geçişli filtreleme yapabilirdiniz :) Muhtemelen "meraklısı" çizimi için "aggdraw" (ya da 'cairo', ya da ...)' ya taşıyabilirsiniz. – mmgp

cevap

14

Bunu yerel olarak yapmanın tek yolu, süper örneklemedir. Görüntünüzü istediğiniz boyuta göre çoğaltın, ardından ile filter=Image.ANTIALIAS.

+3

evet, * 2 kullanın ve sonra/2 olarak yeniden boyutlandırın. işe yarıyor. – whi

+0

En iyi Yastık ile birlikte verilmiş olmasına rağmen, 'TypeError: resize() beklenmedik bir anahtar kelime argümanı' filter 'aldı, bu yüzden de' res.thumbnail ((original_width, original_height)) 'da kullanılır. ANTIALIAS 'en iyi kalite için. – Hugo

2

aggdraw (http://effbot.org/zone/aggdraw-index.htm) ilgilendiğiniz bir şey olabilir.

aggdraw modül AGG kütüphanesinde üstünde temel WCK 2D Çizim Arayüz uygular. Bu kitaplık, WCK oluşturucusuyla tam uyumluyken, kenar yumuşatma ve alfa birleştirmeyle yüksek kaliteli çizim sağlar.

Agdraw modülü PIL veya WCK kitaplığı ile kullanılabilir (Tkinter veya yerel Windows altında). Tek başına bir kütüphane olarak da kullanılabilir.

+0

OS X için bir bağlantı noktası var mı? – DrMickeyLauer

İlgili konular