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 回答