python切分序列图可视化程序

一.起因

设计师小姐姐要求快速切分序列图

二.直接上可视化代码

复制#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2020/11/18 12:51 
# @Author : ywy
# @Platform:

from tkinter.filedialog import *
import windnd
from tkinter.messagebox import showerror,showinfo
from PIL import Image
def splitimage(src, rownum, colnum):
    src =src.strip()
    rownum = int(rownum)
    colnum = int(colnum)
    img = Image.open(src)
    w, h = img.size
    if rownum <= h and colnum <= w:
        print('Original image info: %sx%s, %s, %s' % (w, h, img.format, img.mode))
        print('开始处理图片切割, 请稍候...')

        s = os.path.split(src)
        fn = s[1].split('.')
        basename = fn[0]
        ext = fn[-1]
        dstpath=basename
        if not  os.path.exists(dstpath):
            os.makedirs(dstpath)
        num = 0
        rowheight = h // rownum
        colwidth = w // colnum
        for r in range(rownum):
            for c in range(colnum):
                box = (c * colwidth, r * rowheight, (c + 1) * colwidth, (r + 1) * rowheight)
                img.crop(box).save(os.path.join(dstpath, f'{basename}_{num}.{ext}'), ext)
                num = num + 1
        print('图片切割完毕,共生成 %s 张小图片。' % num)
        return f'图片切割完毕,共生成 {num} 张小图片存放在当前程序目录{dstpath}文件夹下'

    else:
        print('不合法的行列切割参数!')
        return '不合法的行列切割参数!'

root_1 = Tk()
rownum = StringVar()
colnum = StringVar()
z = StringVar()
root_1.title('图片切割')

count = Label(root_1, text='切割行数')
count.grid(row=0, column=0)
enter_1 = Entry(root_1, state='normal', textvariable=rownum,bd=2,width=50)
enter_1.grid(row=0, column=1)

count = Label(root_1, text='切割列数')
count.grid(row=1, column=0)
enter_2 = Entry(root_1, state='normal', textvariable=colnum,bd=2,width=50)
enter_2.grid(row=1, column=1)

def dragged_files(files):
    src =files[0].decode('gbk')
    rownum = enter_1.get()
    colnum = enter_2.get()
    print(src,rownum,colnum)
    if rownum and colnum:
        showinfo('提示',splitimage(src,rownum,colnum))
    else:
        showerror('错误提示','切割行数和切割列数必须有值')


count = Label(root_1, text='拖拽你的图片到窗口')
count.grid(row=2, column=0)
windnd.hook_dropfiles(root_1,func=dragged_files)

root_1.mainloop()

posted @   小小咸鱼YwY  阅读(457)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
历史上的今天:
2019-11-18 Go-for循环
2019-11-18 GO-逻辑判断(if,else if,else,switch)
2019-11-18 Go-函数
2019-11-18 Go-数据类型以及变量,常量
2019-11-18 GO语言介绍以及开发环境配置

目录导航

点击右上角即可分享
微信分享提示