https://www.cnblogs.com/morethink/p/8419151.html#%E7%9B%B4%E6%8E%A5%E6%8F%92%E5%85%A5%E6%8E%92%E5%BA%8F

https://www.cnblogs.com/brookshi/p/8414881.html

https://www.cnblogs.com/zhouyubo/p/8412840.html

https://www.cnblogs.com/cr330326/p/8419899.html

https://www.cnblogs.com/xybaby/p/8403461.html

http://www.cnblogs.com/xybaby/p/7954610.html

http://www.cnblogs.com/xybaby/p/6406191.html

http://www.cnblogs.com/xybaby/p/6343285.html

https://www.cnblogs.com/liuyun1995/p/8416340.html

https://www.cnblogs.com/AdaminXie/p/8379749.html

https://www.cnblogs.com/JJJ1990/p/8384386.html

https://www.cnblogs.com/zhenlingcn/p/8386214.html

http://www.cnblogs.com/zhenlingcn/p/8337788.html

TutorialDemo001.py

  1. # coding: utf-8
  2.  
  3. from PIL import Image
  4. import os, sys
  5.  
  6. Int_Len = 5
  7.  
  8. def getPicInfo(pic):
  9. im = Image.open(pic)
  10. print("--------------------")
  11. print("file name:\t" + im.filename)
  12. print("format:\t\t" + im.format)
  13. print("size:\t\t" + str(im.size))
  14. print("mode:\t\t" + im.mode)
  15. return im
  16.  
  17. def convertFormat(pic, format):
  18. pathNew = getNewFormatPath(pic, format)
  19. try:
  20. im = Image.open(pic)
  21. im.save(pathNew, format)
  22. getPicInfo(pathNew)
  23. return pathNew
  24. except IOError:
  25. print("Cannot create new Format %s for %s." % format, pic)
  26. return None
  27.  
  28. def convertThumbnails(pic, rate=1, format='JPEG'):
  29. pathNew = getThumbnailsPath(pic, r"thumbnails", format)
  30. if (pic != pathNew):
  31. try:
  32. im = Image.open(pic)
  33. size = (int(im.size[0] * rate), int(im.size[1] * rate))
  34. im.thumbnail(size)
  35. im.save(pathNew, format)
  36. getPicInfo(pathNew)
  37. return pathNew
  38. except IOError:
  39. print("Cannot create thumbnail for ", pic)
  40. return None
  41.  
  42. def getNewFormatPath(pic, format):
  43. pathSegs = os.path.splitext(pic)
  44. count = 1
  45. while True:
  46. pathNew = pathSegs[0] + r"-" + str(count).zfill(Int_Len) + "." + format.lower()
  47. if os.path.exists(pathNew):
  48. count += 1
  49. pathNew = pathSegs[0] + r"-" + str(count).zfill(Int_Len) + "." + format.lower()
  50. else:
  51. return pathNew
  52.  
  53. def getThumbnailsPath(pic, suffix, format):
  54. pathSegs = os.path.splitext(pic)
  55. count = 1
  56. while True:
  57. pathNew = pathSegs[0] + r"-" + str(count).zfill(Int_Len) + r"-" + suffix + "." + format.lower()
  58. if os.path.exists(pathNew):
  59. count += 1
  60. pathNew = pathSegs[0] + r"-" + str(count).zfill(Int_Len) + r"-" + suffix + "." + format.lower()
  61. else:
  62. return pathNew
  63.  
  64. if __name__ == "__main__":
  65. pic1 = r"res/MIT-001.jpg"
  66. pic2 = r"res/MIT-002.jpg"
  67.  
  68. # im = getPicInfo(pic1)
  69. # r,g,b = im.split()
  70. # r.rotate(45).show()
  71. # g.resize((100,200)).show()
  72. # b.show()
  73. # im.convert("L").convert("RGB").show()
  74.  
  75. # convertThumbnails(pic1, 0.5)
  76.  
  77. path = convertFormat(pic1, 'PNG')
  78. print(os.path.abspath(path))

  

