Python优化图片实际操作技巧浅析
在一个网站中,会有很多图片来支持这个页面获得更好的用户体验。那么如何应用更好的方法来优化这些图片,获得更好的效果呢?今天我们就会为大家介绍一下Python优化图片的相关方法,以方便大家应用。
对于网站中的一些关键的页面,多重缓存、静态化、程序代码优化……之外,为了提高用户打开页面的速度,图片是必须要优化的。
如何优化呢,其实手工优化也绝对是值得的,也是最好的方法,但是我写了一个小脚本,与其说这个脚本的作用是优化图片,
不如说是给出一个参考,就是经过图片优化,可以减少网页多大的体积。
那脚本是如何工作呢,原理简单,大致是找到所有要优化的文件,用Pil库另存到本目录下的bak文件夹中,这个文件夹要自己先建好哦。
然后统计文件大小,给出结果,所以说这个脚本是“安全”的。任你运行多次,不会真正会改图片,只会把同名文件生成到相应的bak文件中。
Python优化图片代码如下:
#!/usr/bin/python  
#-*-coding:utf-8-*-  
#Filenam: pic_smaller.py  
#Author zhangyufeng_zz  
import os, sys  
import Image  
error_log = ['']  
size_count = 0 
def get_new_one(pic):  
global error_log  
try:  
im = Image.open(pic)  
print pic, im.format, im.size, im.mode  
# im.show()   
if(im.format == 'JPEG'):  
im.save("bak/" + pic)  
finally:  
error_log.append(pic)  
def get_file_size_string(file1 , file2):  
global error_log, size_count   
if(not os.path.isfile(file1)) or (not os.path.isfile(file2)):  
return 0  
try:  
f1 = os.path.getsize(file1)  
f2 = os.path.getsize(file2)  
size_count += f1 - f2  
f = '%s \t-> \t%s\t%dKB*%dKB \t\t = \t %d KB'%(file1, 
file2, f1/1024, f2/1024, (f1-f2)/1024)  
print f  
finally:  
error_log.append('no')  
# main  
all = os.listdir('.')  
pics = []  
formats = ['jpg', 'png', 'JPG' , 'PNG']  
for file in os.listdir('.'):  
if os.path.isfile(file):  
for fr in formats:  
if file.find(fr) > 0:  
pics.append(file)  
for pic in pics:  
get_new_one(pic)  
get_file_size_string(pic , 'bak/' + pic)  
print size_count/1024 , 'KB' Python优化图片代码很简单,而且只是利用了pil的默认图片质量,关于图片的质量,我还没找到调整的方法。