问题标签 [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.
android - 无法使用 BitmapFactory.decodeFile 加载 JPEG 图像。返回空
我正在制作一个应用程序,显示大量由 Imagemagick 从 PDF 文件生成的图像。某些图像,无法使用 BitmapFactory 加载。它只是返回 null 而不是位图。
日志说:
这不是内存问题,因为一些有问题的图像非常小,并且图像没有损坏,因为我可以在任何其他机器上显示它们。此外,如果我使用 BitmapFactory 能够解码宽度和高度
在选项中。
我尝试使用外部图像查看器 ( QuickPic ) 加载其中一张图像,但没有运气。它还返回“加载失败”,这表明 SKIA 认为图像已损坏或至少由于某种原因不受支持。
可以在此处找到其中一张不起作用的图像
我用来加载它的完整代码在这里
欢迎任何想法有什么问题或如何规避它。
android-ndk - 三星 Galaxy S3 上的原生窗口渲染问题
我正在使用 Skia(预建)在一个 android 本机窗口中绘制,这是我从 Java 表面获得的。该代码在我可以测试的所有设备上都运行良好,除了三星 Galaxy S3(上面装有 android 4.0.4)。第一张图是我应该看到的,第二张图出现在 Galaxy S3 上:
绘制矩形的 jni 函数是:
我在以下设备上进行了测试,没有问题:
- Sony X8 (android 2.3.7 定制rom)
- 三星 Nexus S (安卓 4.0.4)
- 三星 Galaxy Tab 10.1 (android 3.2)
- 三星 Galaxy S2 (安卓 2.3.5)
- 模拟器(android 4.0.3,与 Galaxy S3 相同的屏幕尺寸和 dpi)
我尝试调用 ANativeWindow_setBuffersGeometry(window,0,0,0) 没有运气(无论如何,窗口锁定后缓冲区的尺寸和格式似乎没问题)。
到目前为止,只有 Galaxy S3 给我带来麻烦,此时我不知道该怎么办,我什至无法判断问题是与 ndk 原生窗口 api 还是与skia,或者可能与使用 TouchWiz 的 Galaxy S3 ......欢迎任何想法!
android - 在原生 c 中的 android ics 中绘制复杂文本
注意:我的整个 senario 仅适用于 android 版本的 ICS。
我的目标是渲染具有复杂脚本/印度脚本的文本。在 ICS 中,此功能已添加到 WebView(以及浏览器)中。如果在 Browser 或 WebView 中呈现任何指示文本,则它会正确呈现。但在其他小部件(TextView、EditText)中,它呈现损坏。
现在我的目标是重新使用代码在 webcore 中正确绘制 indic 文本,并使用该代码在自定义小部件中绘制 indic 文本。
我还在浏览器中使用 HTML5 画布进行了测试,它可以很好地呈现 indic 文本。我已经测试了 android 的 android.graphics.Canvas 并且它无法正确呈现 indic 文本。
libskia严重缺乏文档,所以我无法弄清楚如何使用它来呈现文本。
我检查了 libwebcore.so 的 objdump,发现它依赖于 lib“skia”“libicu”。所以我假设我可以使用这些库绘制印度文字。
谁能建议我如何使用skia和icu绘制印度文字?或者任何人都可以指向 libwebcore 中的特定代码段吗?
ios - 如何为ios构建skia
我尝试在ios上构建skia。然后我下载它然后在mac os上运行SampleApp。所以我想在ios上使用它。但是当我打开xcodeproj时,项目中有很多文件未退出!那么什么可以我用它和How to build skia for ios?? 谢谢提前!!
android - 通过 NDK 在 Android 上加载不同版本的系统共享库?
我正在尝试通过使用一些本机库来开发一个 android 应用程序。但是,系统共享库android 4.0
和android 4.1.2
不同。为了保证兼容性,我从平台 4.0 获取 libskia.so 文件,并将其导入到我的项目中。我希望像使用第 3 方共享库一样加载这个共享库。不幸的是,在运行时android 4.1.2
,我的应用程序似乎仍然调用系统skia 库。我对此一无所知,以下是我的Android.mk
文件
和预建的makefile
有任何想法吗?或者,是否有任何其他方法来确保兼容性?
ios - 在ios模拟器上成功构建skia,但无法在我的iphone上运行
每个人。我已经完成了在 ios 模拟器上运行的skia。但无法在我的 iphone 上运行。它停在这里。
在 getcpuid 方法中,它说“invaild output constraint 'a' in asm”。它出什么问题了??任何人?
android - 为什么 SKIA 不使用自定义 FilterInputStream?
我正在尝试从扩展的 FilterInputStream 解码位图。我必须对图像数据执行动态字节操作,以向 SKIA 提供可解码的图像,但是 SKIA 似乎忽略了我的自定义 InputStream 并初始化了它自己的一个......
当我运行我的测试应用程序时,尝试加载 2mb 大的 JPEG 会导致ObfuscatedInputStream.read([])
仅从BitmapFactory.decodeStream()
似乎一旦从我检索到的前 16kb 数据确定文件类型,ObfuscatedInputStream
它就会初始化自己的本机流并从中读取,有效地渲染我对输入流应该如何工作所做的所有更改无用......
这是我扩展的 FilterInputStream 类中的缓冲读取函数。函数顶部的 Log.d 只执行一次。
有没有人遇到过这个问题?似乎获得我想要的行为的唯一方法是重写部分 SKIA 库......我真的很想知道 InputStream 参数的意义是什么,如果本机实现初始化它自己的流......
opengl-es - 为什么我的 android 原生活动在渲染位图时有时会显示错误的图像?
我正在尝试使用NDK
全屏显示位图。该要求迫使我使用完全本机代码进行开发。我Skia
用来画一个SkBitmap
,然后用Opengl APIs
. 当我的应用程序第一次在真正的 android 设备上运行时,它总是运行良好。但是,在我多次打开和关闭程序后,它会显示一个不好的图像。为什么会这样?
功能engine_init_display
是初始化OpenGL ES和EGL,创建位图和加载纹理。
功能render
是显示位图
当窗口被关闭时,engine_term_display
将被调用
更新
android_main
是我本机应用程序的主要入口点。我发现当这个主函数返回时,整个应用程序仍在运行。
android - 如何在 JB 上启用带有 GPU 后端的skia
我听说在 Android 3.0 中添加了 Skia GPU acc,但似乎自 Android 4.0 以来它被默认禁用,可能是因为转向 HWUI(Canvas 的 openGL 实现)。我怎么能再次启用它只是为了基准测试。
skia - 在 ubuntu 上使用 Skia 库测试无法获得 UI 显示
我按照skia 站点的步骤在我的Ubuntu 12.04 64 位机器上编译skia r1236。当我运行测试时,没有窗口显示图形结果。控制台上的输出是:
[1/33] PDFPrimitives ................... [33/33] BitmapCopy ... 完成 33 次测试,0 次失败。
如果我使用 SkImageEncoder::EncodeFile 将位图放到文件中,我会得到文件的图形输出。这确认该库工作正常,但无法调用 linux 窗口系统。
另一个问题是,在运行文本时,我收到以下错误
SkFontHost::OpenStream 打开 1 失败 --- 字形 0 没有上下文
我已经按照Skia 网站的描述安装了所有的 freetype 库,但是无论我在 SK_FONT_FILE_PREFIX 中使用哪个路径,我仍然有错误。
我的“/usr/share/fonts/”文件夹有
- 地图
- 真型
- 类型1
- X11
我注意到有一个文件 SkOSWIndow_Unix.cpp 但似乎没有人从测试代码中调用它。所以我的问题是
1)我们如何让输出显示在窗口上?
2) SK_FONT_FILE_PREFIX 的值应该是多少?
PS:Windows 端口工作正常