0

wxPython フレームに画像を表示する方法は次のとおりです。

ここに画像の説明を入力

import wx

class Viewer(wx.App):
    def __init__(self, redirect=False, filename=None):
        wx.App.__init__(self, redirect, filename)
        self.frame = wx.Frame(None, title='Viewer')
        self.panel = wx.Panel(self.frame)
        self.imageCtrl = wx.StaticBitmap(self.panel, wx.ID_ANY, wx.BitmapFromImage(wx.EmptyImage(800,600)))
        self.mainSizer = wx.BoxSizer(wx.VERTICAL)
        self.mainSizer.Add(self.imageCtrl, 0, wx.ALL, 5)
        self.onView('0.png')
        self.panel.Layout()        
        self.frame.Show()

    def onView(self, filename):
        img = wx.Image(filename, wx.BITMAP_TYPE_ANY)
        self.imageCtrl.SetBitmap(wx.BitmapFromImage(img))
        self.panel.Refresh()
        self.mainSizer.Fit(self.frame)
        
Viewer().MainLoop()

テスト画像のサイズが大きい場合、たとえば 912 x 3616 (ここでは私が使用した0.pngです)、垂直方向のオフセットを設定したいと思います。つまり、フレームの上隅が画像の (0,0) であってはなりません。しかし (0,500)つまり 500px の垂直オフセットです。

wxPythonで画像に垂直オフセットを設定するには?

4

1 に答える 1

0

本当に画像を切り捨てたい場合、最も簡単な方法はそれを行うことです。つまりwxImage::GetSubImage()、(0, 500) から始まる領域を使用して新しい画像を作成します。

より通常は、スクロールされたウィンドウを使用し、最初に垂直方向に 500 スクロールできますが、それでもユーザーは原点に戻ることができます。

スクロールバーなしでスクロールウィンドウを使用することもできますが、これはかなり無意味に思えます。

于 2016-02-23T12:34:10.383 に答える