gbitmap_create_from_png_data()无法加载图片

时间:2015-06-03 18:48:26

标签: png pebble-sdk

我正在开发一个从互联网下载png图像并显示它的应用程序。由于某种原因,gbitmap_create_from_png_data()无法加载大多数图像,并显示以下错误消息:

  

[错误] gbitmap_png.c:49:PNG内存分配失败

     

[错误] gbitmap_png.c:99:无法加载PNG

我怀疑自己失去了记忆。我这样说是因为我尝试加载非常小的图像,即4Kb的大小,但它们仍然失败。另一方面,一些图像,虽然大小为16kb,但成功加载。另一个令人困惑的事情是,使用gbitmap_create_from_png_data()无法加载的相同图像如果我将它们作为图像资源添加到我的应用程序,则使用gbitmap_create_with_resource()成功加载。因此,为Pebble正确格式化图像。下载的图像与我本地的图像大小完全相同,因此我怀疑图像数据是否已损坏。

成功的形象:http://brucedalemansion.com/images/baby_16.png

未成功的形象:http://i.imgur.com/CUJwSU7.png

1 个答案:

答案 0 :(得分:0)

未成功的图像包含带有0个条目的透明块(tRNS)。对于调色板块(pLTE),规范将无效。对于透明度块,它可能被认为是有效的......因为PNG规范声明“[等于]或更少的tRNS条目比调色板条目”。

由于某些工具正在制作有此问题的PNG,我正在为它添加对我们的PNG解码器的支持。 我会对PNG图像的工具感兴趣。

来自Pebble的Matt