问题标签 [webp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
665 浏览

dll - 此 WebP C++ 函数的正确 C# PInvoke 签名

我正在尝试为Google 的 WebP 编码器编写 C# 包装器。

我试图调用的方法是:

借用mc-kay 的解码器包装器,我想出了以下内容:

不幸的是,每当我尝试运行它时,我都会收到以下错误:

调用 PInvoke 函数 'WebPSharpLib!LibwebpSharp.Native.WebPEncoder::WebPEncodeRGB' 使堆栈失衡。这可能是因为托管 PInvoke 签名与非托管目标签名不匹配。检查 PInvoke 签名的调用约定和参数是否与目标非托管签名匹配。

我在签名上尝试了许多变体,但无济于事。

有人有线索吗?

干杯,迈克

0 投票
3 回答
1721 浏览

c++ - WebP 编码 - 分段错误

所以我正在尝试使用 webp API 来编码图像。现在我将使用 openCV 打开和操作图像,然后我想将它们保存为 webp。这是我正在使用的来源:

当我执行这个时,我得到这个:

它可以很好地显示图像,但编码会出现段错误。我最初的猜测是,这是因为我在尝试写出数据之前释放了 img,但在尝试编码之前或之后释放它似乎并不重要。我还缺少其他可能导致此问题的东西吗?我是否必须复制图像数据或其他内容?

WebP api 文档是……稀疏的。以下是 README 关于 WebPEncodeRGB 的内容:

文档具体没有说明“步幅”是什么,但我假设它与 opencv 中的“步幅”相同。这合理吗?

提前致谢!

0 投票
1 回答
1004 浏览

optimization - 转换透明PNG图像文件时Webp质量非常低

我想使用 Webp 并让我的图像变得更小,最后将它们提供给 chrome 浏览器。我已经下载了许多类型的转换工具,包括官方的。我试图用 Alpha 透明度转换 PNG 并得到糟糕的结果。见下图。。

在此处输入图像描述

根据我在许多网站上看到的情况,它可以很好地处理透明度。我想知道你是否知道我为什么会得到这些结果,我需要做什么,或者我需要什么工具来生成高质量的 webp 透明图像来代替我的 png 图像。

其次,我想知道可比性。我应该只为 chrome 使用这些图像吗?- 当然最重要的问题是图像质量输出。

谢谢

0 投票
1 回答
2606 浏览

javascript - 如何使用 toDataURL 创建无损 WebP 图像?

我正在使用 canvas 元素在 Chrome 中尝试 WebP 图像格式。在 MDN 上,我看到它toDataURL接受代表结果图像质量的第二个参数。

我想生成一个画布元素的无损 WebP 图像。但是,如果我通过1质量(意思是 100%),我不会得到完全相同的像素。看起来它正在生成有损图像。

这是一个测试用例:http: //jsfiddle.net/Nf5ve/1/。在绘制PNG图像时,某个像素的某种颜色的值为40。在自己绘制了100%质量的画布WebP图像后,相同的值已变为37。这对我来说似乎不是无损的,甚至虽然我通过了 100% 的质量。

是否可以toDataURL创建无损 WebP 图像,如果可以,如何创建?

0 投票
2 回答
3568 浏览

android - 读取和显示 WebP 图像

我知道这个问题已经在某些地方(比如这里)提到过,但是有没有一种简单的方法来读取 WebP 图像,比如使用 jar 文件?

即使在旧设备上最小化应用程序的图像大小也会很棒。

是否可以像使用其他格式一样将 WebP inputStream 读取到普通位图实例,即使在较旧的 android 版本(比 ICS 旧)上也是如此?

0 投票
1 回答
593 浏览

google-chrome - 动画 WebP 浏览器支持

Chrome 是否支持动画 webP?有没有这样的图像的例子?我没有找到一个。

0 投票
1 回答
836 浏览

android - 无法获取具有透明度的 webP 图像的位图大小?

我正在使用相对较新的webP图像格式进行一些实验,该格式在 android 4 (ICS) 上受支持,如图所示

到目前为止,为了在加载之前获取图像大小,我使用了下一个代码(类似于 google在此处显示的内容):

但是,当我在具有透明度的 webP 图像上使用它时,它似乎根本无法获取此信息(宽度和高度均返回 -1)。

谷歌是否有可能在解码此图像文件类型时出现错误?

有没有办法克服这个?

为了测试它,只需将具有透明度的 png 文件(就像我使用过的这个文件,并通过paint.net应用程序添加了一些透明像素)转换为 webP 格式(使用谷歌的工具),并尝试读取分辨率像我使用的代码一样的文件。

0 投票
1 回答
10858 浏览

c# - 将位图转换为 WebP 图像?

任何人都知道是否可以使用 C# 将 a 转换为图像 BitmapWebP

一直在谷歌搜索,但找不到 C# 的任何内容。我发现了这个: mc-kay/libwebp-sharp · GitHub,但它似乎没有将位图转换为WebP格式。

有任何想法吗?

0 投票
1 回答
628 浏览

c++ - WebP无损格式概述

我正在阅读官方的WebP 无损比特流规范。我有一种感觉,该文件缺少一些解释。

让我描述一下规范的一些片段:

1. 简介——明确

2. Riff 标头 - 清除

3. 转型

转换仅用于主级别 ARGB 图像:次分辨率图像没有转换,甚至没有表示转换结束的 0 位。

之前没有提到容器包含一些亚分辨率图像。这些是什么?如果规范中没有,它们在哪里描述?他们如何添加到最终图像中?

然后,在预测器变换段落中:

我们将图像分成正方形...

..什么图像?主图像还是次分辨率图像?如果图像不能被分成正方形(除了像素大小的正方形)怎么办?

预测数据的前 4 位以位数定义块的宽度和高度。块列数 block_xsize 用于二维索引。

这是否意味着图像宽度为 block_xsize * block_width ?

变换数据包含图像每个块的预测模式。

以什么方式,什么格式?

我不知道为什么我很难理解这一点。也许是因为我不是以英语为母语的人,或者因为描述太简洁了。

我将不胜感激解码此规范的任何帮助:)

0 投票
2 回答
2008 浏览

performance - 如果是 Chrome,请使用 WebP

因为目前只有 Chrome 和 Opera 支持 WebP,我想知道是否可以针对这两个特定浏览器并将它们重定向以获取我网站的另一个版本,以便我可以帮助优化我的网站下载速度更快?

谢谢。