画像をロードし、特定のサイズにサイズ変更してから、パネルの特定の位置に描画したいと考えています。
これはすべてwxpythonを使用しています。
どうすればいいですか?
前もって感謝します!
wx.Image
Scale
サイズ変更を行うメソッドがあります。あとは通常のwxコーディングです。
これがあなたのための完全な例です。
import wx
def scale_bitmap(bitmap, width, height):
image = wx.ImageFromBitmap(bitmap)
image = image.Scale(width, height, wx.IMAGE_QUALITY_HIGH)
result = wx.BitmapFromImage(image)
return result
class Panel(wx.Panel):
def __init__(self, parent, path):
super(Panel, self).__init__(parent, -1)
bitmap = wx.Bitmap(path)
bitmap = scale_bitmap(bitmap, 300, 200)
control = wx.StaticBitmap(self, -1, bitmap)
control.SetPosition((10, 10))
if __name__ == '__main__':
app = wx.PySimpleApp()
frame = wx.Frame(None, -1, 'Scaled Image')
panel = Panel(frame, 'input.jpg')
frame.Show()
app.MainLoop()
画像をツールバー/リストブック/ツールブックなどに追加する場合は、画像をビットマップに変換する必要があります (通常はビットマップのみが許可されます)。
私の知る限り、ビットマップのサイズを変更することはできないため、画像のサイズを変更してから変換する必要があります。
例からのコピーを次に示します。
def getFolderBitmap():
img = folder_icon.GetImage().Rescale(scaleW, scaleH)
return img.ConvertToBitmap()