Python切割九宫格图

article/2025/9/28 2:04:36

Python切割九宫格图

  • 朋友圈经常有人发九宫格图片,但那是使用特定的图片软件制成的或就是九章不同的照片
  • 本次我们用 Python 来制一张
    • 九宫格主体是一个 3x3 的正方形矩阵 有9张对应的图片组成
    • 一般的软件,在遇到非矩阵型图片时难以完成重组,且有多张图片组成
    • 本次利用 Python 的 PIL 库 将一张非正方形的矩阵,切割重组成9张正方形矩阵图
    • 朋友圈可直接发送九宫格(如下图)与一张图片切割而成

九宫格

# -*- coding: utf-8 -*-
"""将一张图片填充为正方形后切为9张图
"""
import os
from tkinter import filedialog
from PIL import Image
from future.moves import tkinterdef 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))cut_image(new_image)def cut_image(img):"""切图:param img: 填充成方形后的图片:return:"""width, height = img.sizeitem_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 = 1files_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 += 1print('完成')if __name__ == '__main__':open_img()

切图应用程序的下载


http://chatgpt.dhexx.cn/article/3CpSrhwt.shtml

相关文章

边框图片_九宫格切图

边框图片 原理示意图: 九宫格切图法,保留四个角边框样式,拉伸平铺或环绕方式设置图片四条边.以达到边框样式相同大小可以改变的效果 组合写法: border-image: url("images/border.jpg") 167/20px round;拆分写法: border-image…

python和C++代码实现图片九宫格切图程序(附VS2015配置Opencv教程)

1、python代码实现图片分割成九宫格 需要包含的库,没有下载安装的,需要自己安装哦。 实现原理很简单,就是用PIL库不断画小区域,切下来存储成新的小图片。 假设每一个格子的宽和高分别是w、h,那么第row行&#xff08…

android九宫格切图,拼图九宫格切图app

拼图九宫格切图app是一款比较不错的手机九宫格照片编辑拼图软件,任意选择需要切割的图片,切割成九宫格拼图,轻松制作,喜欢发朋友圈的朋友们有福了,还可以自定义美化滤镜选择,添加文字,贴纸等&am…

赛效:电脑在线九宫格切图怎么制作?

九宫格切图的好处是提高作品的美观度,九宫格切图可以将原本散乱的图片元素进行有序的排列,使作品更具美感,提高观众的观赏体验。另外,还能增强作品的可读性,九宫格切图可以将作品中的主体与背景进行分离,使…

用canvas实现九宫格切图之手把手教学(uniapp+ts)

uniapp用canvas实现九宫格切图(typescript) 前言上传图片展示图片画布下载图片最终效果总结 前言 这几天工作比较轻松,所以就有时间发下呆,突然想起前段时间用了一个九宫格切图软件,所以就自己试着开发下,…

PS把图片切成九宫格

目录 PS把图片切成九宫格第一步,导入图片到PS第二步,设置裁剪第三步,导出第四步,效果图 PS把图片切成九宫格 PS把图片切成九宫格,把图片设置切片,不仅可以切成九宫格,也可以设置22,44&#xff0…

九宫格图片怎么操作?这里有你想要的方法

不知道平时小伙伴们在发朋友圈的时候有没有注意过很多人的朋友圈都会将很多图片拼起来,凑成九宫格图片来发送。这是因为朋友圈的限制,无法一次发完,每次最大上传只有9长照片。所以就有很多朋友一次拼齐9个图片在一起实现发布更多的图片&#…

html用九张图片做出九宫图,九宫切图软件 如何快速把照片做成九宫格切图

在微博时尚流行的图片展示上,九宫切图是当下最流行的一种,一张非常普通的照片经过了九宫切图软件的处理,变成非常漂亮的九宫图片,是不是美观大大提升了。尤其是在把自己自拍的照片做成九宫图展示,让人更有一种不一样的…

九宫格拼图怎么拼?分享两个简单的操作

