如何为服务器启用 AVIF 支持

2023-12-04

AVIF 图像格式看起来是一种非常有前途的格式。如何在网络服务器上编译和使用它?我的具体是 Ubuntu 18.04/Nginx,但我正在寻找如何编译和开始转换图像的要点?


AVIF似乎是一种新格式,并没有找到太多信息。但是,让我们立即看看调查结果:

从 [1] 我找到了一本烹饪书,如何在 Nginx 上提供这些服务:

http {
    # ... Omitted.
    map $http_accept $ai {
        "~avif" "a";
        "~webp" "w";
        default "";
    }
    types {
        image/avif avif;
    }
    server {
        # ... Omitted.
        # Rewrite .i files.
        location ~ \.i$ {
            # Change .i request to .avif file.
            if ($ai = "a") {
                rewrite ^(.*)$ $1.avif last;
            }
            # Change .i to .webp file.
            if ($ai = "w") {
                rewrite ^(.*)$ $1.webp last;
            }
            # If no AVIF support, use PNG image.
            if ($ai = "") {
                rewrite ^(.*)$ $1.png last;
            }
        }
    }
}

该解决方案依赖于 Accept 标头和 map 语句。这里的图像假定以 .i 结尾,但如果修改的话,这也适用于 .png 和其他格式。

对服务器的请求应具有“image/avif”类型。

有一个名为 Squoosh 的服务,您可以在其中转换图像。 [2] 中还提到了一些依赖于 Sharp 的编程方法。

关于转换的代码:

import * as sharp from 'sharp';

sharp('input.png')
 .toFormat('heif', { quality: 30, compression: 'av1' })
 .toFile('output.avif')
 .then(info => console.log(info));

Sources:

[1] https://www.dotnetperls.com/nginx-examples