python pillow的更多相关文章

  1. python Pillow 图片处理模块,好强大有没有

    python Pillow 图片处理模块,好强大有没有 Pillow 需要给 python 另外安装 第一个用法:https://www.cnblogs.com/ibingshan/p/1105739 ...

  2. [ller必读] LoveLive! 必备技能之 Python Pillow 自动处理截图

    起因 喜欢的歌,静静地听:喜欢的人,远远的看.30天前,就是3月14号,我情不自禁地走近了<LoveLive!学院偶像祭>,这是我的第一张卡片(见下图).第二天也就是3月15日,海未生日了 ...

  3. python pillow模块用法

    pillow Pillow是PIL的一个派生分支,但如今已经发展成为比PIL本身更具活力的图像处理库.pillow可以说已经取代了PIL,将其封装成python的库(pip即可安装),且支持pytho ...

  4. Python pillow库安装报错

    报错信息: D:\pythontest\duanxinhongzha>pip3 install pillowCollecting pillow Could not find a version ...

  5. Python pillow库

    由于pillow库功能很强大本文章主要介绍pillow的Image模块 关于Pillow与PIL PIL(Python Imaging Library)是Python一个强大方便的图像处理库,名气也比 ...

  6. 基于Python Pillow库生成随机验证码

    from PIL import Image from PIL import ImageDraw from PIL import ImageFont import random class ValidC ...

  7. python pillow 处理图片

    demo1 #打开图片,并随机添加一些椒盐噪声 from PIL import Image import numpy as np import matplotlib.pyplot as plt img ...

  8. python pillow 绘制图片

    demo1 #coding=utf- from PIL import Image img = Image.,))###创建一个5*5的图片 pixTuple = (,,,)###三个参数依次为R,G, ...

  9. 使用python拼接多张图片.二三事

    前几日在博客上看到一篇“使用python拼接多张图片”的Blog[具体是能将的图片名字必须是形如xx_1.png ... xx_100.png或者xx_001.png ... xx_100.png,拼 ...

随机推荐

  1. Blender 使用

    教程: 1.https://www.youtube.com/watch?v=N8-mE-165b8&index=7&list=PLE885296A496C3D38 快捷键: http: ...

  2. git bash 命名

    git log -p -2 我们常用 -p 选项展开显示每次提交的内容差异,用 -2 则仅显示最近的两次更新. git diff HEAD git clean -df 恢复到最后一次提交的改动: gi ...

  3. kafka读书笔记《kafka权威指南》2018

    1.有了分区,可以多个client消费一个topic,有了分区,可以将一个topic 分散在多个broker 2.kafka通过复制实现可靠,通过横向扩展提高性能(如增加分区.客户端.增加broker ...

  4. 动态SQL详解

    动态SQL 在之前用户所编写的PL/SQL程序时有一个最大的特点:就是所操作的数据库对象(例如:表)必须存在,否则创建的子程序就会出问题,而这样的操作在开发之中被称为静态SQL操作,而动态SQL操作可 ...

  5. html 标签笔记

    <一.HTML 基础结构> <html>________________________________<head><title>无标题文档</t ...

  6. 20165336 实验二 Java面向对象程序设计

    20165336 实验二 Java面向对象程序设计 一.实验报告封面 课程:Java程序设计 班级:1653班 姓名:康志强 学号:20165336 指导教师:娄嘉鹏 实验日期:2018年4月16日 ...

  7. 获取文件后缀名(zip,rar等)

    var filename = file.name; var index1 = filename.lastIndexOf("."); var index2 = filename.le ...

  8. 【雅思】【写作】【大作文】Report

    •Report •主要分类 •两个问题 • •1. 原因,解决办法 • •2. 原因,积极还是消极 • •3. Freestyle •报告型 •In cities and towns all over ...

  9. nodejs, vue, webpack 项目实践

    vue 及 webpack,均不需要与nodejs一期使用,他们都可以单独使用到任何语言的框架中. http://jiongks.name/blog/just-vue/ https://cn.vuej ...

  10. 1A

    #include <iostream> using namespace std; int main() { long long n, m, a, r, c; cin>>n> ...