返回顶部
首页 > 资讯 > 后端开发 > Python >基于Python如何实现图片一键切割九宫格工具
  • 563
分享到

基于Python如何实现图片一键切割九宫格工具

2023-07-05 14:07:47 563人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

本文小编为大家详细介绍“基于python如何实现图片一键切割九宫格工具”,内容详细,步骤清晰,细节处理妥当,希望这篇“基于Python如何实现图片一键切割九宫格工具”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。实

本文小编为大家详细介绍“基于python如何实现图片一键切割九宫格工具”,内容详细,步骤清晰,细节处理妥当,希望这篇“基于Python如何实现图片一键切割九宫格工具”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

实现代码

""" 1.将一张图片填充为正方形 2.将文字加到方形图片上 3.讲图片切为9张图并存储"""import osfrom tkinter import filedialogfrom PIL import Imagefrom future.moves import tkinter# 填充文字的库import PILfrom PIL import ImageFont,Image,ImageDrawdef open_img():    """    打开图片    :return:    """    root = tkinter.Tk()  # 创建一个Tkinter.Tk()实例    root.withdraw()  # 将Tkinter.Tk()实例隐藏    default_dir = r"文件路径"    file_path = filedialog.askopenfilename(title=u'选择文件', initialdir=(os.path.expanduser(default_dir)))    if len(file_path) != 0:        image = Image.open(file_path)        fill_image(image)    else:        SystemExit()def fill_image(img):    """    将图片填充为正方形    :param img: 图片    :return:    """    width, height = img.size    # 选取长和宽中较大值作为新图片的    new_image_length = width if width > height else height    # 生成新图片[白底]    new_image = Image.new(img.mode, (new_image_length, new_image_length), color='white')    # 将之前的图粘贴在新图上,居中    if width > height:  # 原图宽大于高,则填充图片的竖直维度        # (x,y)二元组表示粘贴上图相对下图的起始位置        new_image.paste(img, (0, int((new_image_length - height) / 2)))    else:        new_image.paste(img, (int((new_image_length - width) / 2), 0))    # 图片上写上文字    # 设置字体,如果没有,也可以不设置    font = ImageFont.truetype(r"C:\windows\Fonts\STHUPO.TTF", 50)    datas='V:xlzcm88或xlzcm66'    bytedatas=datas.encode('UTF-8')    draw = ImageDraw.Draw(new_image)    draw.text((0,new_image.size[1]/2), u'V:xlzcm88或xlzcm66', font=font)    cut_image(new_image)def cut_image(img):    """    切图    :param img: 填充成方形后的图片    :return:    """    width, height = img.size    item_width = int(width / 3)    box_list = []    for i in range(0, 3):  # 两重循环,生成9张图片基于原图的位置        for j in range(0, 3):            box = (j * item_width, i * item_width, (j + 1) * item_width, (i + 1) * item_width)            box_list.append(box)    img_list = [img.crop(box) for box in box_list]    save_images(img_list)def save_images(img_list):    """    保存切割完成的图片    :param img_list: 切割后的图片列表    :return:    """    index = 1    files_path = 'Pic'    # 若文件夹不存在,则创建    if not os.path.exists(files_path):        os.makedirs(files_path)    for img in img_list:        img.save('./Pic/' + str(index) + '.png', 'PNG')        index += 1    print('完成')if __name__ == '__main__':    open_img()

方法补充

除了上文的方法,小编还给大家整理了其他图片切割成九宫格的方法,希望对大家有所帮助

# -*- coding: utf-8 -*- from PIL import Imageimport sys  # 将图片填充为正方形def fill_image(image):    width, height = image.size    # 选取长和宽中较大值作为新图片的    new_image_length = width if width > height else height    # 生成新图片[白底]    new_image = Image.new(image.mode, (new_image_length, new_image_length), color='white')    # 将之前的图粘贴在新图上,居中    if width > height:  # 原图宽大于高,则填充图片的竖直维度        new_image.paste(image, (0, int((new_image_length - height) / 2)))  # (x,y)二元组表示粘贴上图相对下图的起始位置    else:        new_image.paste(image, (int((new_image_length - width) / 2), 0))    return new_image  # 切图def cut_image(image):    width, height = image.size    item_width = int(width / 3)    box_list = []    # (left, upper, right, lower)    for i in range(0, 3):        for j in range(0, 3):            # print((i*item_width,j*item_width,(i+1)*item_width,(j+1)*item_width))            box = (j * item_width, i * item_width, (j + 1) * item_width, (i + 1) * item_width)            box_list.append(box)     image_list = [image.crop(box) for box in box_list]     return image_list  # 保存def save_images(image_list):    index = 1    for image in image_list:        image.save('./output/' + str(index) + '.jpg')        index += 1  if __name__ == '__main__':    file_path = "./output/girl.jpg"    image = Image.open(file_path)    image.show()    image = fill_image(image)    image_list = cut_image(image)    save_images(image_list)

读到这里,这篇“基于Python如何实现图片一键切割九宫格工具”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网Python频道。

