一、功能实现效果
1、选择要分割的碑帖图片
2、选择碑帖图像分割的行与列,本例的行为:5,列为:4。点击“确定行列”
3、输入对于碑帖的内容,点击“确定分割”按钮。
4、在输出文件夹生成了单字版图片,并对应内容命名。方便集字、创作与学习。
二、Python代码的实现。
1、getimgdir.py
import wx
import os
from PIL import Image
import numpy as np
#import wx.grid
#import row_col
#row_col
#######################################################################################
app = wx.App() #wx.App()行创建了一个应用程序对象。每个 wx 程序都需要一个 .App() 对象
frame = wx.Frame(None, -1, '请选择待分割的图片文件') #wx.Frame()方法返回一个可以包含小部件的新窗口
frame.SetSize(0,0,600,300) #函数设置位置和大小(x(左),y(顶部),宽度,高度)
openFileDialog = wx.FileDialog(frame, "Open", "", "",
"all files (*.*)|*.*",
wx.FD_OPEN | wx.FD_FILE_MUST_EXIST)
openFileDialog.ShowModal() #显示窗口
src = openFileDialog.GetPath() #返回文件的完整路径(如果选择了一个)
np.savez('dir.npz', k_a=src)
openFileDialog.Destroy()
2、row_col.py
import wx
import numpy as np
import sys
import time
import os
class MyFrame(wx.Frame):
ClickNum = 0
def __init__(self): #__init__(self) 是类的初始化方法,也称构造方法,是一种特殊的魔法方法。__init__(self)在实例化后,会自动调用,而不用手动调用,所以一般把属性设置在_init__()里。
super().__init__(parent=None,title="图像分割行数与列数",size=(500,730)) # 初始化窗口信息
panel = wx.Panel(self) #框架的父窗口。对于顶级窗口,这个值是None 。#创建面板
#模块1 选择签约主体
self.Center()
text1 = wx.StaticText(parent=panel,id=-1,pos=(10,7),label="图像分割行数:")
list1 = ["1","2","3","4","5","6","7","8","9","10"]
self.combobox1=wx.ComboBox(parent=panel,id=-1,pos=(100,5),value="5",choices=list1)#wx.ComboBox 默认它的文本框是可以修改的
text2 = wx.StaticText(parent=panel, id=-1, pos=(250, 7), label="图像分割列数:")
list2 = ["1"