Python优化图片实际操作技巧浅析
Python培训,就选光环大数据Python培训机构!
在一个网站中,会有很多图片来支持这个页面获得更好的用户体验。那么如何应用更好的方法来优化这些图片,获得更好的效果呢?今天我们就会为大家介绍一下Python优化图片的相关方法,以方便大家应用。
- 正确掌握Python sys.arg使用方法
- Python继承体现面向对象特征
- Python调用.net framework主要操作步骤剖
- Python创建Silverlight控件编写过程经验
- Python解析XML正确应用代码示例讲解
对于网站中的一些关键的页面,多重缓存、静态化、程序代码优化……之外,为了提高用户打开页面的速度,图片是必须要优化的。
如何优化呢,其实手工优化也绝对是值得的,也是最好的方法,但是我写了一个小脚本,与其说这个脚本的作用是优化图片,
不如说是给出一个参考,就是经过图片优化,可以减少网页多大的体积。
那脚本是如何工作呢,原理简单,大致是找到所有要优化的文件,用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("</a> ")
- name = usr_string[name_s : name_e ]
- small_s = usr_string.find('<small>')
- 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优化图片的方法。
Python培训,就选光环大数据Python培训机构!
大数据培训、人工智能培训、Python培训、大数据培训机构、大数据培训班、数据分析培训、大数据可视化培训,就选光环大数据!光环大数据,聘请专业的大数据领域知名讲师,确保教学的整体质量与教学水准。讲师团及时掌握时代潮流技术,将前沿技能融入教学中,确保学生所学知识顺应时代所需。通过深入浅出、通俗易懂的教学方式,指导学生更快的掌握技能知识,成就上万个高薪就业学子。 更多问题咨询,欢迎点击------>>>>在线客服!