13

画像をロードし、特定のサイズにサイズ変更してから、パネルの特定の位置に描画したいと考えています。

これはすべてwxpythonを使用しています。

どうすればいいですか?

前もって感謝します!

4

3 に答える 3

32

wx.ImageScaleサイズ変更を行うメソッドがあります。あとは通常の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()
于 2010-03-24T00:27:04.737 に答える
1

画像をツールバー/リストブック/ツールブックなどに追加する場合は、画像をビットマップに変換する必要があります (通常はビットマップのみが許可されます)。

私の知る限り、ビットマップのサイズを変更することはできないため、画像のサイズを変更してから変換する必要があります。

ここに良い例がありますhttp://markandclick.com/1/post/2011/12/wxpython-resize-embedded-bitmap-before-adding-it-as-a-tool.html

例からのコピーを次に示します。

def getFolderBitmap():
  img = folder_icon.GetImage().Rescale(scaleW, scaleH)
  return img.ConvertToBitmap()
于 2011-12-11T17:35:08.640 に答える