图片格式 WebP、JPEG、PNG、SVG 及转换

news2024/11/25 10:57:14

文章目录

  • 图片格式 WebP、JPEG、PNG、SVG 及转换
    • 1. 图片格式
      • 1.1 WebP
      • 1.2 JPEG
      • 1.3 PNG
      • 1.4 SVG
      • 1.5 ...
    • 2. 格式转换
      • 2.1 Python 批量转 WebP
      • 2.2 在线转换工具
        • 2.2.1 Shutterstock
        • 2.2.2 PicWish
        • 2.2.3 MyEdit
        • 2.2.4 Freeconvert
        • 2.2.5 iLoveIMG
    • Reference

图片格式 WebP、JPEG、PNG、SVG 及转换

在当今数字时代,图像在网页设计和应用中扮演着至关重要的角色;选择适当的图像格式直接影响着网站的加载速度、用户体验和整体性能。

WebPJPGPNGSVG 等作为常见的图像格式,各具特色,对于不同的需求提供了多样化的解决方案。

1. 图片格式

1.1 WebP

维基百科:https://zh.wikipedia.org/wiki/WebP

WebP(发音:weppy)是一种同时提供了有损压缩与无损压缩(可逆压缩)的图片文件格式。

由 Google 于 2010 年 9 月发布,旨在减少文件大小的同时,达到和 JPEG、PNG、GIF 格式相同的图片质量,并希望借此能够减少图片档在网络上的发送时间。

WebP 支持的像素最大数量是 16383 × 16383 16383 \times 16383 16383×16383。有损压缩的 WebP 仅支持 8-bit 的 YUV 4:2:0 格式;而无损压缩(可逆压缩)的 WebP 支持 VP8L 编码与 8-bit 之 RGBA 色彩空间;而无论是有损或无损压缩皆支持 Alpha 透明通道、ICC 色彩配置、XMP 诠释资料。

1.2 JPEG

维基百科:https://zh.wikipedia.org/wiki/JPEG

JPEG 或称 JPG,是一种针对照片影像而广泛使用的有损压缩标准方法,由联合图像专家小组(Joint Photographic Experts Group)开发。

使用 JPEG 格式压缩的图片文件一般也称为 JPEG Files,最普遍使用的扩展名格式为 .jpg,其他常用的还包括 .JPEG.jpe.jfif 以及 .jif。该格式的资料也能受嵌进其他类型的文件格式中,像是TIFF 类型的文件格式。

JPEG 是万维网上最普遍的用来存储和传输照片的格式,它并适合于线条绘图(drawing)和其他文字或图标(iconic)的图形,因为它的压缩方法用在这些类型的图形上,得到的结果并不好。

1.3 PNG

维基百科:https://zh.wikipedia.org/wiki/PNG

PNGPortable Network Graphics:便携式网络图形)是一种支持无损压缩的位图图形格式,支持索引、灰度、RGB 三种颜色方案以及 Alpha 通道等特性。PNG 的开发目标是改善并取代 GIF 作为适合网络传输的格式而不需专利许可,所以受广泛应用于互联网及其他方面上。

其另一个非正式的名称来源为递归缩写:“PNG is Not GIF”。

PNG 图片大多数都使用 PNG 作为扩展名,其 互联网媒体类型为 image/png。PNG于 1997 年 3 月作为知识性 RFC 2083 发布,于 2004 年作为 ISO/IEC 标准发布。

1.4 SVG

维基百科:https://zh.wikipedia.org/wiki/svg

SVGScalable Vector Graphics:可缩放矢量图形)是一种基于可扩展标记语言(XML),用于描述二维矢量图形的图形格式。

SVG由 W3C 制定,是一个开放标准。由于 SVG 是基于矢量的,所以在放大图片时是不会出现任何降低或丢失保真度的情况;这使得它非常适合多语境场景,例如响应式 Web 设计。

1.5 …

WebP、JPEG、PNG 总比较:

WebPJPEGPNG
图片大小最小较小较大
载入速度最快较慢
支持透明背景
支持动画
浏览器、软体支持较老的浏览器、软体不支持几乎都支持几乎都支持

上述几种图片格式作者会经常接触,还有其他几种(GIF、BMP、TIFF 等)不会过多涉及,仅提供超链接(均来源于维基百科):

GIF: https://zh.wikipedia.org/wiki/GIF

BMP:https://zh.wikipedia.org/wiki/BMP

TIFF:https://zh.wikipedia.org/wiki/TIFF

2. 格式转换

综上,WebP 格式的图片压缩效率更为出色,目前互联网的流量中有约 65% 为图片,这意味如果将 .jpeg.png 等转换为 .webp 格式的话,浏览网页的速度将大幅提升。

以下,给大家带来几种转换为 WebP 格式的方法或工具。

2.1 Python 批量转 WebP

要批量将不同格式的图片(.png.jpg.jpeg.tiff 等)转换为 .webp 格式,可以使用 Python 的 Pillow 库(PIL)来处理图像。

