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

# coding: utf-8

from PIL import Image
import os, sys Int_Len = 5 def getPicInfo(pic):
im = Image.open(pic)
print("--------------------")
print("file name:\t" + im.filename)
print("format:\t\t" + im.format)
print("size:\t\t" + str(im.size))
print("mode:\t\t" + im.mode)
return im def convertFormat(pic, format):
pathNew = getNewFormatPath(pic, format)
try:
im = Image.open(pic)
im.save(pathNew, format)
getPicInfo(pathNew)
return pathNew
except IOError:
print("Cannot create new Format %s for %s." % format, pic)
return None def convertThumbnails(pic, rate=1, format='JPEG'):
pathNew = getThumbnailsPath(pic, r"thumbnails", format)
if (pic != pathNew):
try:
im = Image.open(pic)
size = (int(im.size[0] * rate), int(im.size[1] * rate))
im.thumbnail(size)
im.save(pathNew, format)
getPicInfo(pathNew)
return pathNew
except IOError:
print("Cannot create thumbnail for ", pic)
return None def getNewFormatPath(pic, format):
pathSegs = os.path.splitext(pic)
count = 1
while True:
pathNew = pathSegs[0] + r"-" + str(count).zfill(Int_Len) + "." + format.lower()
if os.path.exists(pathNew):
count += 1
pathNew = pathSegs[0] + r"-" + str(count).zfill(Int_Len) + "." + format.lower()
else:
return pathNew def getThumbnailsPath(pic, suffix, format):
pathSegs = os.path.splitext(pic)
count = 1
while True:
pathNew = pathSegs[0] + r"-" + str(count).zfill(Int_Len) + r"-" + suffix + "." + format.lower()
if os.path.exists(pathNew):
count += 1
pathNew = pathSegs[0] + r"-" + str(count).zfill(Int_Len) + r"-" + suffix + "." + format.lower()
else:
return pathNew if __name__ == "__main__":
pic1 = r"res/MIT-001.jpg"
pic2 = r"res/MIT-002.jpg" # im = getPicInfo(pic1)
# r,g,b = im.split()
# r.rotate(45).show()
# g.resize((100,200)).show()
# b.show()
# im.convert("L").convert("RGB").show() # convertThumbnails(pic1, 0.5) path = convertFormat(pic1, 'PNG')
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. Python创建第一个django应用

    在helloworld工程的基础上,我们准备创建第一个基于web的django应用,把这个应用名字命名为Guest   1.首先,是如何创建这个应用包,当然第一选择我们可以进入到cmd中,执行如下命令 ...

  2. java上传文件代码

    import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;impo ...

  3. 虚拟机VirtualBox与CentOS 7安装

    一.VirtualBox 我们电脑的操作系统一般都是Windows,如果我们要学习Linux,那么可以在我们的电脑上装个虚拟机,然后在这虚拟机上安装Linux.虚拟机可以用VirtualBox 或者 ...

  4. 【PyQt5-Qt Designer】QLineEdit 文本输入

    QLineEdit 文本输入 一.QlineEdit 基本方法 setAlignment() 按固定值方式对齐文本 Qt.AlignLeft:水平方向靠左对齐 Qt.AlignRight:水平方向靠右 ...

  5. python pip install 报错TypeError: unsupported operand type(s) for -=: 'Retry' and 'int' Command "python setup.py egg_info" failed with error code 1 in

    pip install http://download.pytorch.org/whl/cu80/torch-0.2.0.post3-cp27-cp27mu-manylinux1_x86_64.whl ...

  6. JDBC的简单封装

    import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import ...

  7. 第二节:Linux下检出项目和提交项目

    1.在linux下获取项目: 2.在linux中提交项目: 这时候我们在光标处添加注释,然后保存退出. 再查看下状态: 接下来问题来了: 解决办法: vim .git/config 修改:[remot ...

  8. oc初步画图

    - (void)drawRect:(CGRect)rect { CGContextRef context = UIGraphicsGetCurrentContext(); CGContextMoveT ...

  9. laravel dingo/api添加jwt-auth认证

    前面我们学了laravel dingo/api创建简单的api,这样api是开放给所有人的,如何查看和限制api的调用呢?可以用jwt-auth来验证,JSON Web Token Authentic ...

  10. Java基础知识(JAVA集合框架之List与Set)

    List和Set概述数组必须存放同一种元素.StringBuffer必须转换成字符串才能使用,如果想拿出单独的一个元素几乎不可能.数据有很多使用对象存,对象有很多,使用集合存. 集合容器因为内部的数据 ...