社区
Qualcomm 开发者论坛
帖子详情
二进制数据怎么转成PNG?
tx040316
2009-06-23 10:10:47
我现在有一块二进制的数据,数据是其他人生成的,我已经读了进来,别人只告诉我这些数据是一张PNG的图片,我怎么才能把这些数据转成一张PNG,同时画出来?在BREW里面有没有这样的接口函数?有没有现实代码?(高分)
...全文
1122
20
打赏
收藏
二进制数据怎么转成PNG?
我现在有一块二进制的数据,数据是其他人生成的,我已经读了进来,别人只告诉我这些数据是一张PNG的图片,我怎么才能把这些数据转成一张PNG,同时画出来?在BREW里面有没有这样的接口函数?有没有现实代码?(高分)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
20 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
oJinCiErYi12345678
2012-08-29
打赏
举报
回复
看看各位高手
Sephoenix
2010-02-26
打赏
举报
回复
每天回帖即可获得10分可用分!小技巧:教您如何更快获得可用分
sdkeith
2009-07-20
打赏
举报
回复
可以使用IImageDecoder来decode png图片。
1. 使用AEECLSID_PNGDECODER来create一个decoder。
2. 使用IIMAGEDECODER_QueryInterface来获取IForceFeed接口,这个接口可以把encode的数据读入IImageDecoder Obj中。
3. 然后调用IIMAGEDECODER_GetBitmap来获得IBitmap就行了。
发现心流
2009-06-24
打赏
举报
回复
PNG格式的图片的话是有89 50 4e 47 开头的的吧
7楼的算法是没有问题的,
楼上可以确认一下生成的文件是不是正确的图像格式
半吊子全栈工匠
2009-06-24
打赏
举报
回复
[Quote=引用 11 楼 zsf81 的回复:]
BMP就直接是象素点阵了,这个直接向屏上刷就成了,还要啥方法,不过其它格式的是不好做,我也试过好多方法,没成功,可能出于保护算法,反正扩展的不好。很多方面都不能灵活运用了。
[/Quote]
我是用它来拷屏,存文件的,呵呵
tx040316
2009-06-24
打赏
举报
回复
我现在又试了,如果我是直接把图片读到内存中的话是可以显示,但是我如果用别人生成的那个文件就有些是不行的,我怀疑是不是他生成的文件有问题。
半吊子全栈工匠
2009-06-24
打赏
举报
回复
[Quote=引用 13 楼 tx040316 的回复:]
我试了七楼的方法,那个方法是可行的,但是我发觉有些图我可以显示,有些不可以显示。
[/Quote]
如果尺寸很大,恐怕就显示不了了
hhygcy
2009-06-24
打赏
举报
回复
[Quote=引用 13 楼 tx040316 的回复:]
我试了七楼的方法,那个方法是可行的,但是我发觉有些图我可以显示,有些不可以显示。
[/Quote]
图像格式是什么?
tx040316
2009-06-24
打赏
举报
回复
我试了七楼的方法,那个方法是可行的,但是我发觉有些图我可以显示,有些不可以显示。
半吊子全栈工匠
2009-06-23
打赏
举报
回复
[Quote=引用 7 楼 hhygcy 的回复:]
从别人的博客看到的东东
你试试看 原文地址:http://www.cppblog.com/gtwdaizi/articles/62862.html
d. 如何使用内存中的位图创建 IIMAGE 对象?
适用版本: 1.0, 1.1, 2.0
使用 ISHELL 接口 ISHELL_LoadResImage(用于资源)和 ISHELL_LoadImage(用于文件)完成作为资源或从文件中加载位图。 但是,有时可能必须从内存中初始化 IIMAGE 对象 - 例如显示前修改位图的内容时,或者不先将数据缓存到文件而通过套接字连接检索图…
[/Quote]
高手,好方法,但是简要使用IMEMASTREAM_SetEx,尤其是当文件较大的时候
半吊子全栈工匠
2009-06-23
打赏
举报
回复
就BMP而言,可以生产IDIB,然后通过IDIB将内存转化为BMP
hhygcy
2009-06-23
打赏
举报
回复
从别人的博客看到的东东
你试试看 原文地址:http://www.cppblog.com/gtwdaizi/articles/62862.html
d. 如何使用内存中的位图创建 IIMAGE 对象?
适用版本: 1.0, 1.1, 2.0
使用 ISHELL 接口 ISHELL_LoadResImage(用于资源)和 ISHELL_LoadImage(用于文件)完成作为资源或从文件中加载位图。 但是,有时可能必须从内存中初始化 IIMAGE 对象 - 例如显示前修改位图的内容时,或者不先将数据缓存到文件而通过套接字连接检索图像时。
在必须用内存中的位图初始化 IIMAGE 对象的情况下,应该使用 IIMAGE 接口 IIMAGE_SetStream。 下面的代码示例说明了这种技术。它通过调用 ISHELL_GetHandler 获得 BMP 图像处理程序的 Class ID,然后创建一个 MemAStream 对象并将其用作内存中位图的流。 注意:本例中的图像格式是 Windows BMP,“pMe->pBmpData”指向 Windows 文件格式 BMP 的开始 (BITMAPFILEHEADER)。
代码示例:
AEECLSID cls;
IImage *pIImage = NULL;
IMemAStream *pMemStream = NULL;
// 决定 BMP处理程序函数的类 ID,然后
// 创建此 BREW 类的实例
cls = ISHELL_GetHandler(pMe->a.m_pIShell, HTYPE_VIEWER, "image/bmp");
if (cls) {
ISHELL_CreateInstance(pMe->a.m_pIShell, cls, (void **)(&pIImage));
}
if (pMe->pBmpData) {
ISHELL_CreateInstance(pMe->a.m_pIShell, AEECLSID_MEMASTREAM, (void **)(&pMemStream));
if (pMemStream) {
//创建 MEMSTREAM 后将其作为内存中的位图的流。
IMEMASTREAM_Set(pMemStream, pMe->pBmpData, sizeof(pMe->pBmpData), 0, 0);
IIMAGE_SetStream(pIImage, (IAStream*)pMemStream);
// 现在以正常方式使用您的 IIMAGE 方法
IIMAGE_Draw(pIImage, ..., ...);
IDISPLAY_UpdateEx(pMe->a.m_pIDisplay, TRUE);
}
}
tx040316
2009-06-23
打赏
举报
回复
[Quote=引用 5 楼 zsf81 的回复:]
BREW没有对数据流直接DECODE接口,如果是文件,可以直接LOAD生成。
[/Quote]
不能用原图啊。如果是BMP文件有没有这样的接口呢?
zsf81
2009-06-23
打赏
举报
回复
BREW没有对数据流直接DECODE接口,如果是文件,可以直接LOAD生成。
tx040316
2009-06-23
打赏
举报
回复
我有那个PNG文件,因为公司是用一个自己的工具来统一生成这些文件的,本来是用于JAVA的,JAVA有个CREATEIMAGE()的接口,可以直接生成PNG文件,但BREW好像都没有,所以只能自己来实现啊。公司规定不能直接用原图,所以请各位帮忙想下办法。
hhygcy
2009-06-23
打赏
举报
回复
我印象中没有直接可以load binary 到 iimage的接口.
你看看是不是可以把这个二进制数据存成.png文件,再用ishell_loadimage把这个文件load出来, 如果效率上不是很讲究的话,应该是可行的
tx040316
2009-06-23
打赏
举报
回复
如果是BMP的话应该怎么做呢?要用哪些API啊?
半吊子全栈工匠
2009-06-23
打赏
举报
回复
PNG是需要decode的,BREW里好像没有相应的从内存导入的接口,从内存导入的接口都是针对BMP的。
zsf81
2009-06-23
打赏
举报
回复
BMP就直接是象素点阵了,这个直接向屏上刷就成了,还要啥方法,不过其它格式的是不好做,我也试过好多方法,没成功,可能出于保护算法,反正扩展的不好。很多方面都不能灵活运用了。
tx040316
2009-06-23
打赏
举报
回复
[Quote=引用 8 楼 wireless_com 的回复:]
就BMP而言,可以生产IDIB,然后通过IDIB将内存转化为BMP
[/Quote]
如果可以能转为IDIB,那本身就已经是BMP的格式了,没有必要再转化了。
电子纸模块的实用工具。它可以将任何 jpg、bmp 或
png
转换为
二进制
或十六进制数组_JavaScript_代码_下载
ImageToEpaper转换器 WaveShare 电子纸模块的实用工具。它可以将任何 jpg、bmp 或
png
转换为
二进制
、十六进制数组或直接转换为带有标题的完全可用的 cpp 文件。 它是如何工作的? 我专门为我的 2.9" WaveShare 的电子纸模块制作了这个工具。此显示无法处理普通图像
数据
,您必须将图像文件转换为一维十六进制数组格式。实现此目的需要以下两个步骤: 首先,您需要将图片的所有像素转换为
二进制
数组。(黑点是 1,白点是 0,但您可以使用选项标志反转它)。第二步是将所有创建的数字连接成一个字符串,并将其切成 8 位长度的部分。之后,它必须转换为特定的十六进制格式。(我认为这个解决方案背后的原因是模块的显示缓冲区有限,而且这种格式只是小到足以发送和处理
数据
) 完成此转换后,您可以将十六进制字符的输出数组直接发送到模块。需要注意的是,当您发送图片时,您必须填满整个屏幕!如果您只发送一半大小,则显示的其余部分将被随机像素填充。(除非这是您想要的,那就随意吧!:))所以当您在选项文件中设置显示尺寸时,您必须精确!如果图片大小没有完全填满屏幕,转换器会用空
数据
填
C#
二进制
图片的存储或读取
C_图片转换成
二进制
流并且保存到sql_server
数据
库,或者存储。
AS3
PNG
图片转
二进制
把图片批量转换成
二进制
数据
以便快速加载和显示,是个工具类应用
利用C/C++
二进制
读写
png
文件的方法示例
前言
二进制
文件不是以ASCII代码存放
数据
的,它将内存中
数据
存储形式不加转换地传送到磁盘文件,因此它又称为内存
数据
的映像文件。因为文件中的信息不是字符
数据
,而是字节中的
二进制
形式的信息,因此它又称为字节文件。 对
二进制
文件的操作也需要先打开文件,用完后要关闭文件。在打开时要用ios::binary指定为以
二进制
形式传送和存储。
二进制
文件除了可以作为输入文件或输出文件外,还可以是既能输入又能输出的文件。这是和ASCII文件不同的地方。 需求 最近为了弄OpenGl的纹理代码,发现书上没有图片像素的获取,然后就想写个来获取
png
的,结果花了一天的时间没弄清楚为什么出现
数据
个别正确其他的却是205
前端将
二进制
数据
流转为文件_详解JavaScript操作文件和
二进制
数据
在很长的一段时间内 JavaScript 是不能操作
二进制
数据
的。同样的为了安全性,直接操作文件也是不被支持的。但是随着 ECMAScript 5 的出现,引入了 Blob 对象,允许直接操作
二进制
数据
。当然在?ECMAScript 5 之前也可以操作
二进制
数据
,但是速度慢还容易出错。charCodeAt()方法,支持一个个字节地从文字编码
转成
二进制
数据
,还有一种办法是将
二进制
数据
转成
Base6...
Qualcomm 开发者论坛
955
社区成员
5,251
社区内容
发帖
与我相关
我的任务
Qualcomm 开发者论坛
为开发者提供高通丰富的解决方案及全面技术下载内容。本版以AI人工智能、WoS移动笔记本、XR、IoT 物联网、Auto 汽车、生成式AI等核心板块组成,为开发者提供一个便捷及高效的学习交流平台。
复制链接
扫一扫
分享
社区描述
为开发者提供高通丰富的解决方案及全面技术下载内容。本版以AI人工智能、WoS移动笔记本、XR、IoT 物联网、Auto 汽车、生成式AI等核心板块组成,为开发者提供一个便捷及高效的学习交流平台。
人工智能
物联网
机器学习
企业社区
北京·东城区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章