1. 为什么要紧缩图片?

在UI给开发图片的时分,常常都是没有紧缩过的原图,但是移动开发时要尽或许减小app体积,而图片在app体积中占比极大,所以将大图紧缩为小容量图片并且尽或许不影响图片质量是减小app体积全部必要的操作

2. 怎androidstudio装置么紧缩?

紧缩办法有许多,网上各种紧缩东西,传统紧缩办法是UI给了图用这些东西批量googleplay安卓版下载紧缩,缺点就是要手动挑选不同文件夹下的图片,不能做到自定义github打不开

3. 紧缩为什么格局?

但是现在盛行的是紧缩为webp格局,WebP 的优势体现在它具有更优的图像数据紧缩算法,能带来更小的图片体积,并且具有肉眼识别无差异的图像质量;一同具有了无损和有损的紧缩形式、Alpha 透明以及动画的特性,在 JPEG 和 PNG 上的转化效果都适当优异、安稳和共同。

4. 用python自动化批处理紧缩的脚本

直接放脚本代码
文件名compressImagegoogle谷歌查找主页.py

#!/usr/bin/python
# -*- coding:utf8 -*-
# author:liuhc
# description:紧缩指定模块里的大图为webp格局
# creat动画头像e date:2020-09-24 on 1:20 PM
import os
# 查找指定文件夹里大于指定kb的图片列表
def findBigImageFile(folder, size):
bigFiles = []
for foldername, subfolders, filenames in os.walk(fAndroid+Studiooldepython是什么意思r)androidstudio衔接真机:
# 对文件进行遍历
for filename in filenames:
# .geAndroid+Studiotsize(path)有必要是完好途径
file = os.path.join(foldername, filename)
# size*1024google网站登录进口,使参数size单位为kbpython能够做什么工作
if os.ppython能够做什么工作ath.getsize(file) > size * 1024:
file = os.path.abspath(file)
suffix = os.path.splitext(file)[1]
if (suffix == ".png" or suffix == ".jpggithub直播平台永久回家") and file.find(".9.png")google == -1:
bigFiles.append(file)
return bandroidstudio衔接真机igFandroidstudio装置iles
# 将modules中的文件夹都添加到调集里并回来
def saveBigImageFile(modules):
folders = []
for modulepython基础教程 in modules:
fopython是什么意思lders.append(module)
return folders
# modules为当前同级目录下的图片文件夹列表
modules = [python培训班学费一般多少"as动画片公然没有虚拟sets/imagepython爬虫s"]
folders = saveBigImageFile(modules)
# 将大于指定kb的文件都存到bigFiles里
bigFiles = []
for fogoogle翻译lder in folders:github打不开
# 查找指定文件夹里大于指定kb的图片列表
bigFiles +=动画头像 findBi动画图片头像gImageFile(folder, 50)
# 紧缩前的大小
beforeCompressSize = 0
# 紧缩后的大小
afterCogoogleplaympressSize = 0
for bigFile in bigFiles:
absFilpython123eName = os.path.splitext(bigFile)[0]
before = os.path.getsize(bigFile) / 1024
beforeComAndroid+StudiopressSize += before
print("紧缩前", before, "kb")
cmd = "cwebgoogle网站登录进口p -q 75 " + bigFile + " -o " + absFileName + ".webp"
printandroidstudio衔接真机(cmd)
os.system(cmd)
after = os.path.getsize(absFileName + ".webp") / 1024
afterCompressSize += after
print("紧缩后", after)
for bigFile in bigFiles:
# 转为webp后删googleplay安卓版下载去原文件
os.remove(bigFile)
if beforeCompressSize > 0:
print("动画片公然没有虚拟紧缩比", afterCompressSize / beforeCompressSize * 100, "%")

其中代码里的modules = ["assets/imageGitHubs"]为咱们要紧缩的图片地址的文件夹,途径是相对python脚本github中文社区文件地址方google空间位的相对途径
然后翻开Android Studiandroidstudio装置o的Terminal框,输入pgoogle空间ython3 compressImage.py即可将咱们github怎么下载文件的图片文件夹里大于指定kb的图片紧缩为google翻译webp格局并删去被紧缩的文件。

注意事项

上文中的webp指令需求自己设备对应文件。Google供应了指令行东西用于将图片转换为webp。在Mac下,能够运用homebrew设备webp东西:

brgoogle网站登录进口ew install webp

总结

在上面的脚本里我的modules = ["assets/images"]写的是Flutter项目的图片地址途径,如果是Android项目或许IOS项目填写对应项目的图片地址途径即可。将脚本拷贝到自己的项目里,修改modules = ["assets/images"]后,以后UI给了开发图github是干什么的片,只需求放到对应文件夹然后运转一次该脚本即可。

demo已放到github,是Flutter项目:
github.com/ikakaxi/com…