社区
高通开发者论坛
帖子详情
二进制数据怎么转成PNG?
tx040316
2009-06-23 10:10:47
我现在有一块二进制的数据,数据是其他人生成的,我已经读了进来,别人只告诉我这些数据是一张PNG的图片,我怎么才能把这些数据转成一张PNG,同时画出来?在BREW里面有没有这样的接口函数?有没有现实代码?(高分)
...全文
2328
20
打赏
收藏
二进制数据怎么转成PNG?
我现在有一块二进制的数据,数据是其他人生成的,我已经读了进来,别人只告诉我这些数据是一张PNG的图片,我怎么才能把这些数据转成一张PNG,同时画出来?在BREW里面有没有这样的接口函数?有没有现实代码?(高分)
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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的格式了,没有必要再转化了。
Vulnerability Wiki 是一个致力于构建全面、系统、多维度的漏洞知识共享平台,涵盖从Web应用、系统内核、
Vulnerability Wiki 是一个致力于构建全面、系统、多维度的漏洞知识共享平台,涵盖从Web应用、系统内核、网络协议、IoT设备、移动端到配置失误等各类安全漏洞,旨在服务于 学习者、研究者、工程师、安全从业者及大众技术爱好者。 vul-wiki.org.zip
Automated analysis of network security emergency response to
Automated analysis of network security emergency response tools.(自动化分析网络安全应急响应工具).zip
初中数学有理数运算法则基础题40;含答案41;.doc
初中数学有理数运算法则基础题40;含答案41;.doc
插件开发基于Dify的天气查询插件设计:多
数据
源集成与自动化工作流实现
内容概要:本文详细介绍了如何使用Dify插件系统开发一个功能完整的天气查询插件,涵盖从环境搭建、项目结构设计、插件基础实现、多
数据
源集成(如OpenWeatherMap和和风天气)、
数据
模型定义、配置管理到测试验证及Docker容器化部署的全流程。文中还提供了单元测试、集成测试示例以及与Dify工作流的集成配置,帮助开发者理解插件的工作机制和错误处理策略,并通过实际代码展示了缓存机制、异常回退、日志记录等关键设计。最后通过API文档和使用示例说明插件的调用方式和响应格式。; 适合人群:具备Python编程基础,熟悉API调用与异步编程,有一定Web开发经验的1-3年研发人员或低代码平台开发者;对插件化架构和自动化工作流感兴趣的工程师。; 使用场景及目标:①学习Dify插件系统的开发规范与集成方式;②掌握多
数据
源天气服务的整合与故障转移机制;③实践插件的单元测试、容器化部署与CI/CD流程;④构建可扩展的第三方服务插件用于智能对话或自动化流程。; 阅读建议:建议结合代码结构逐步实践,重点关注插件清单配置、
数据
模型定义与客户端抽象设计,同时运行测试用例理解异常处理逻辑,并尝试部署到本地Dify环境进行集成验证。
C++implementationofChatGLM-6B&ChatGLM2-6B&ChatGLM3&GLM4(V).zip
C++implementationofChatGLM-6B&ChatGLM2-6B&ChatGLM3&GLM4(V).zip
高通开发者论坛
4,677
社区成员
5,878
社区内容
发帖
与我相关
我的任务
高通开发者论坛
本论坛以AI、WoS 、XR、IoT、Auto、生成式AI等核心板块组成,为开发者提供便捷及高效的学习和交流平台。 高通开发者专区主页:https://qualcomm.csdn.net/
复制链接
扫一扫
分享
社区描述
本论坛以AI、WoS 、XR、IoT、Auto、生成式AI等核心板块组成,为开发者提供便捷及高效的学习和交流平台。 高通开发者专区主页:https://qualcomm.csdn.net/
人工智能
物联网
机器学习
技术论坛(原bbs)
北京·东城区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章