[2] https://dev.to/adamlacombe/how-to-convert-images-to-avif-in-nodejs-5083

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何为服务器启用 AVIF 支持 的相关文章

  • MATLAB:生成给定三种颜色的颜色图

    我正在尝试在 MATLAB 中生成给定三种颜色 最高值 零值和最低值 的颜色图 我的思维过程是从最高端到中间循环 并将每个步骤存储到一个 3xN 第一列是 R 第二列是 G 第三列是 B 矩阵 所以我正在使用 fade from high
  • 如何检测图像中对象的实例?

    我有一张包含几个特定对象的图像 我想检测这些物体在该图像中的位置 为此 我有一些模型图像 其中包含我想要检测的对象 这些图像在我想要检测的对象实例周围得到了很好的裁剪 这是一个例子 在这张大图里 我想检测此模型图像中表示的对象 自从你最初发
  • 如何删除“绿屏”肖像背景

    我正在寻找一种方法来自动从大量图片中删除 透明 绿屏 肖像背景 到目前为止 我自己的尝试 呃 不太成功 我正在四处寻找any有关该主题的提示 解决方案或论文 商业解决方案也很好 在您评论并说不可能自动执行此操作之前 不 事实并非如此 实际上
  • 不使用 OpenCV 获取图像掩模

    我正在尝试以下方法从该图像中获取蒙版 但不幸的是我失败了 import numpy as np import skimage color import skimage filters import skimage io get filena
  • QT“找不到 Qt 平台插件“xcb””

    我出于学术原因安装了QT everywhere 5 15开源版 但无法运行程序 首先 我编译了必要的源文件make并安装了QT Creator 然后我选择qmake来运行其中的程序 当我尝试运行示例程序时 遇到以下错误 qt qpa plu
  • 在 C、C++ 中实现腐蚀、膨胀

    我对二值图像的膨胀是如何完成的有理论上的了解 AFAIK 如果我的 SE 结构元素 是这样的 0 1 1 1 在哪里 代表中心 我的图像 二进制是这样的 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0
  • opencv createsamples没有错误,但是没有找到样本

    我在用着this http coding robin de 2013 07 22 train your own opencv haar classifier html教程 我正在根据我的正面图像创建大量样本 我正在使用 Windows 这是
  • 如何读取 10 位原始图像?其中包含 RGB-IR 数据

    我想知道如何从我的 10 位原始 它有 rgb ir 图像数据 数据中提取 RGB 图像 如何使用 Python 或 MATLAB 进行阅读 拍摄时的相机分辨率为 1280x720 室内照片图片下载 https drive google c
  • CUDA、NPP 滤波器

    CUDA NPP 库支持使用 nppiFilter 8u C1R 命令过滤图像 但不断出现错误 我可以毫无问题地启动并运行 boxFilterNPP 示例代码 eStatusNPP nppiFilterBox 8u C1R oDeviceS
  • 对图像使用 Pixellib 自定义训练时出现 input_image 元形状错误

    我正在使用 Pixellib 来训练自定义图像实例分割 我创建了一个数据集 可以在下面的链接中看到 数据集 https drive google com drive folders 1MjpDNZtzGRNxEtCDcTmrjUuB1ics
  • 曲线/路径骨架二值图像处理

    我正在尝试开发一个可以处理图像骨架的路径 曲线的代码 我想要一个来自两点之间骨架的点向量 该代码在添加一些点后结束 我没有找到解决方案 include opencv2 highgui highgui hpp include opencv2
  • opencv形态扩张滤波器作为最大滤波器

    就像中值滤波器的定义一样 我可以将 最大滤波器 定义为局部窗口 例如dst x y max 3x3 局部窗口像素 但我在opencv中找不到这样的过滤器 最接近的是 dilate 函数 然后我使用 dilate 函数的默认配置 但结果不正确
  • 如何在 OpenCV 中从 YUV 文件读取帧?

    如何在 OpenCV 中从 YUV 文件读取帧 我编写了一个非常简单的 python 代码来从二进制文件读取 YUV NV21 流 import cv2 import numpy as np class VideoCaptureYUV de
  • 归一化互相关的基础知识

    我正在尝试使用范数校正2 归一化互相关 http en wikipedia org wiki Cross correlation Normalized cross correlation 来自 MATLAB 用于计算发育中胚胎中移动形状的速
  • 如何使用 EMGU 计算 DFT 及其逆函数?

    如何计算图像的 DFT 使用 EMGU 显示它 然后计算反向值以返回原始图像 我将在这里回答我自己的问题 因为我花了一段时间才弄清楚 To test that it works here s an image and here s the
  • 如何使用 C# 以低分辨率形式提供高分辨率图像

    尝试使用 300dpi tif 图像在网络上显示 目前 当用户上传图像时 我正在动态创建缩略图 如果创建的页面引用宽度为 500x500px 的高分辨率图像 我可以使用相同的功能即时转换为 gif jpg 吗 将创建的 jpg 的即将分辨率
  • 最快的高斯模糊实现

    如何以最快的速度实施高斯模糊 http en wikipedia org wiki Gaussian blur算法 我要用Java来实现它 所以GPU http en wikipedia org wiki Graphics processi
  • 如何绘制更大的边界框和仅裁剪边界框文本 Python Opencv

    我正在使用 easyocr 来检测图像中的文本 该方法给出输出边界框 输入图像如下所示 Image 1 Image 2 使用下面的代码获得输出图像 But I want to draw a Single Bigger bounding bo
  • 计算机视觉/道路跟踪入门

    我想开发一个可以跟踪和沿着道路行驶的系统 最初 我只想处理定义明确的道路 稍后可能会合并对定义不明确的道路的跟踪 我面临的问题是我不知道从哪里开始 我是图像处理领域的新手 我希望能得到一些关于从哪里开始以及应该阅读哪些关于该主题的书籍的指导
  • jpegtran 优化而不更改文件名

    我需要优化一些图像 但不更改它们的名称 jpegtran copy none optimize image jpg gt image jpg 但是 这似乎创建了 0 的文件大小 当我对不同的文件名执行此操作时 大小仍然完全相同 怎么样 jp

