用GIMP作图和Python编程两种方法把图像做朋友圈九宫格图片

九宫格图片,可能用得最多的地方就是微信朋友圈了。之所以要弄成九宫格图片,就是因为将一张图切割成九张图按次序排好,很有文艺感,不仅符合审美,而且还能突出图片显示,即便在缩略图模式下也能看到整张图全貌。而针对一张完整图的九宫格切割方式,也是很多。这里机智客只用我们以往经常介绍的两种技术方法来实现一下:用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 = 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)))

else:

new_image.paste(image, (int((new_image_length - width) / 2), 0))

return new_image

# 将图片切割成九宫格

def cut_image(image):

width, height = image.size

# 一行放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_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('F:\\jobst\\'+str(index) + '.png', 'PNG')

index += 1

if __name__ == '__main__':

file_path = "F:\jobst\机智客01.jpg"

image = Image.open(file_path)

# image.show()

image = fill_image(image)

image_list = cut_image(image)

print(len(image_list))

save_images(image_list)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容