[练习] 用PYTHON来优化网站中的图片

我到公司后第一次加班。哇,一个晚上加一个早上,还没有下班的迹象,555,困了。

[En]

I have worked overtime for the first time since I arrived at the company. Wow, one night plus one morning, there is no sign of getting off work yet, 555, sleepy.

对于网站中的一些关键的页面,多重缓存、静态化、程序代码优化……之外,为了提高用户打开页面的速度,图片是必须要优化的。

如何对其进行优化?其实人工优化绝对是值得的,这是最好的办法,但我写了一个小剧本,与其说是优化画面,不如说是优化。

[En]

How to optimize it? in fact, manual optimization is definitely worth it, and it is the best way, but I wrote a small script, which is not so much to optimize the picture.

最好是给个参考,也就是图像优化后,可以缩小网页的大小。

[En]

It is better to give a reference, that is, after image optimization, you can reduce the size of the web page.

那脚本是如何工作呢,原理简单,大致是找到所有要优化的文件,用Pil库另存到本目录下的bak文件夹中,这个文件夹要自己先建好哦。

然后统计文件大小,给出结果,所以说这个脚本是”安全”的。任你运行多次,不会真正会改图片,只会把同名文件生成到相应的bak文件中。

代码如下:

[练习] 用PYTHON来优化网站中的图片[练习] 用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 ‘

代码很简单,而且只是利用了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的文档,没找到如何使用正则的方法,如果哪位大大很明白,请回复一下啊,谢谢。

Original: https://www.cnblogs.com/amboyna/archive/2009/08/22/1551819.html
Author: 玉米疯收
Title: [练习] 用PYTHON来优化网站中的图片

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/10630/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

免费咨询
免费咨询
扫码关注
扫码关注
联系站长

站长Johngo!

大数据和算法重度研究者!

持续产出大数据、算法、LeetCode干货,以及业界好资源!

2022012703491714

微信来撩,免费咨询:xiaozhu_tec

分享本页
返回顶部