1

簡単なスクリプトを想像してみてください。

from PIL import Image
from aggdraw import Draw, Brush

im = Image.new("RGBA", (600, 600), (0, 0, 0, 0))
draw = Draw(im)

brush = Brush("yellow")

draw.polygon(
             (
              50, 50,
              550, 60,
              550, 550,
              60, 550,
             ),
             None, brush
            )

draw.flush()
im.save("2.png")

そして結果: ここに画像の説明を入力してください

(大きいサイズで申し訳ありませんが、それはより明確です)

そして問題: あなたは非黄色と非白のエッジを見ることができますか?これはアルファチャネルか何かです。

PILのオブジェクトのみを使用してこれを実行しようとするとDraw、見た目ははっきりと良くなりますが、アンチエイリアス処理は行われません。

しかし、aggdrawDrawオブジェクトでは、アンチエイリアス処理されているように見えますが、その醜い汚れたエッジがあります。

非標準の側面角度を持つポリゴンが正確に必要です。シンプルな箱は私が欲しいものではありません。

この問題を解決する方法について、楽観的な答えを教えてください。

4

1 に答える 1

1

背景が黒く透明だからです。画像の背景を白に設定すると、エッジが見えなくなります。私の簡単なテストでは、透明または純白のいずれかが機能します。

次の値を試してください。

transBlack = (0, 0, 0, 0)         # shows your example with visible edges
solidBlack = (0, 0, 0, 255)       # shows shape on a black background
transWhite = (255, 255, 255, 0)
solidWhite = (255, 255, 255, 255)

im = Image.new("RGBA", (600, 600), solidWhite)
于 2011-10-24T04:05:18.710 に答える