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程序设计有所帮助。