随机推荐

  • 如何在 Java GUI 中用鼠标光标拖动图像?

    我的代码调用目录中的 n 个图像来放置在 JPanel 上 public void imageAdder int n String name BufferedImage myPic null for int i 0 i lt n i try
  • mysql 搜索多列

    下面显示了名为 posts 的表中三列 上午 下午和晚上 的数据如何存储 假设用户想要搜索以下匹配的记录 早上 周一 周二 下午 周一 Mysql 查询必须在所有三列中搜索这些匹配的数据 我设法对单列执行此操作 例如 下午 但是如何更改我的
  • JavaScript数组长度为0

    我遇到了一些奇怪的行为 如下所示 它显示数组长度为 0 尽管在它之前打印它表明长度显然大于 0 var getTopSelection function callback var topSelection for var i 0 i lt
  • 如何设置 os x 中的应用程序使用的 $PATH

    我正在使用 ant 构建我的项目 并使用 svnversion 可执行文件将版本 ID 插入到我的源代码中 以便于跟踪版本 从命令行运行这个 ant 文件是有效的 我已经在 profile 中设置了 PATH 以包含 svnversion
  • 为 iPhone SDK 编译 Freetype (XCode)

    我想知道是否有人知道如何在 iPhone SDK 的 XCode 中配置 FreeType 我一直在尝试但没有成功 理想情况下 您需要使用最新的工具进行构建 从 iOS 6 0 SDK 版本开始 最低 SDK 版本为 4 3 并针对 arm
  • 将带有图像的 JLabel 添加到 JList 以显示所有图像

    这是我的代码 它不在框架中显示图像 而是显示一些文本 有人会建议我应该在代码中进行哪些更改 以便它允许我在框架中显示图像吗 import java awt Component import java awt Image import jav
  • 如何规范 Git 中的工作树行结尾?

    我克隆了一个行结尾不一致的存储库 我添加了一个 gitattributes它为我想要规范化的文件设置文本属性 现在 当我提交更改时 我收到消息 warning CRLF will be replaced by LF in FILE The
  • C# - 为什么这个变量在通过方法后没有被更改[重复]

    这个问题在这里已经有答案了 所以我显然对编程相当陌生 但我试图找出为什么这不起作用 我正在尝试获取字符串 myname 并将 Mr 添加到其开头 我知道我可以简单地做到这一点myname Mr myname但是我试图了解如何使用方法来更改变
  • n 组位的高效随机排列

    对于产生精确的位模式的问题n设置位 我知道两种实用的方法 但它们都有我不满意的局限性 首先 您可以枚举在预先计算的表中设置了那么多位的所有可能的字值 然后在该表中生成一个随机索引以挑选出可能的结果 这样做的问题是 随着输出大小的增长 候选输
  • 使用电子邮件地址将文件上传到云端

    所以我不确定这是否可能以及是否有意义 我正在尝试在我的应用程序中学习和使用云空间 因此 作为示例 我尝试创建一个应用程序来在 Google Drive 中上传文件 我注册了我的应用程序并使用了谷歌提供的一些参考资料 我现在可以上传文件了 我
  • 我可以有一个没有聚集索引的主键吗?另外我可以有多值聚集索引吗?

    各位 我想了解以下问题的答案 我可以有一个没有聚集索引的主键吗 我知道当我们在列上创建主键约束时 它默认创建一个聚集索引 那么在这种情况下 我应该如何停用聚集索引 我可以有一个包含多个列的聚集索引吗 就像在非聚集中一样 我可以为单个非聚集索
  • Django:如何为允许多个文件上传的字段编写干净的方法?

    我有一个用于上传图像的表单 如果我遵循 Django 的标准清理表单的特定字段属性 这就是我的 clean 方法通常的样子 class UploadImagesForm forms Form image forms FileField de
  • 填充二维 numpy 数组给定索引之间的值

    给定一个 numpy 数组 a np zeros 10 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
  • Windows 上需要 Mono 3.0 的配置文件

    是否有一个教程告诉我如何编写 mono 3 0 的配置文件 以便我可以使用它 微软视觉工作室 2010 其背后的原因是我的应用程序使用绑定列表 当我尝试在 Mono 中运行时 我收到此错误 WindowsFormsApplication2
  • 我正在学习java中的异常处理(基本上是继承)

    看看下面的程序 import java io import java rmi class class1 public void m1 throws RemoteException System out println m1 in class
  • for循环内的回调完成后如何执行函数?

    我在搜索函数中有一个 for 循环 其中有一个在循环内执行回调的函数 我想在循环之后以及所有回调完成之后执行 BUILD 函数 我不知道如何做到这一点 因为循环在所有回调完成之前完成 回调是获取数据的 API 请求 我想使用该数据进行 BU
  • 使用 Angular formArray 动态添加表单字段

    我有一些表单字段 想要动态添加更多来自另一个视图的字段 用户可以在其中输入表单字段类型 长度和名称 我需要使用这些值构造表单字段 我如何设法构建一个字段 textbox name is one 但是如果我尝试添加另一个字段 textbox
  • pandas中如何判断某列是否包含某些元素

    我想检查一下该列是否app包含元素myList import pandas as pd df pd DataFrame app a b c e f myList b f print df Output app 0 a b c 1 e f E
  • Android - 地图标记绕 X 轴和 Y 轴的动画旋转

    我想知道是否可以为 Google 地图标记沿 x 轴和 y 轴旋转设置动画 就像我们如何使用 ObjectAnimator 围绕 x 轴和 或 y 轴旋转 ImageView 一样 显然 人们可以顺时针旋转 改变 标记的方向 即沿着 z 轴
  • 如何为服务器启用 AVIF 支持

    AVIF 图像格式看起来是一种非常有前途的格式 如何在网络服务器上编译和使用它 我的具体是 Ubuntu 18 04 Nginx 但我正在寻找如何编译和开始转换图像的要点 AVIF似乎是一种新格式 并没有找到太多信息 但是 让我们立即看看调