在一个网站中,会有很多图片来支持这个页面获得更好的用户体验。那么如何应用更好的方法来优化这些图片,获得更好的效果呢?今天我们就会为大家介绍一下Python优化图片的相关方法,以方便大家应用。#t#

专注于为中小企业提供网站制作、网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业砚山免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千余家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
对于网站中的一些关键的页面,多重缓存、静态化、程序代码优化……之外,为了提高用户打开页面的速度,图片是必须要优化的。
如何优化呢,其实手工优化也绝对是值得的,也是最好的方法,但是我写了一个小脚本,与其说这个脚本的作用是优化图片,
不如说是给出一个参考,就是经过图片优化,可以减少网页多大的体积。
那脚本是如何工作呢,原理简单,大致是找到所有要优化的文件,用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的默认图片质量,关于图片的质量,我还没找到调整的方法。
- #!/usr/bin/python
 - #-*-coding:utf-8-*-
 - #Filenam: get_cnblogs.py
 - #Author zhangyufeng_zz
 - import os
 - import sys
 - import re
 - from urllib import urlopen
 - string = urlopen("http://www.cnblogs.com/AllBloggers.aspx").read()
 - #file_object = open('string.txt')
 - #--------------------------------------------------
 - # try:
 - # string = file_object.read()
 - # finally:
 - # file_object.close()
 - #--------------------------------------------------
 - usr_name = 'amboyna'
 - url = "http://www.cnblogs.com"
 - usr_length = len(usr_name)
 - i = string.count(usr_name)
 - r = string.find(usr_name)
 - usr_string = string[r - 60 : r + 50]
 - name_s = usr_string.find(usr_name + "/\">") + len(usr_name) + 3
 - name_e = usr_string.find(" ")
 - name = usr_string[name_s : name_e ]
 - small_s = usr_string.find('')
 - small_e = usr_string.find('. ')
 - no = usr_string[small_s + 7 : small_e]
 - http_s = usr_string.find(url)
 - http = usr_string[ http_s : http_s + len(url) + usr_length + 1 ]
 - print '\n'
 - print '----------------------------------'
 - print 'ID:\t' , usr_name
 - print 'NAME:\t' , name
 - print 'NO.:\t' , no
 - print 'URL:\t' , http
 - print '----------------------------------\n'
 
把usr_name 改成你的用户名就成。以上就是我们为大家详细介绍的有关Python优化图片的方法。
Copyright © 2009-2022 www.wtcwzsj.com 青羊区广皓图文设计工作室(个体工商户) 版权所有 蜀ICP备19037934号