能将图片转为WebP格式的WebP Server Go

在这里插入图片描述

本文完成于 2023 年 11 月

之前老苏介绍过 webp2jpg-online,可以将 webp 格式的图片,转为 jpg 等,今天介绍的 WebP Server Go 是将 jpg 等转为 webp 格式

文章传送门:多功能图片转换器webp2jpg-online

什么是 WebP ?

WebP 它是由 Google 开发的一种现代图像格式,旨在提供更高的图像压缩效率和更小的文件大小,同时保持良好的图像质量。

PNG 相比,WebP 无损图像的尺寸小 26%。在同等 SSIM 质量指数下,WebP 有损图像比同类 JPEG 图像小 25-34%。【数据来自官网 https://webp.sh/#/2 】

什么是 WebP Server Go ?

WebP Server Go 是一款开箱即用的 WebP 服务器。 该项目是用 Go 写的 WebP 服务,无需二次开发就能实现将 JPGPNGBMPSVG 等格式的图片,转化成 WebP 格式的服务,能够有效地减小图片体积、节省带宽、提升图片加载速度。

目前支持的图像格式:JPEGPNGBMPGIFSVGHEICNEF

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 webp-server-go ,选择第一个 webpsh/webp-server-go,版本选择 latest

本文写作时, latest 版本对应为 0.10.2

docker 文件夹中,创建一个新文件夹 webp-server,并在其中建三个子文件夹 data

文件夹装载路径说明
docker/webp-server/pics/opt/pics图片目录
docker/webp-server/exhaust/opt/exhaust图片缓存目录
docker/webp-server/metadata/opt/metadata图片元数据缓存目录

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口容器端口
33333333

默认没有对外暴露端口

需要点 + 号自行添加

环境

可变
MALLOC_ARENA_MAX设为 1

更多的环境变量请参考官方的文档:https://docs.webp.sh/usage/configuration/

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 新建文件夹 webp-server 和 子目录
mkdir -p /volume1/docker/webp-server/{exhaust,metadata,pics}# 进入 webp-server 目录
cd /volume1/docker/webp-server# 运行容器
docker run -d \--restart always \--name webp-server \-p 3333:3333 \-v $(pwd)/pics:/opt/pics \-v $(pwd)/exhaust:/opt/exhaust \-v $(pwd)/metadata:/opt/metadata \-e MALLOC_ARENA_MAX='1' \webpsh/webp-server-go

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: '3'services:webp:image: webpsh/webp-server-go# image: ghcr.io/webp-sh/webp_server_gocontainer_name: webp-serverrestart: alwaysports:-  3333:3333volumes:- ./pics:/opt/pics- ./exhaust:/opt/exhaust- ./metadata:/opt/metadataenvironment:- MALLOC_ARENA_MAX=1

然后执行下面的命令

# 新建文件夹 webp-server 和 子目录
mkdir -p /volume1/docker/webp-server/{exhaust,metadata,pics}# 进入 webp-server 目录
cd /volume1/docker/webp-server# 将 docker-compose.yml 放入当前目录# 一键启动
docker-compose up -d

运行

如果在浏览器中直接输入 http://群晖IP:3333 会显示错误 File extension not allowed! /

正确的使用方式是:

  1. 上传文件到 pics 目录

  1. 打开链接时,带上图片名称,例如:http://群晖IP:3333/00.png

  1. 另存图片,默认扩展名已经是 webp,虽然 URL 没变,但实际上已经是 image/webp格式

  2. 文件大小比对,差异还是很明显的

这个文件在缓存目录中是能找到的

高级玩法

启用环境变量 ENABLE_EXTRA_PARAMS,将其设置为 true

现在就可以在 URL 中通过添加 widthheight 来控制图片的大小了,例如 http://群晖IP:3333/00.png?width=300&height=300

参考文档

webp-sh/webp_server_go: Go version of WebP Server. A tool that will serve your JPG/PNG/BMP/SVGs as WebP/AVIF format with compression, on-the-fly.
地址:https://github.com/webp-sh/webp_server_go

