想在MFC下写一个读取bmp图片,并将图片转换成一串字符串,请问怎么实现

想读取电脑中的bmp图片,然后将图片转换成16进制或者是字符串类型的,看了下网上的教程,试了半天都没成功,不知道这个想法是不是可以实现

6个回答

你是说要做字符串序列化和反序列化,以及bmp图片序列化和反序列化?实施引用大法:
参考下:

 https://bbs.csdn.net/topics/390530162
 https://bbs.csdn.net/topics/10210211

是引用,是引用,是引用。某些人别又说抄袭。
你那个CountString既然返回直接赋值给szD1,说明不需要初始化szD1,会内存泄漏的。

hth159357
hth159357 回复feelcycle_07: 谢谢哥提出的初始化会造成内存泄漏,谢谢,谢谢
大约 2 年之前 回复
hth159357
hth159357 回复feelcycle_07: 哥,我就是想将一张BMP图片通过TCP发送到设备端,不需要对图片本身做任何操作呀
大约 2 年之前 回复
hth159357
hth159357 回复feelcycle_07: 老哥厉害,我就是想将电脑硬盘中的bmp图片读取出来,然后用我上面发送字符串的方式发送到另一个设备上,发送的格式已经定义好了,字符串测试了发送没有问题,就是想研究研究能不能用我发送字符串的方式发送bmp图片
大约 2 年之前 回复
feelcycle_07
默默悟问 回复windbleed: 如果是要做IM,直接找IM相关的开源库或软件扒。如果只是序列化+网络,找序列化的库和网络的库,参看:http://bbs.eeworld.com.cn/thread-483353-1-1.html
大约 2 年之前 回复
windbleed
Henry1976 考虑使用现有的库呢?
大约 2 年之前 回复
feelcycle_07
默默悟问 bmp太大了,至少可以考虑压缩成png再传输。如果能接受图片受损,转成jpg更好。
大约 2 年之前 回复
feelcycle_07
默默悟问 肯定是可以实现的。
大约 2 年之前 回复
feelcycle_07
默默悟问 int send( SOCKET s, const char FAR *buf, int len, int flags );如果必须char,确实必须base64
大约 2 年之前 回复
feelcycle_07
默默悟问 既然是图片文件,说明本身就序列化好了,只要全部加载到内存,前面加个你的传输协议头就可以直接发,收到方解析你自己定义的头,然后紧跟着读出全部后续内容就是bmp图片文件的内容,然后你是存储还是解析打开,就是针对bmp格式的问题了。
大约 2 年之前 回复

可以实现,不知道你要转换为16进制字符串还是以字符串构成的图画,又叫ascii art.采纳可以写个完整的给你。

hth159357
hth159357 回复caozhy: 有数的,老哥,但是我想按着我楼下贴的发送字符串的方式发送一张图片,我解释一下我楼下图片代码的意思,ss1数组是我定义的另一台设备的需要显示的数组,每一个数组都代表一个单独的格子,就和单元格一样,现在我就是想在ss[15]所对应的单元格的位置,放上一张bmp图片,然后发送出去,我稍后在楼下再贴一张图片发送的指令结构,如果楼主可以解惑,立马采纳
大约 2 年之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 我是很愿意回答你的问题,但是这个平台上不讲信用的人见的太多了,你看这个 https://ask.csdn.net/questions/677049给了程序就跑了,再也找不到了。只好先小人后君子了。
大约 2 年之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复hth159357: 采纳了帮你写。现在作弊的猖獗,不采纳真心不敢写。这是之前我回答的一些问题,你可以参考下,https://ask.csdn.net/questions/688858https://ask.csdn.net/questions/677045都是圆满解决lz问题的。
大约 2 年之前 回复
hth159357
hth159357 老哥,请问你是不是了解这方面
大约 2 年之前 回复

你这是只是要把bmp通过网络传输? 那就直接把bmp文件按照byte读出来, 做base64编码,然后就可以send了? recv端做逆操作

图片说明

你好,我编写任意字符串都可以成功的转成16进制的数组了,现在就是看看图片怎么弄的,请问如果我把转换成的字符串按我这种样子输入,输出之后可以成功识别吗

hth159357
hth159357 回复caozhy: 我是想从电脑硬盘读取一张图片,然后通过TCP发送到另一个设备上
大约 2 年之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 你是要将图片上的文字识别出来?还是要将字符串输出成一个图片?
大约 2 年之前 回复

图片说明
这个是定义的图片的发送格式,现在我就是不知道怎么把图片数据的大小 Size 和图片数据的内容, Logo这两个部分怎么弄,发送的数据包是16进制的

hth159357
hth159357 回复feelcycle_07: 哥,我就是整不明白怎么把图片信息摆到logo1的部分呀
大约 2 年之前 回复
feelcycle_07
默默悟问 不过如果只是Size1和Logo1,紧跟就是Size2和Logo2,拆包的意义在哪里?不是另起一个Pack2放15k以外的?但是示例看就是Pack1把两部分都封装了。
大约 2 年之前 回复
feelcycle_07
默默悟问 15k是按15000(0x3a98)算了,0x3ad6是15062,示例有点问题。这个不难阿,就是按15000分块,然后size*是对应块的大小(15000或者最后块的大小),Logo*是图片文件对应块的内容。
大约 2 年之前 回复

哥,我觉得我的应该不需要那么复杂的,我就是单纯的想将一张bmp图片发送到设备端

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问