Paradoxical在朋友圈看到有好友发朋友圈的九宫格照片虽然分开了,但是看上去还是连起来的。(下图)
这么有趣的东西Paradoxical怎么可能放过呢,python应该能做出来吧?虽然Paradoxical不会,但是有小哥哥鸭~看在友谊(一杯奶茶)的份上,小哥哥爽快地答应了教我。
惨绿青年:我在网上查了下,用python的PIL库可以实现,主要用到的是crop(),这个方法能截取图片的某个部分,并返回这个部分的副本。box参数需要给一个元组,元组里面需要4条直线,顺序是left,top,right,bottom。crop()会根据这4条直线围成的矩形去截取图片。
惨绿青年:知道了截取图片的方法,接下来就是设置两层循环,第一层循环设置截取图片每一行的top和bottom;第二层循环设置截取图片每一列的left和right。两层循环各循环3次就能截取9张图片了。
惨绿青年:关键的地方来了,怎么写代码才能把9张图都截取出来呢?经过我的多次测试,终于得出了结果。
惨绿青年:加上保存的代码即可保存为文件。
惨绿青年:考虑到原图的长和宽可能不一样,所以加一段代码,出现这种情况时根据最长的边新建一个白色背景的图片,然后把原图粘贴上去。
惨绿青年:测试了一下也没有问题。
惨绿青年:最后我还打包成exe了,我对你好吧。
我:对对对你说的都对。 ̄へ ̄