Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 在WxPython中根据图像调整帧大小_Image_Wxpython_Frame_Image Size - Fatal编程技术网

Image 在WxPython中根据图像调整帧大小

Image 在WxPython中根据图像调整帧大小,image,wxpython,frame,image-size,Image,Wxpython,Frame,Image Size,我正在制作一个以图像为背景的程序,我要做的是让框架精确地适合图像 使用图像的尺寸很容易启动框架: wx.Frame.__init__(self, parent, title=title, size=(500, 300)) 但因为这也考虑了窗口的边框和标题,所以这并不完全准确。除了手动调整像素大小(这在操作系统中是不一致的),我能做什么 编辑:我已经找到了答案,但看起来我在几个小时内无法自我回答。同时 Backdrop = wx.Bitmap("image.png") self.SetClien

我正在制作一个以图像为背景的程序,我要做的是让框架精确地适合图像

使用图像的尺寸很容易启动框架:

wx.Frame.__init__(self, parent, title=title, size=(500, 300))
但因为这也考虑了窗口的边框和标题,所以这并不完全准确。除了手动调整像素大小(这在操作系统中是不一致的),我能做什么

编辑:我已经找到了答案,但看起来我在几个小时内无法自我回答。同时

Backdrop = wx.Bitmap("image.png")
self.SetClientSize((Backdrop.GetWidth(), Backdrop.GetHeight()))

您可以使用尺寸测量器完成同样的事情,如果您需要在图像旁边包含其他项目并控制它们如何随帧缩放,这也会使事情变得更容易

下面是一个框架的基本示例,它可以调整自身大小以适应图像

import wx

class Frame(wx.Frame):
  def __init__(self, parent, id, title, img_path):
    wx.Frame.__init__(self, parent, id, title, 
                      style=wx.DEFAULT_FRAME_STYLE ^ wx.RESIZE_BORDER)

    image = wx.StaticBitmap(self, wx.ID_ANY)
    image.SetBitmap(wx.Bitmap(img_path))

    sizer = wx.BoxSizer()
    sizer.Add(image)
    self.SetSizerAndFit(sizer)

    self.Show(True)

app = wx.App()
frame = Frame(None, wx.ID_ANY, 'Image', '/path/to/file.png')
app.MainLoop()

您可以使用尺寸测量器完成同样的事情,如果您需要在图像旁边包含其他项目并控制它们如何随帧缩放,这也会使事情变得更容易

下面是一个框架的基本示例,它可以调整自身大小以适应图像

import wx

class Frame(wx.Frame):
  def __init__(self, parent, id, title, img_path):
    wx.Frame.__init__(self, parent, id, title, 
                      style=wx.DEFAULT_FRAME_STYLE ^ wx.RESIZE_BORDER)

    image = wx.StaticBitmap(self, wx.ID_ANY)
    image.SetBitmap(wx.Bitmap(img_path))

    sizer = wx.BoxSizer()
    sizer.Add(image)
    self.SetSizerAndFit(sizer)

    self.Show(True)

app = wx.App()
frame = Frame(None, wx.ID_ANY, 'Image', '/path/to/file.png')
app.MainLoop()