Introduction | WebP Server Documentation
地址:https://docs.webp.sh/

WebP Server
地址:https://webp.sh

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

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

相关文章

Vue 路由

单应用程序 SPA - Single Page Application 所有功能在一个html页面上实现 单页面应用 多用于 系统类网站/内部网站/文档类网站/移动端站点 多页面应用 多用于 公司官网/电商类网站 路由 单页面应用按需更新页面,需要明确访问路径和组件的对应关系 Vue中的路…

重学java 30.API 1.String字符串

于是,虚度的光阴换来了模糊 —— 24.5.8 一、String基础知识以及创建 1.String介绍 1.概述 String类代表字符串 2.特点 a.Java程序中的所有字符串字面值(如“abc”)都作为此类的实例(对象)实现 凡是带双引号的,都是String的对象 String s "abc&q…

python面试之mysql引擎选择问题

MySQL数据库提供了多种存储引擎,每种存储引擎有其特定的优势和场景适用。以下是几种常见的MySQL存储引擎及其特点: InnoDB: 支持事务,有回滚和提交事务的功能。 支持行级锁定,提供更高的并发。 支持外键约束&#…

修改ElTable组件的样式(element-plus)

效果展示 <div class"table_main"><ElTable:data"tableList":header-cell-style"{color: #ffffff,background: #6f7f93,}"class"table_border":highlight-current-row"false"><ElTableColumn type"inde…

Java笔记(其五)--流程控制

switch switch(a) { case ***: break; ***** default: break; } 需要注意的点&#xff1a; 其中的 a 的类型&#xff0c;只支持byte、short、int、char&#xff0c;不支持double、float、long&#xff08;string也是支持的&#xff0c;这里说的是基础的数据类型&#x…

CentOS 自建gitlab仓库:安装相关工具

所需环境 Node 安装项目依赖、项目打包运行Nginx 前端项目部署&#xff08;正向代理、反向代理、负载均衡等&#xff09;Git 自动化部署时 拉取代码使用GitLab 代码仓库GitLab-Runner GitLab的CI/CD执行器 一、安装Node 检测是否已安装 常用node -v 命令检测。 如果已安装&a…

百面算法工程师目录 | 深度学习目标检测、语义分割、分类上百种面试问答技巧

本文给大家带来的百面算法工程师是深度学习面试目录大纲&#xff0c;文章内总结了常见的提问问题&#xff0c;旨在为广大学子模拟出更贴合实际的面试问答场景。在这篇文章中&#xff0c;可以点击题目直达问题答案处&#xff0c;方便查找问题寻找答案。节约大家的时间。通过对这…

Docker 快速安装指南 (CentOS 7)

Docker 快速安装指南 (CentOS 7) 1. 更新现有的软件包 sudo yum update -y2. 安装必要的依赖包 sudo yum install -y yum-utils device-mapper-persistent-data lvm2yum-utils: 提供 yum-config-manager 工具&#xff0c;方便添加软件仓库。device-mapper-persistent-data 和…

7-115 差分矩阵

知识点:差分 输入一个 n 行 m 列的整数矩阵,再输入 q 个操作,每个操作包含五个整数 x1,y1,x2,y2,c,其中 (x1,y1) 和 (x2,y2) 表示一个子矩阵的左上角坐标和右下角坐标。 每个操作都要将选中的子矩阵中的每个元素的值加上 c。 请你将进行完所有操作后的矩阵输出。 1≤n,…

ACGO欢乐赛#19题解

ACGO欢乐赛#19题解 T1、人工AI T2、判闰年 T3、一天中的某个时刻 T4、二进制下1的个数 T5、修正字符 T6、恰排骨 T7、买零食 T8、真-签到题

为什么你的企业需要微信小程序?制作微信小程序有什么好处?

