在网站开发中,压缩图片是非常重要的一步。这是因为图片往往占用了网页中大部分的带宽,而压缩图片可以有效减小图片的体积,从而加快网页的加载速度,提高用户体验。
此外,压缩图片还有助于减少服务器的存储空间和流量消耗,降低网站的运营成本。
因此,在网站开发中,我们强烈建议开发人员对图片进行压缩处理,以提高网站的性能和用户体验。
网页开发中常见的图片格式有哪些?
· JPEG:JPEG是一种常用的有损压缩图片格式,适用于网络和打印使用。它能够以较小的体积产生质量不错的图片,但不支持透明度。
· PNG:PNG是一种标准的网络图片格式,支持透明度。它提供无损压缩,能够保留图片的细节,但体积相对较大。
· WEBP:WebP是谷歌在2010年开发的一种图片格式,专为提供更好的无损和有损压缩的网络图片而设计。它能够以更小的体积产生质量不错的图片,并支持透明度和动画。
这些格式各有优缺点,可以根据实际需求去选择合适的格式。
如何压缩图片?
压缩图片的方式分为在线压缩和本地压缩:
· 在线压缩:比较常用的是 tinypng,压缩 png 格式的图片压缩率很高,能够最大的保留图片的细节,压缩后体积很小,这里是比较推荐的,不过在线压缩也有限制,免费版是只支持最多同时上传20张图片,单张最大的5mb的图片。
· 本地压缩:本地压缩的方式有很多种,这里不一一举例了,这里着重介绍下 FFmpeg 和 pngquant
1. FFmpeg
FFmpeg是一个免费且开源的软件项目,包含一套用于处理视频、音频和其他多媒体文件和流的库和程序。它的核心是命令行工具ffmpeg,专为处理视频和音频文件而设计。它被广泛用于格式转换、基本编辑(修剪和连接)、视频缩放、视频后期制作效果和标准符合性(SMPTE、ITU),同时也可以用它来对图片进行处理,这一款功能非常强大的软件,这里我们主要用来处理压缩 jpg 图片。
可以前往官网,安装完成后,在 windows 环境下,我们可以通过一段简单的 shell 命令脚本来批量处理图片。
例子一:批量压缩当前目录的 jpg 图片
for file in *.jpg; do
ffmpeg -i "$file" -q:v 3 "${file%.*}-compressed.jpg"
done
· for file in *.jpg; do:这一行开始一个循环,遍历当前目录下所有以.jpg结尾的文件。
· ffmpeg -i "$file" -q:v 3 "${file%.*}-compressed.jpg":这一行使用ffmpeg压缩每个JPG文件。-i "$file"指定输入文件,-q:v 3指定输出质量为中等(取值范围为2-31,值越小质量越高),${file%.*}-compressed.jpg指定输出文件名,它在输入文件名的基础上添加了-compressed后缀。
· done:这一行结束循环。
这段代码的作用是将当前目录下的所有JPG图片压缩为中等质量,并在文件名后添加-compressed后缀。
例子二: 将当前目录下的所有PNG图片转换为WebP格式
for file in *.png; do
ffmpeg -i "$file" -quality 50 "${file%.*}.webp"
done
· for file in *.png; do:这一行开始一个循环,遍历当前目录下所有以.png结尾的文件。
· ffmpeg -i "$file" -quality 50 "${file%.*}.webp":这一行使用ffmpeg将每个PNG文件转换为WebP格式。-i "$file"指定输入文件,-quality 50指定输出质量为50,${file%.*}.webp指定输出文件名,它将输入文件名中的.png替换为.webp。
· done:这一行结束循环。
这段代码的作用是将当前目录下的所有PNG图片转换为质量为50的WebP格式。
2. pngquant
pngquant是一个用于有损压缩PNG图片的命令行工具和库。它通过将图片转换为更高效的8位PNG格式(带alpha通道),显著减小文件大小(通常比24/32位PNG文件小60-80%)。压缩后的图片完全符合标准,并且被所有Web浏览器和操作系统支持。
pngquant提供了高质量的调色板生成,使用先进的量化算法支持伽马校正和预乘alpha。它还提供了独特的抖动算法,不会向图像中添加不必要的噪声。您可以配置质量水平,自动找到所需的颜色数量,并跳过无法以所需质量转换的图像。
可以前往官网,安装完成后,在 windows 环境下,我们可以通过一段简单的 shell 命令脚本来批量处理图片。
例子一:批量压缩当前目录的 png 图片
for file in *.png; do
pngquant --ext .png --force "$file"
done
· for file in *.png; do:这一行开始一个循环,遍历当前目录下所有以.png结尾的文件。
· pngquant --ext .png --force "$file":这一行使用pngquant压缩每个PNG文件。--ext .png指定输出文件扩展名为.png,--force指定覆盖原始文件,"$file"指定输入文件。
· done:这一行结束循环。
这段代码的作用是将当前目录下的所有PNG图片压缩,并覆盖原始文件。
综上所述,在网站开发中,我们应该尽量处理压缩图片,降低网站的带宽和存储空间需求,从而减少页面加载所需的时间,提高用户体验。
如没特殊注明,文章均为方维网络原创,转载请注明来自https://www.szfangwei.cn/news/6796.html