首先,需要确保已经安装 Pillow。如果还没有安装,可以使用以下命令安装:

pip install Pillow

然后,可以使用以下 Python 代码批量转换图片格式:

import os
from PIL import Image


def convert_to_webp(input_path, output_path):
    try:
        image = Image.open(input_path)
        image.save(output_path, 'WEBP')
        print(f"Converted {input_path} to {output_path}")
    except Exception as e:
        print(f"Error converting {input_path}: {str(e)}")


def batch_convert_to_webp(input_folder, output_folder):
    if not os.path.exists(output_folder):
        os.makedirs(output_folder)

    supported_formats = ['.png', '.jpg', '.jpeg', '.tiff', '.bmp', '.gif']

    for file_name in os.listdir(input_folder):
        if file_name.lower().endswith(tuple(supported_formats)):
            input_path = os.path.join(input_folder, file_name)
            output_path = os.path.join(output_folder, os.path.splitext(file_name)[0] + '.webp')
            convert_to_webp(input_path, output_path)


if __name__ == '__main__':
    input_folder_path = './img-ori'
    output_folder_path = './img-webp'

    batch_convert_to_webp(input_folder_path, output_folder_path)

convert_to_webp: 该函数接受输入图片文件的路径和输出 WebP 图片文件的路径作为参数,使用 Pillow 库打开输入图片,并将其保存为 WebP 格式。如果转换成功,打印转换信息;如果失败,打印错误信息。

batch_convert_to_webp: 该函数用于批量转换指定文件夹中的图片文件。首先,它检查输出文件夹是否存在,如果不存在则创建。然后,它遍历输入文件夹中的所有文件,仅处理支持的图片格式。对于每个符合条件的文件,构建输出路径,并调用convert_to_webp函数进行转换。

最后,__name__ == '__main__' 部分用于在直接运行脚本时执行转换操作,你可以在这里指定输入和输出文件夹的路径。

示例输出:

Converted ./img-ori\1d7ow6.jpg to ./img-webp\1d7ow6.webp
Converted ./img-ori\2y2pwo.jpeg to ./img-webp\2y2pwo.webp
Converted ./img-ori\3p952p.bmp to ./img-webp\3p952p.webp
Converted ./img-ori\5por2l.tiff to ./img-webp\5por2l.webp
Converted ./img-ori\7rvgfs.png to ./img-webp\7rvgfs.webp
Converted ./img-ori\9exijz.png to ./img-webp\9exijz.webp
Converted ./img-ori\9oibji.png to ./img-webp\9oibji.webp
Converted ./img-ori\zwedxc.gif to ./img-webp\zwedxc.webp
Converted ./img-ori\zxcdfv.gif to ./img-webp\zxcdfv.webp

2.2 在线转换工具

2.2.1 Shutterstock

在线网址:https://www.shutterstock.com/zh/file-converter

2.2.2 PicWish

在线网址:https://picwish.com/convert-to-jpg

2.2.3 MyEdit

在线网址:https://myedit.online/cn/photo-editor/png-converter

2.2.4 Freeconvert

在线网址:https://www.freeconvert.com

2.2.5 iLoveIMG

在线网址:https://www.iloveimg.com/convert-to-jpg

Reference

源文档平台
WebP、JPG、PNG 是什么?教你如何挑选最优的图档格式哔哩哔哩
图片批量转换Webp工具,图片收集爱好者的利器!知乎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1343184.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WPF+Halcon 培训项目实战(8):WPF+Halcon初次开发

前言 为了更好地去学习WPFHalcon,我决定去报个班学一下。原因无非是想换个工作。相关的教学视频来源于下方的Up主的提供的教程。这里只做笔记分享,想要源码或者教学视频可以和他联系一下。 相关链接 微软系列技术教程 WPF 年度公益课程 Halcon开发 CSD…

MySQL数据库性能优化中常用的方法是什么?

MySQL是目前广泛使用的关系型数据库系统,随着数据量的不断增加和业务需求的提升,MySQL数据库性能优化已经成为开发人员和DBA必须面对的一个重要问题。 查询语句是MySQL数据库中最常用的操作之一,也是造成性能问题的主要原因之一。以下是一些常…

SpringMVC之视图和RESTful

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需…

CSI多普勒效应

CSI多普勒效应 一、定义二、应用三、计算方法1方法2STFT和DFT间的区别 一、定义 多普勒频移是指由于运动引起的信号频率的变化。当信号源相对于接收器运动时,由于多普勒效应,信号的频率会发生改变。多普勒频移可以通过以下公式表示: 二、应…

4.16 构建onnx结构模型-And

前言 构建onnx方式通常有两种: 1、通过代码转换成onnx结构,比如pytorch —> onnx 2、通过onnx 自定义结点,图,生成onnx结构 本文主要是简单学习和使用两种不同onnx结构, 下面以 And 结点进行分析 方式 方法一&…

轻松记录、修改收支,让财务一目了然!

