1

試想一下簡單的腳本:Python的`aggdraw`模塊的bug(?):可見的alpha通道

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") 

而結果: enter image description here

(對不起,大尺寸但更清楚地)

並且問題: 你能看到非y流動和非白色邊緣?這是alpha通道或其他東西。

當我試圖這樣做只與PILDraw對象 - 它看起來很清楚,很好,但沒有反鋸齒。

但與aggdrawDraw對象它看起來反鋸齒,但與醜陋的骯髒的邊緣。

我需要與非標準側角完全一致的多邊形。簡單的盒子不是我想要的。

請幫助我解決一些很好的樂觀答案如何解決這個問題。

+0

任何建議????? –

回答

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) 
+0

固然bg可以處理這個。 實際上,我只需要透明白色的所有顏色的多邊形?或特殊的一些顏色? 改爲使用pycairo。 –

+0

我不明白你的進一步問題。透明的白色應該工作,除非你能告訴我一個失敗的例子。你要求我給出「好樂觀的答案」和建議,但顯然你有更多的要求,你沒有提到。 – Todd