zoukankan      html  css  js  c++  java
  • python图片拼接


    import
    os from PIL import Image #import pyautogui #import re ''' 把当前目录下的10*10张jpeg格式图片拼接成一张大图片 ''' #图片压缩后的大小 width_i = 200 height_i = 300 #每行每列显示图片数量 line_max = 10 row_max = 10 #参数初始化 all_path = [] num = 0 pic_max=line_max*row_max dirName = os.getcwd() for root, dirs, files in os.walk(dirName): for file in files: if "jpeg" in file: all_path.append(os.path.join(root, file)) toImage = Image.new('RGBA',(width_i*line_max,height_i*row_max)) for i in range(0,row_max): for j in range(0,line_max): pic_fole_head = Image.open(all_path[num]) width,height = pic_fole_head.size tmppic = pic_fole_head.resize((width_i,height_i)) loc = (int(i%line_max*width_i),int(j%line_max*height_i)) #print("第" + str(num) + "存放位置" + str(loc)) toImage.paste(tmppic,loc) num= num+1
          if num >= len(all_path): print("breadk") break if num >= pic_max: break print(toImage.size) toImage.save('merged.png')

    设计原因,以前听别人说用来把妹的

    设计思路如下,

    1.先用you-get 抓取jpeg格式文件放到目录下

    2.写程序使得程序可以读取到当前目录下的所有jepg格式文件(类似于数据库)

    3.对这些文件进行统一的压缩,做成宽200,高300的(当然如果按照原始比例缩小的话就会有乱序效果,大小图叠加而且不会有失真的情况发生)

    4.创建一个画板,在对应的位置贴上压缩后的图片即可

    =======

    感悟其实写程序也就跟玩游戏一样,摸索出各种工具怎么用。然后用起来帮你做事就可以了

          5X5                 3X3

       

    如果代码中的压缩改成按照等比例缩放如下

            tmppic = pic_fole_head.resize((int(width/3),int(height/3)))

    则会有如下效果

  • 相关阅读:
    Vimium -为键盘而生
    Sublime Text 3 修改配色主题【侧边框之...】
    MyBatis-Plus文档地址
    解决:电脑新建文件后需要刷新才显示
    技术书籍博客
    js获取浏览器当前窗口的高度长度
    DataGridView隐藏列用CSS实现
    判断windows操作系统平台
    iis7.5错误 配置错误
    vmware安装mac
  • 原文地址:https://www.cnblogs.com/asreg/p/6791406.html
Copyright © 2011-2022 走看看