收支明细管理是每位个人或企业都必须面对的财务任务,但如何准确记录并修改收支明细却常常让人感到困扰。为了帮助大家更好地管理财务,让你轻松掌握记录、修改收支的技巧,让财务状况一目了然!方法如下: 第一步&#xf…

线上隐私保护的未来:分布式身份DID的潜力

在日益数字化的世界中,人们的生活越来越多地依赖于互联网,数字身份也因而变得越来越重要。根据法律规定,互联网应用需要确认用户的真实身份才能提供各种服务,而用户则希望在进行身份认证的同时能够尽量保护他们的个人隐私&#xf…

云手机快速发展的原因

云手机之所以迅速崛起,根本原因在于5G技术的广泛应用以及音视频技术的不断发展,这些因素共同推动了云手机的使用体验取得显著提升,引发了越来越多公司对云手机的深入研究。那么,为何云手机成为当前和未来的热门趋势呢?…

Linux管理LVM逻辑卷

目录 一、LVM逻辑卷介绍 1. 概述 2. LVM基本术语 2.1 PV(Physical Volume,物理卷) 2.2 VG (Volume Group,卷组) 2.3 LV (Logical Volume,逻辑卷) 3. 常用的磁盘命令 4. 查看系统信息的命…

创建您的第一个记忆卡片游戏

大家好!今天,我们将一起探索如何用HTML、CSS和JavaScript创建一个有趣的记忆卡片游戏。我们的游戏规则很简单:用户需要找到一对一样的卡片。如果你是编程新手,不用担心,我会逐步引导你完成这个项目。 正文&#xff1a…

EyouCMSv1.5.1漏洞复现

赞赞网络科技 EyouCMS(易优CMS)是中国赞赞网络科技公司的一套基于ThinkPHP的开源内容管理系统(CMS)。 Eyoucms v1.5.1 及以前版本存在任意用户后台登陆与文件包含漏洞,该漏洞使攻击者可以通过调用api,在前台…

LIUNX进程程序替换

1.什么是程序替换 a.一个程序,只能执行自己的代码 b.如果想要一个程序执行,别的程序的代码呢? 我们就可以创建一个子进程,将这个子进程替换为我们想要执行的程序。 2.样例代码-----execl(接口) 返回值&…

如何信任机器学习模型的预测结果?

在本篇中,我将通过一个例子演示在 MATLAB 如何使用 LIME 进行复杂机器学习模型预测结果的解释。 我使用数据集 carbig(MATLAB 自带的数据集)训练一个回归模型,用于预测汽车的燃油效率。数据集 carbig 是 70 年代到 80 年代生产的…

Python 简易图形界面库easygui 对话框大全(续)

目录 EasyGUI库 主要特点 使用场景 对话框样式 10. 文件打开框 fileopenbox 11. 文件保存框 filesavebox 12. 目录打开框 diropenbox 13. 索引对话框 indexbox 14. 例外报告框 exceptionbox 15. 代码文本框 codebox 16. 密码输入框 passwordbox 17. 多重文本框 mul…

Spring的Bean你了解吗

Bean的配置 Spring容器支持XML(常用)和Properties两种格式的配置文件 Spring中XML配置文件的根元素是,中包含了多个子元素,每个子元素定义了一个Bean,并描述了该Bean如何装配到Spring容器中 元素包含了多个属性以及子元素,常用属性及子元素如下所示 i…

变分贝叶斯近似

马尔可夫链蒙特卡洛方法(MCMC)是一个非常有用和重要的工具,但在用于估计大型数据集的复杂后验分布或模型时可能会遇到困难。变分近似(variational approximations)或变分推断(variational inference&#x…

搅拌站erp系统|从单站到集团公司,不同规模搅拌站如何选择ERP?

搅拌站在采购ERP时经常感到困惑:市场上ERP这么多,功能看上去也大同小异,到底应该怎么选择? 其实,不同规模的搅拌站,所处的发展阶段不同,工作流程不同,在选择ERP过程中需要考量的维度…

VIOOVI干货分享:生产标准工时的计算与观测次数确认

在制造业中,生产标准工时是一个关键指标,它可以帮助企业确定生产效率、评估员工绩效以及优化生产流程。本文将介绍生产标准工时的计算方法,并探讨如何确认观测次数,以充分利用ECRS工时分析软件。 一、生产标准工时的计算 生产标准…

Vue - 实现文件导出文件保存下载

1 文件导出:使用XLSX插件 需求背景:纯前端导出,如 在前端页面勾选部分表格数据,点击"导出"按钮导出Excel文件。 实现思路: 1.通过XLSX插件的 XLSX.utils.book_new()方法,创建excel工作蒲对象wb…

计量经济学|学习笔记以及学习感悟

初级计量经济学着重于介绍基本的统计工具和经济模型,以帮助理解经济数据和经济现象之间的关系。它包括回归分析、假设检验和预测方法等内容。中级计量经济学则深入研究这些方法的理论基础和实际应用,包括更复杂的模型和技术,如面板数据分析、…