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. PHP和mysql英文

    spam (垃圾邮件) recruiter (招聘人员) occasional (偶然) professional and enthusiast programmers (专业和发烧友程序员) syn ...

  2. 用SignalTap进行硬件仿真

    写在前面:本博客为本人原创,严禁任何形式的转载!本博客只允许放在博客园(.cnblogs.com),如果您在其他网站看到这篇博文,请通过下面这个唯一的合法链接转到原文! 本博客全网唯一合法URL:ht ...

  3. 【编译原理】c++实现词法分析器

    写在前面:本博客为本人原创,严禁任何形式的转载!本博客只允许放在博客园(.cnblogs.com),如果您在其他网站看到这篇博文,请通过下面这个唯一的合法链接转到原文! 本博客全网唯一合法URL:ht ...

  4. Page5:状态转移矩阵及性质、连续线性系统离散化及其性质[Linear System Theory]

    内容包含脉冲响应矩阵和传递函数矩阵之间的关系,状态转移矩阵及性质,以及线性连续系统离散化及其性质

  5. Flink - FlinkKafkaProducer010

    https://ci.apache.org/projects/flink/flink-docs-release-1.3/dev/connectors/kafka.html 使用的方式, DataStr ...

  6. bzoj 2563 [2012国家集训队Round 1 day2] 阿狸和桃子的游戏 贪心

    正解:贪心 解题报告: 链接在这儿! 知道解法之后会jio的好像很简单的样子……其实挺难想到的QAQ 不过大佬讲了方法之后还是懂了 有一个很神仙的想法就是,你可以理解为每个点周围的边都有半个是自己的, ...

  7. 让网站不去请求favicon.ico图标

    让网站不去请求favicon.ico图标 favicon.ico 图标用于收藏夹图标和浏览器标签上的显示,如果不设置,浏览器会请求网站根目录的这个图标,如果网站根目录也没有这图标会产生 404.出于优 ...

  8. Mac OSX上卸载Anaconda

    方案一 anaconda安装程序在~/.bash_profile脚本中新添加了一行,将anaconda bin目录添加到了$PATH环境变量中.所以你只需要删除anaconda目录,但是最好也从安装脚 ...

  9. 各大知名区块链交易所链接及API文档链接

    区块链交易所链接 火币网(Huobi):https://www.huobi.br.com/zh-cn/ API文档:https://github.com/huobiapi/API_Docs/wiki ...

  10. kafka5 编写简单生产者

    一 客户端 1.打开eclipse,新建maven项目(new-->other-->Maven Project-->Artifact Id设为mykafka). 2.配置Build ...