1000张图片如何拼接

1000张+图片怎样拼接在一起,当然不能靠PS,也不能用美图秀秀,必须是编程来实现,而且一定要用Python。

用的是第三方库 PIL , 官方文档 http://effbot.org/imagingbook/

The Python Imaging Library (PIL) adds image processing capabilities to your Python interpreter. This library supports many file formats, and provides powerful image processing and graphics capabilities.

PIL已经是Python平台事实上的图像处理标准库。PIL功能强大,简单易用。

Image 类是 PIL 库中一个非常重要的类,通过这个类来创建实例可以有直接载入图像文件,读取处理过的图像。

还是看看我要实现的N张图片的拼接,怎么做?
基本的操作就是创建一张图片,把要拼接的图片读取进来,顺序贴(paste)到创建的这张图中。

以下是Image类几个最常用的方法。

new('RGBA', (x,y))

创建一张图片,默认是黑色的。可以修改参数。

image = Image.new('RGB', (width, height), (255, 255, 255))

open(filename) , save(outfilename)

open(filename) 打开一个图片文件把图片读进来。save(outfilename)保存图片。

resize(size,size)

调整图片大小(缩放图片)。近2000张图片,先要缩小一下。

paste(fromImage,where)

把图片贴进来,坐标系,左上角是(0,0)

完整代码:

# -*- coding:utf-8 -*-
# 图片拼接
import PIL.Image as Image
import os, sys

mw = 133 # 图片大小+图片间隔
ms = 5 

msize = mw * ms


fpre = "x" #图片前缀
toImage = Image.new('RGBA', (msize, msize))

for y in range(1, 6):  ## 先试一下 拼一个5*5 的图片
    for x in range(1, 6):
        
        # 之前保存的图片是顺序命名的,x_1.jpg, x_2.jpg ...
        fname = "x_%s.jpg" % (ms*(y-1)+x)

        fromImage = Image.open(fname)
        #fromImage =fromImage.resize((mw, mw), Image.ANTIALIAS)   # 先拼的图片不多,不用缩小
       
        toImage.paste(fromImage, ((x-1) * mw, (y-1) * mw))

toImage.save('/Users/apple/Desktop/toimg/toImage_0.jpg')

为了防止密集恐怖,我随(jing)机(xin)选了25张来拼接。你们看看我的朋友圈颜值如何。


PS: 你一定好奇,这些图片是怎么来的,当然不是一张一张手动保存下来。对,是Python爬虫。还有什么有趣的微信朋友圈数据,敬请期待。

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

推荐阅读更多精彩内容

  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    aimaile阅读 26,567评论 6 427
  • GitHub 上有一个 Awesome - XXX 系列的资源整理,资源非常丰富,涉及面非常广。awesome-p...
    若与阅读 18,751评论 4 418
  • 环境管理管理Python版本和环境的工具。p–非常简单的交互式python版本管理工具。pyenv–简单的Pyth...
    MrHamster阅读 3,850评论 1 61
  • 170301 漫天大雪,洋洋洒洒,猝不及防的把我从春季带入了不明时空。 花了一下午的时间订好了行程,碎碎念的事情终...
    XxXxXxN阅读 160评论 0 0
  • 在使用环信的 EaseUI 给 app 集成即时通讯功能时,编译项目出现问题,提示项目的 .dex 文件中的方法数...
    Android_小生阅读 362评论 0 1