--结束END--

本文标题: 基于Python如何实现图片一键切割九宫格工具

本文链接: https://lsjlt.com/news/352527.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 基于Python如何实现图片一键切割九宫格工具
    本文小编为大家详细介绍“基于Python如何实现图片一键切割九宫格工具”,内容详细,步骤清晰,细节处理妥当,希望这篇“基于Python如何实现图片一键切割九宫格工具”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。实...
    99+
    2023-07-05
  • 基于Python实现图片一键切割九宫格的工具
    有时候发微博时候,需要裁切图片为九宫格,但是ps或者其他工具都太麻烦,这里写一个python一键切割九宫格的工具,以供大家学习和使用! 实现代码 """ 1.将一张图片填充为正方形...
    99+
    2023-03-22
    Python图片切割九宫格 Python图片 九宫格 Python九宫格
  • 基于Python实现图片九宫格切图程序
    目录1、python代码实现图片分割成九宫格2、C++代码实现图片分割成九宫格(附Opencv配置教程)1、python代码实现图片分割成九宫格 需要包含的库,没有下载安装的,需要自...
    99+
    2023-05-15
    Python实现图片九宫格切图 Python图片九宫格切图 Python图片九宫格 Python 九宫格
  • python实现图片九宫格分割的示例
    目录简介实现原理源码运行结果简介 大家都知道在微信朋友圈或者微博以及QQ动态中,有很多“强迫症患者”发图片都爱发9张,而有些图是一张图片分成的九宫图,对于这种操作,大家知道是怎么做...
    99+
    2024-04-02
  • 使用python怎么实现一个九宫格图片
    这篇文章给大家介绍使用python怎么实现一个九宫格图片,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。python的数据类型有哪些python的数据类型:1. 数字类型,包括int(整型)、long(长整型)和floa...
    99+
    2023-06-14
  • Android中怎么实现一个图片切割工具类
    Android中怎么实现一个图片切割工具类,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。图片切割工具类定义:public class ImageSpli...
    99+
    2023-05-30
    android
  • 基于React.js如何实现兔兔牌九宫格翻牌抽奖组件
    这篇文章主要介绍了基于React.js如何实现兔兔牌九宫格翻牌抽奖组件的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇基于React.js如何实现兔兔牌九宫格翻牌抽奖组件文章都会有所收获,下面我们一起来看看吧。基...
    99+
    2023-07-04
  • 基于Bootstrap框架如何实现图片切换
    这篇文章主要介绍了基于Bootstrap框架如何实现图片切换,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。准备图片,把相关记录添加至数据库表...
    99+
    2024-04-02
  • Python如何实现图片背景移除工具
    这篇文章主要讲解了“Python如何实现图片背景移除工具”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python如何实现图片背景移除工具”吧!上传一张图片,实现其背景移除的功能。代码示例:...
    99+
    2023-07-05
  • 基于Python如何实现视频去重小工具
    这篇文章主要介绍“基于Python如何实现视频去重小工具”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“基于Python如何实现视频去重小工具”文章能帮助大家解决问题。同级目录下新建dup_video...
    99+
    2023-07-05
  • 基于Python如何实现批量缩放图片尺寸
    今天小编给大家分享一下基于Python如何实现批量缩放图片尺寸的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。方法一在 Pil...
    99+
    2023-07-05
  • 基于Python如何实现抢注大词的提词工具
    本篇内容主要讲解“基于Python如何实现抢注大词的提词工具”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“基于Python如何实现抢注大词的提词工具”吧!假设通过爬虫获得了一个自媒体.txt想要...
    99+
    2023-07-05
  • 如何使用Python实现图片自定义裁剪小工具
    这篇文章主要介绍了如何使用Python实现图片自定义裁剪小工具,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。环境依赖ffmpy安装:pip install ...
    99+
    2023-06-28
  • 如何实现一个基于canvas的移动端图片编辑器
    这篇文章给大家分享的是有关如何实现一个基于canvas的移动端图片编辑器的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。该插件是一款脱离jq的移动端图片编辑器。可以应用在移动端H5页面或者微信小程序中。插件实现的功...
    99+
    2023-06-09
  • 基于Python如何实现视频转字符画动漫小工具
    本篇文章给大家分享的是有关基于Python如何实现视频转字符画动漫小工具,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。导语今天带大家来点儿好玩儿的东西,我想你们肯定是喜欢的!上...
    99+
    2023-06-22
  • 基于Python如何实现合并多张图片转成mp4视频
    这篇文章主要介绍“基于Python如何实现合并多张图片转成mp4视频”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“基于Python如何实现合并多张图片转成mp4视频”文章能帮助大家解决问题。一、需要...
    99+
    2023-07-06
  • 如何分析使用wxpy这个基于python实现的微信工具库的常见问题
    本篇文章为大家展示了如何分析使用wxpy这个基于python实现的微信工具库的常见问题,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。使用如下的命令行安装:pip install wxpyCollec...
    99+
    2023-06-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作