日常生活中发朋友圈的时候,小伙伴是不是有很多照片想分享到朋友圈呢?但是因为朋友圈的限制,不能一次全发。有很多朋友发现很多朋友可以把一张图片剪成9格!看起来很棒,那九宫格拼图怎么拼的呢?今天就和大家分…

unity的九宫格切割

我们新建Button,然后我们需要一张图片 修改图片类型如下: Editor GUI and Lagacy GUI适用于ngui,而Sprite适用于ngui 然后点击Sprite Editor,如果首次操作会报错,请按如下操作: 点击Package Manager-》将…

怎么制作九宫格切图?这两个方法非常简单

怎么制作出九宫格切图呢?相信大家在微信朋友圈看到过朋友发的九宫格切图照片,把一张照片切割成九份,然后按照一定的顺序发到朋友圈中,就会形成一个效果非常好的九宫格照片,我们自己也想发这种形式的朋友圈,…

matting之trimap生成_膨胀腐蚀

在抠图技术中三分图(trimap)经常被用到,通常使用的方法是膨胀腐蚀(一般在去除噪声的时候先腐蚀再膨胀)。 1. import os import numpy as np import cv2def random_dilate(alpha, low1, high5, modeconstant):"""Dilation. erode"&…

抠图算法-Alpha Matting

目录 概述graph cutAlpha Matting 概述 对于抠图,比较简单的方法是图像分割,这是很老的方法,但这其实算不上真正意义的抠图,因为他的主要目的是用于图像之间块与块的分割。典型的就是grabcut算法,opencv上面有相应的优…

Background Matting V2 学习

论文: [2012.07810] Real-Time High-Resolution Background Matting (arxiv.org) GitHub项目源码:GitHub - PeterL1n/BackgroundMattingV2: Real-Time High-Resolution Background Matting 目录 论文学习 方法设计: 网络模型: 训…

matting系列论文笔记(三):Boosting Semantic Human Matting with Coarse Annotations

matting系列论文笔记(三):Boosting Semantic Human Matting with Coarse Annotations 论文链接: CVPR2020 Boosting Semantic Human Matting with Coarse Annotations [1] 代码:暂无 文章目录 matting系列论文笔记(三…

Image Matting 图像抠图技术与深度学习抠图

Image Matting: 图像抠图技术是指从静态图像或者视频序列中抽取感兴趣目标的过程,在ps和视频编辑中有重要的应用。 1.Image Matting Matting 技术可以表示为下面的图,与语义分割不同,它可以针对感兴趣前景物体进行细节处理、包括细微的毛发和…

论文阅读——Deep Image Matting

一、摘要 强调image matting(抠图)的现实意义。已有的算法在前景和背景颜色相似或者拥有复杂的纹理时表现较差,主要原因有两个,一个是只运用到低维特征,另一个是缺少高维语境。所以这篇论文提出了深度模型算法可以解决…

【CVPR2022】Boosting Robustness of Image Matting with Context Assembling and Strong Data Augmentation

Boosting Robustness of Image Matting with Context Assembling and Strong Data Augmentation 中文题目 利用上下文组合和强数据增强的增强鲁棒图像抠图 paper:https://openaccess.thecvf.com/content/CVPR2022/papers/Dai_Boosting_Robustness_of_Image_Mattin…

图像抠图Image Matting算法调研

目录 1.Trimap和Strokes 2. 相关数据集 3.论文算法调研 3.1 Deep Image Matting 3.2 Semantic Image Matting 3.3 Background Matting 3.4 Background Matting V2 3.5 Semantic Human Matting 3.6 HAttMatting 3.7 MMNet:Towards Real-Time Automatic Por…

抠图技术及方法简介(Image Matting Overview)

之前接触过语义分割,所以在刚接触图像抠图时以为两者是差不多。语义分割是端到端的,对像素按照语义进行多分类,而抠图就是按照前景和背景进行二分类嘛?实际上这是错误的理解。语义分割重在对每个像素的语义理解,将相同…