概述
这篇博客将为您展示如何使用 wxPython 和 PIL 库开发一个图片裁剪工具。本工具能够加载图片,允许用户通过拖拽选择框裁剪图片,并保存裁剪后的结果。以下是完整代码和实现步骤。
C:\pythoncode\new\cropimageandsave.py
功能特性
-
图片加载:支持加载 JPG 和 PNG 格式的图片。
-
动态裁剪:通过鼠标绘制矩形选择框进行裁剪。
-
缩放适配:图片会根据面板大小自动缩放显示。
-
保存裁剪结果:裁剪后的图片可以保存为 PNG 文件。
代码实现
完整代码如下:
import wx
import os
from PIL import Image
class ImageCropperFrame(wx.Frame):
def __init__(self):
super().__init__(parent=None, title='图片裁剪工具', size=(800, 600))
self.init_ui()
def init_ui(self):
# 创建菜单栏
menubar = wx.MenuBar()
file_menu = wx.Menu()
open_item = file_menu.Append(wx.ID_OPEN, '打开图片', '打开一个图片文件')
menubar.Append(file_menu, '文件')
self.SetMenuBar(menubar)
# 创建面板和图片显示控件
self.panel = wx.Panel(self)
self.image_panel = wx.Panel(self.panel)
self.image_panel.SetBackgroundColour(wx.Colour(200, 200, 200))
# 初始化变量
self.image = None
self.bitmap = None