问题标签 [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.
svg - 将带有滤镜效果的 SVG 渲染为 PNG
我想将我创建的 SVG 渲染为高分辨率(600 DPI)PNG。这个 SVG 有滤镜效果,特别是高斯模糊。
理想情况下,渲染可以通过命令行完成。
我知道 SVG 是可渲染的,因为您可以在 Chrome/Chromium 中打开它,我想看到的输出就在那里。
我尝试过的事情:
导入 Adobe 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 的图形库。也许这来自其他网络浏览器,也许不是。
chromium - Windows 上的 SKIA 渲染(HDC 的 SkCanvas)
我正在尝试使用 SKIA 在 Windows 上绘图。
无论如何要从 HDC 启动 SkCanvas 吗?
android - Picasso 无法解码某些图像:skia decode returned false
更新:似乎这个问题归结为一些图像被正确解码,而有些则没有。如果我将非工作JPEG
的 s 转换为png
s,它们就会工作。JPEG
我从 a Nikon D5000
、 aPanasonic Lumix
或phone中直接以 s 形式拍摄的图像Sony Experia
都无法解码。
我Picasso
用来填写ListView
我的Android
应用程序。但是,我遇到了我要使用的图像的错误--- decoder->decode returned false
,但它适用于我在网络上遇到的其他图片。因此,我认为这与图像有关,但我不确定。错误出现在(据我所知)Skia
使用的库中。Picasso
例如,这张图片可以正常工作,而这不能,而我需要处理的是后者。我需要使用的所有其他照片都是用同一台相机拍摄的,并Gimp
以相同的方式进行编辑,从而产生与第一张类似的图像,但它们都不起作用。因此,我怀疑它与图像本身而不是解码器有关。
弹出几个问题:
- 元数据有可能在这个过程中做些什么吗?所有图片中的元数据都是相似的。
- 编码图像是否会导致编码器发疯?如果是这样,它可能是什么,我该如何调查它?文件结尾丢失还是什么?
- 是否可以从
Picasso
or启用更多调试和输出Skia
?例如,堆栈跟踪? - 非 UTF8 字符会搞砸,还是处理正确?示例图像中没有 UTF8 字符,但某些图像可能有。
我试过的:
- 我尝试打开一个非工作图像
Inkscape
并将其导出为png
文件。JPEG
现在,图像实际上可以工作,因此编码似乎有些问题。 - 另一种尝试是打开图像
Gimp
并再次导出JPEG
,但这没有帮助。 - 我还尝试在有和没有元数据的情况下打开图像
Shotwell
并重新导出到JPEG
,但这些图像都不起作用。导出到png
与导出到png
from一样Inkscape
。 - 所有不工作的图像都是用
Nikon D5000
相机拍摄的,所以我试着用Sony Experia
手机和Panasonic Lumix
相机拍了几张照片。非JPEG
s 直接工作,但如果转换为PNG
它们都将被解码。 - 我尝试设置一个
Picasso.Builder
对象,如此处所示,以获取堆栈跟踪。我在下面粘贴了堆栈跟踪。看起来它实际上是Android.BitmapFactory.decodeStream()
失败的,因为堆栈跟踪指向com.squareup.picasso.BitmapHunter.decodeStream()
,它利用Android.BitmapFactory.decodeStream()
.Skia
所以也许这个错误毕竟与此无关。 - 我还在工作和非工作图像上使用了
Imagemagick
's并比较了输出。identify -verbose
我找不到任何突出的差异,所以它没有让我更进一步。
示例 Logcat 输出:
来自 的堆栈跟踪Picasso
,指向此文件。
getView
我BaseAdapter
的方法ListView
:
android - 了解 VML 阴影矩阵
我正在开发适用于 Android 的 MS-Word 渲染工具。我需要为 vml 形状渲染阴影。微软关于阴影矩阵的文档不是很清楚,我在网上找不到关于 vml 阴影矩阵的详细解释。
根据 Microsoft 文档,阴影矩阵包含 6 个值、4 个比例值和 2 个透视值(请参阅此处)。
[ Sxx, Sxy, Syx, Syy, Px, Py ] S 代表“比例”,P 代表“透视”
我的疑惑:
Android 的变换矩阵支持 ScaleX 和 ScaleY,只有两个比例值。如何将 VML 的 4 个比例值映射到 Android 的转换矩阵?
这些后缀值是什么意思?Sxy 和 Syx 有什么区别?
任何解释,即使是片面的,都会非常有帮助。
谢谢,
巴拉
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'
了,似乎没有办法。
java - SkImageDecoder::Factory 在检索复杂对象时返回 null
我正在开发一个 Android 项目,在该项目中我正在检索 Person 的列表并尝试显示它们。Person 类包含作为字符串的 profilePhoto,我可以看到它保存在 DB 中,在检索人员列表后,我可以在 Log.d 中打印它。但是 Skia 的事情是在说 Factory 是空的。
我知道还有其他具有相同主题行的问题,但我不只检索图像,我正在检索人员列表,而图像只是其中的一个变量。
为什么我收到错误:
图片保存代码:
下面是我获取用户列表并将其绑定到适配器的位置:
这是我的适配器:
注意底部的 Log.d,上面写着 Image is,它正在打印图像,这是输出:
那么我到底应该如何处理 SkiaImageFactory 的事情。你能帮忙的话,我会很高兴。请注意,我不是在检索单个图像,而是从服务器检索整个 Person 类。
chromium - SKIA SkCreateWGLContext 在远程会话中返回 NULL
我在远程桌面会话上遇到了 SkCreateWGLContext 的问题:
这仅在远程桌面会话中失败。这个问题有什么解决方法或解决方案吗?
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 中都很好,这里还有什么问题?
skia - 为什么我不能渲染到持有 8 位灰度位图的 Skia 画布上
我正在尝试用skia做一些基本的绘图。由于我正在处理灰度图像,因此我想使用相应的颜色类型。我想使用的最小示例是:
但保存的图像不包含绘制的圆圈。如果我替换kAlpha_8_SkColorType
为kN32_SkColorType
我得到预期的结果。如何在 8 位灰度图像上绘制圆圈?我在 64 位 Windows 机器上使用 Visual Studio 2013。