什么是小程序&#xff1f; WeChat小程序作为更大的WeChat生态系统中的子应用程序。它们就像更小、更基本的应用程序&#xff0c;在更大的应用程序&#xff08;WeChat&#xff09;中运行。这些程序为用户提供了额外的高级功能&#xff0c;以便在使用WeChat服务时加以利用。根据…

sqlserver数据库查询注释/表结构的语句

sqlserver数据库和mysql查看的方式不一样&#xff0c;sqlserver需要通过语句来查&#xff0c;我们只需要替换掉语句里的表名就可以。 1查看表名&#xff0c;字段名&#xff0c;字段注释 SELECT A.name AS table_name, B.name AS column_name, C.value AS column_description F…

Docker 快速搭建 Kafka 集群

Docker 快速搭建 Kafka 集群 你是否想要一个 Kafka 集群&#xff0c;但又不想经历繁琐的手动配置过程&#xff1f;别担心&#xff0c;有了 Docker 和 Docker Compose&#xff0c;我们可以轻松快捷地搭建一个 Kafka 集群&#xff0c;让你能专注于享受实时数据流处理的乐趣。 环…

Mongodb操作与Java(三)增删改语句及DDL新增或删除字段

MongoDB概念 MongoDB 基本概念指的是学习 MongoDB 最先应该了解的词汇&#xff0c;比如 MongoDB 中的"数据库"、"集合"、"文档"这三个名词&#xff1a; 文档&#xff08;Document&#xff09;&#xff1a; 文档是 MongoDB 中最基本的数据单元&…

DeepSeek发布全新开源大模型,GPT-4级别能力 价格仅百分之一

最新国产开源MoE大模型&#xff0c;刚刚亮相就火了。 DeepSeek-V2性能达GPT-4级别&#xff0c;但开源、可免费商用、API价格仅为GPT-4-Turbo的百分之一。 因此一经发布&#xff0c;立马引发不小讨论。 从公布的性能指标来看&#xff0c;DeepSeek-V2的中文综合能力超越一众开源…

运维实施工程师之Linux服务器全套教程

一、Linux目录结构 1.1 基本介绍 Linux 的文件系统是采用级层式的树状目录结构&#xff0c;在此结构中的最上层是根目录“/”&#xff0c;然后在此目录下再创建其他的目录。 在 Linux 世界里&#xff0c;一切皆文件&#xff08;即使是一个硬件设备&#xff0c;也是使用文本来标…

校园论坛系统基于PHP的校园管理系统毕设校园好感度系统 校园文化建设系统APP小程序H5前后端源码交付支持二开,一次付款,终生使用

APP小程序H5前后端源码交付&#xff0c;支持二开&#xff0c;一次付款&#xff0c;终身使用&#xff0c;免费更新系统本身源码。 校园社交网络系统开发是一个复杂且综合性的项目&#xff0c;旨在为学生、教师和管理人员提供一个互动、分享和交流的平台。以下是一个关于校园社交…

Hive Bucketed Tables 分桶表

Hive Bucketed Tables 分桶表 1.分桶表概念 2.分桶规则 3.语法 4.分桶表的创建 5.分桶表的好处

工厂自动化升级改造(2)-RS485与Modbus通信协议

在工业控制、电力通信、智能仪表等领域,数据交换通常依赖于串口通信。最初,RS232接口是主流选择,然而,由于工业现场的复杂性,各种电气设备产生的电磁干扰可能导致信号传输错误。 RS232和RS485是两种不同的串行通信协议,它们在电气特性、传输距离和拓扑结构等方面有所不同…

linux 下使用Log4plus库

背景 CentOS 7.9 X86-64环境 下载地址 2、 安装与配置 安装 #tar –zxvf log4cplus-1.0.4.2.tar.gz #cd log4cplus-1.0.4.2 #configure --prefix/usr/local/ #make #make install //目的将文件放到/usr/local/lib/和/usr/local/include/log4cplus 这里已经安装成功&#xff0c;…