jpeg をロードする必要があります-> 半透明の四角形を描画します-> python wx パッケージの wx.Bitmap を使用して jpeg ファイルを保存します。しかし、長方形は完全に不透明に見えます。
32bpp の Windows 7 を使用しています。「Docs and Demos\demo\AlphaDrawing.py」wx デモを確認して試してみたところ、うまくいきました。wx.Panel に半透明の長方形を正しく描画します。
この問題の解決策をインターネットで確認しましたが、解決策はどれも機能しませんでした。
エラーの可能性を最小限に抑えるために、より単純な例を作成しましたが、それでも機能しませんでした。jpgを読み込む→半透明の長方形を描く→jpgファイルとして保存
wimg = wx.Image(r"N:\Images\Wallpapers\Processed\a.jpg", wx.BITMAP_TYPE_JPEG)
print wimg.HasAlpha()
wimg.InitAlpha()
print wimg.HasAlpha()
bmp = wimg.ConvertToBitmap()
print bmp.HasAlpha()
dc = wx.MemoryDC(bmp)
r, g, b = (34, 34, 34)
dc.SetPen(wx.Pen(wx.Colour(r, g, b, wx.ALPHA_OPAQUE)))
dc.SetBrush(wx.Brush(wx.Colour(r, g, b, 128)))
dc.DrawRectangle(100, 300, 200, 200)
bmp.SaveFile(r"N:\Images\Wallpapers\Processed\b.jpg", wx.BITMAP_TYPE_JPEG)
印刷結果は次のとおりです: False/True/True それでも出力は完全に不透明な長方形です
jpeg にアルファ チャネルがないことはわかっていましたが、32bpp jpeg は必要ありません。背景とブレンドされた長方形を表示する出力のみ。