九宫格图片,可能用得最多的地方就是微信朋友圈了。之所以要弄成九宫格图片,就是因为将一张图切割成九张图按次序排好,很有文艺感,不仅符合审美,而且还能突出图片显示,即便在缩略图模式下也能看到整张图全貌。而针对一张完整图的九宫格切割方式,也是很多。这里机智客只用我们以往经常介绍的两种技术方法来实现一下:用GIMP作图软件切割;用Python编程来实现切割。
?
首先用GIMP作图软件,相信关注机智客的朋友们都了解,很早之前我们就介绍过这款跨平台开源的“Photoshop”替代品,功能强大,小巧灵活。而用GIMP软件要将一张图切割成九宫格图,也很简单。这就要用到切片工具。
在以前的文章里,我们介绍过GIMP的切片工具。这个在GIMP软件里菜单的位置是滤镜-网络-切片。不过由于我们要做成九宫格图,那么就要先将图“切割”分为9个区域。如图所示,我们只要从标尺里拉出几个分隔线,对图片做好划分,然后才可以用切片工具。注意导出路径、文件名这些基本参数要填写正确。然后执行切片,就可以到相应的文件夹里找已经切割好的九宫格图片了。
?
接下来是用Python编程的方法来实现图片的九宫格图处理。这个也很简单。由于要涉及图片处理,所以我们需要用Python的PIL库。这个库的安装,机智客在以前的文章里都介绍学习过,网上也有,大家可以参考。PIL正确安装后,然后把下列代码保存成Py格式,就可以了,这个代码一目了然,意思就是获取待处理的原图,填充切割并另存。一共三个主要函数,分别是填充、切割和保存,比较简单,而且也是网上公开的技术,所以无需赘述。最后双击执行就可以自动化处理了。
?
from PIL import Image
import sys
?
?
# 先将input image 填充为正方形
def fill_image(image):
width, height =
# 选取机智客的原图片长、宽中较大值作为新图片的九宫格半径
new_image_length = width if width > height else height
# 生产新图片【白底】
new_image = (, (new_image_length, new_image_length), color='white')
# 将原图粘贴在新图上,位置为居中
if width > height:
new_(image, (0, int((new_image_length - height) / 2)))
else:
new_(image, (int((new_image_length - width) / 2), 0))
return new_image
?
?
# 将图片切割成九宫格
def cut_image(image):
width, height =
# 一行放3张图
item_width = int(width / 3)
box_list = []
for i in range(0, 3):
for j in range(0, 3):
box = (j * item_width, i * item_width, (j + 1) * item_width, (i + 1) * item_width)
box_(box)
image_list = [(box) for box in box_list]
return image_list
?
?
# 保存图片
def save_images(image_list):
index = 1
for image in image_list:
('F:\\jobst\\'+str(index) + '.png', 'PNG')
index += 1
?
?
if __name__ == '__main__':
file_path = "F:\jobst\机智客01.jpg"
image = (file_path)
# ()
image = fill_image(image)
image_list = cut_image(image)
print(len(image_list))
save_images(image_list)
文章来源:《电脑编程技巧与维护》 网址: http://www.dnbcjqywh.cn/zonghexinwen/2021/0406/906.html
电脑编程技巧与维护投稿 | 电脑编程技巧与维护编辑部| 电脑编程技巧与维护版面费 | 电脑编程技巧与维护论文发表 | 电脑编程技巧与维护最新目录
Copyright © 2018 《电脑编程技巧与维护》杂志社 版权所有
投稿电话: 投稿邮箱: