python使用Image处理图片常用技巧分析
本文实例讲述了python使用Image处理图片常用技巧。分享给大家供大家参考。具体分析如下:
使用python来处理图片是非常方便的,下面提供一小段python处理图片的代码,需要安装图像处理工具包PIL(PythonImageLibrary)。
#coding=utf-8
importImage
importurllib2
importStringIO
importos
#改变图片大小
defresize_img(img_path):
try:
img=Image.open(img_path)
(width,height)=img.size
new_width=200
new_height=height*new_width/width
out=img.resize((new_width,new_height),Image.ANTIALIAS)
ext=os.path.splitext(img_path)[1]
new_file_name='%s%s'%('small',ext)
out.save(new_file_name,quality=95)
exceptException,e:
printe
#改变图片类型
defchange_img_type(img_path):
try:
img=Image.open(img_path)
img.save('new_type.png')
exceptException,e:
printe
#处理远程图片
defhandle_remote_img(img_url):
try:
request=urllib2.Request(img_url)
img_data=urllib2.urlopen(request).read()
img_buffer=StringIO.StringIO(img_data)
img=Image.open(img_buffer)
img.save('remote.jpg')
(width,height)=img.size
out=img.resize((200,height*200/width),Image.ANTIALIAS)
out.save('remote_small.jpg')
exceptException,e:
printe
if__name__=='__main__':
img_path='test.jpg'
resize_img(img_path)
change_img_type(img_path)
img_url='http://img.hb.aicdn.com/042f8a4a70239f724ff7b9fa0fc8edf18658f41022ada-WcItWE_fw554'
handle_remote_img(img_url)
可能会遇到的问题
ImportError:NomodulenamedImage
解决办法:安装PythonImagingLibrary(PIL)
sudoeasy_installPIL
安装PIL出现:
—JPEGsupportnotavailable
—ZLIB(PNG/ZIP)supportnotavailable
—FREETYPE2supportnotavailable
操作jpeg图片和png图片出现:
IOError:decoderjpegnotavailable和IOError:encoderzipnotavailable
解决办法:
(1)删除已经安装的PIL
sudorm-rf/usr/local/lib/python2.6/site-packages/PIL-1.1.7-py2.6-linux-x86_64.egg/
(2)安装相关库
sudoapt-getinstalllibjpeg8libjpeg62-devlibfreetype6libfreetype6-dev sudoln-s/usr/lib/x86_64-linux-gnu/libjpeg.so/usr/lib/ sudoln-s/usr/lib/x86_64-linux-gnu/libfreetype.so/usr/lib/ sudoln-s/usr/lib/x86_64-linux-gnu/libz.so/usr/lib/
(3)重新安装PIL
sudoeasy_installPIL
终端出现:
—JPEGsupportavailable
—ZLIB(PNG/ZIP)supportavailable
—FREETYPE2supportavailable
现在试试,已经ok了
希望本文所述对大家的Python程序设计有所帮助。