问题标签 [skia]

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 回答
2267 浏览

svg - 将带有滤镜效果的 SVG 渲染为 PNG

我想将我创建的 SVG 渲染为高分辨率(600 DPI)PNG。这个 SVG 有滤镜效果,特别是高斯模糊。

理想情况下,渲染可以通过命令行完成。

我知道 SVG 是可渲染的,因为您可以在 Chrome/Chromium 中打开它,我想看到的输出就在那里

我尝试过的事情:

导入 Adob​​e Illustrator

svg2png

图像魔术

墨景

我现在忘记的其他命令行工具和程序。基本上你能用谷歌找到的任何东西。

我正在追求但坚持的当前路径:

知道 Chromium 可以很好地渲染 SVG 并且它是开源的,我想我会下载 Chromium 依赖于渲染 SVG 的库(Skia,https://sites.google.com/site/skiadocs/)并使用它输出一个PNG。到目前为止,我已经成功安装了 Skia 并运行了第一个示例。我找到了一个呈现 SVG 的示例(https://code.google.com/p/skia/source/browse/trunk/samplecode/SampleSVG.cpp?r=875)但没有在我的带有 XCode 和命令行工具最新更新的 OSX 机器。输出PNG的该示例的修改版本(带有gyp文件)将是惊人的。

其他可能有效的想法:

从 Chrome 获取像素数据(我该怎么做?由于图像的分辨率,一个简单的屏幕截图是不够的。我还想要一个可编写脚本的、可重复的过程。)

使用其他可以渲染 SVG 的图形库。也许这来自其他网络浏览器,也许不是。

0 投票
1 回答
2529 浏览

chromium - Windows 上的 SKIA 渲染(HDC 的 SkCanvas)

我正在尝试使用 SKIA 在 Windows 上绘图。

无论如何要从 HDC 启动 SkCanvas 吗?

0 投票
1 回答
3162 浏览

android - Picasso 无法解码某些图像:skia decode returned false

更新:似乎这个问题归结为一些图像被正确解码,而有些则没有。如果我将非工作JPEG的 s 转换为pngs,它们就会工作。JPEG我从 a Nikon D5000、 aPanasonic Lumix或phone中直接以 s 形式拍摄的图像Sony Experia都无法解码。


Picasso用来填写ListView我的Android应用程序。但是,我遇到了我要使用的图像的错误--- decoder->decode returned false,但它适用于我在网络上遇到的其他图片。因此,我认为这与图像有关,但我不确定。错误出现在(据我所知)Skia使用的库中。Picasso

例如,这张图片可以正常工作,而不能,而我需要处理的是后者。我需要使用的所有其他照片都是用同一台相机拍摄的,并Gimp以相同的方式进行编辑,从而产生与第一张类似的图像,但它们都不起作用。因此,我怀疑它与图像本身而不是解码器有关。

弹出几个问题:

  1. 元数据有可能在这个过程中做些什么吗?所有图片中的元数据都是相似的。
  2. 编码图像是否会导致编码器发疯?如果是这样,它可能是什么,我该如何调查它?文件结尾丢失还是什么?
  3. 是否可以从Picassoor启用更多调试和输出Skia?例如,堆栈跟踪?
  4. 非 UTF8 字符会搞砸,还是处理正确?示例图像中没有 UTF8 字符,但某些图像可能有。

我试过的:

  1. 我尝试打开一个非工作图像Inkscape并将其导出为png文件。JPEG现在,图像实际上可以工作,因此编码似乎有些问题。
  2. 另一种尝试是打开图像Gimp并再次导出JPEG,但这没有帮助。
  3. 我还尝试在有和没有元数据的情况下打开图像Shotwell并重新导出到JPEG,但这些图像都不起作用。导出到png与导出到pngfrom一样Inkscape
  4. 所有不工作的图像都是用Nikon D5000相机拍摄的,所以我试着用Sony Experia手机和Panasonic Lumix相机拍了几张照片。非JPEGs 直接工作,但如果转换为PNG它们都将被解码。
  5. 我尝试设置一个Picasso.Builder对象,如此处所示以获取堆栈跟踪。我在下面粘贴了堆栈跟踪。看起来它实际上是Android.BitmapFactory.decodeStream()失败的,因为堆栈跟踪指向com.squareup.picasso.BitmapHunter.decodeStream(),它利用Android.BitmapFactory.decodeStream(). Skia所以也许这个错误毕竟与此无关。
  6. 我还在工作和非工作图像上使用了Imagemagick's并比较了输出。identify -verbose我找不到任何突出的差异,所以它没有让我更进一步。

示例 Logcat 输出:

来自 的堆栈跟踪Picasso,指向文件。

getViewBaseAdapter的方法ListView

0 投票
0 回答
130 浏览

android - 了解 VML 阴影矩阵

我正在开发适用于 Android 的 MS-Word 渲染工具。我需要为 vml 形状渲染阴影。微软关于阴影矩阵的文档不是很清楚,我在网上找不到关于 vml 阴影矩阵的详细解释。

根据 Microsoft 文档,阴影矩阵包含 6 个值、4 个比例值和 2 个透视值(请参阅此处)。

[ Sxx, Sxy, Syx, Syy, Px, Py ] S 代表“比例”,P 代表“透视”

我的疑惑:

  1. Android 的变换矩阵支持 ScaleX 和 ScaleY,只有两个比例值。如何将 VML 的 4 个比例值映射到 Android 的转换矩阵?

  2. 这些后缀值是什么意思?Sxy 和 Syx 有什么区别?

任何解释,即使是片面的,都会非常有帮助。

谢谢,
巴拉

0 投票
0 回答
397 浏览

ios - 如何为 ios 构建具有 64 位支持的skia 库

我正在尝试为 ios 构建 skia 库。

xcode 项目生成命令GYP_DEFINES="skia_os='ios' skia_arch_type='arm' armv7=1 arm_neon=0" ./gyp_skia总是返回GYP_GENERATORS environment variable not set, using default,这是否意味着未设置配置变量?

另外,如何添加 arm64 支持?我试过skia_arch_type='arm64'了,似乎没有办法。

0 投票
0 回答
79 浏览

java - SkImageDecoder::Factory 在检索复杂对象时返回 null

我正在开发一个 Android 项目,在该项目中我正在检索 Person 的列表并尝试显示它们。Person 类包含作为字符串的 profilePhoto,我可以看到它保存在 DB 中,在检索人员列表后,我可以在 Log.d 中打印它。但是 Skia 的事情是在说 Factory 是空的。

我知道还有其他具有相同主题行的问题,但我不只检索图像,我正在检索人员列表,而图像只是其中的一个变量。

为什么我收到错误:

图片保存代码:

下面是我获取用户列表并将其绑定到适配器的位置:

这是我的适配器:

注意底部的 Log.d,上面写着 Image is,它正在打印图像,这是输出:

那么我到底应该如何处理 SkiaImageFactory 的事情。你能帮忙的话,我会很高兴。请注意,我不是在检索单个图像,而是从服务器检索整个 Person 类。

0 投票
0 回答
116 浏览

chromium - SKIA SkCreateWGLContext 在远程会话中返回 NULL

我在远程桌面会话上遇到了 SkCreateWGLContext 的问题:

这仅在远程桌面会话中失败。这个问题有什么解决方法或解决方案吗?

0 投票
1 回答
446 浏览

forth - 为什么 Skia 包含 Forth 解释器?

为什么Skia包含一个Forth 解释器

0 投票
1 回答
357 浏览

android - 寻找使用 resourceId 的 Bitmap.decodeResource 会返回 null 的原因

在我的 GridView 适配器中,我试图有效地加载图像,所以我一直在使用 Picasso 2.5.2(它允许通过资源 id 加载)。

但是,当我通过此消息传入 resourceId 时,它总是给出一个空白图像。

在我检查 Picasso Github 页面之前,我想我会尝试使用 Framework 调用:

App.get() 返回我的应用程序单例,因此 Context 是合法的。我还尝试在 getView 参数中从父级传递上下文并传递一个 Activity 上下文。记录 resId 向我显示了可绘制对象的正确 id,但它仍然无法正常工作,但这有效:

...但这不好,因为我没有机会通过以较小尺寸加载图像来保留内存。

我已经在 Genymotion 和真实设备上进行了尝试,结果相同。

所以上下文和资源 ID 在 Logcat 中都很好,这里还有什么问题?

0 投票
1 回答
644 浏览

skia - 为什么我不能渲染到持有 8 位灰度位图的 Skia 画布上

我正在尝试用skia做一些基本的绘图。由于我正在处理灰度图像,因此我想使用相应的颜色类型。我想使用的最小示例是:

但保存的图像不包含绘制的圆圈。如果我替换kAlpha_8_SkColorTypekN32_SkColorType我得到预期的结果。如何在 8 位灰度图像上绘制圆圈?我在 64 位 Windows 机器上使用 Visual Studio 2013。

kN32_SkColorType 类型结果 kAlpha_8_SkColorType 结果