如何将图片转换成16进制字符串?

h11529182 2010-01-20 01:56:49
将一张图片转换成像这样的16进制字符串码,像这样的
FFD8FFE000104A46494600010100000000000000FFDB004300100B0C0E0C0A100E0D0
E1211101318281A181616183123251D283A333D3C3933383740485C4E404457453738
506D51575F626768673E4D71797064785C656763FFDB0043011112121815182F1A1A2
F63423842636363636363636363636363636363636363636363
...全文
613 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
耍宝王 2010-01-20
  • 打赏
  • 举报
回复
靠!今天人有点晕,居然改了一处忘了第二处
#include <string>
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
string str;
unsigned char c; //这里以BYTE类型读取,但是最好还是通过图片结构来读取而后再逐个字节转换为十六进
char buf[3]; //缓冲区
ifstream fip;
fip.open("test.jpg", ios::in | ios::binary); //以二进制方式打开图片文件
while(fip.read((char*)(&c), sizeof(c)))//不要用fip.get(c)这是用来读取字符的,不是二进制数
{
sprintf(buf, "%X", c);//格式化输入,二进制读入并转换成十六进制字符(一个C库函数)
str += buf;
}
fip.close(); //关闭图片文件
cout << str << endl;
return 0;
}
耍宝王 2010-01-20
  • 打赏
  • 举报
回复
不好意思,代码有点问题,原来的代码是读英文字符用的,不适合读取图片,应此要改一下
大致要改成
#include <string>
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
string str;
unsigned char c; //这里以BYTE类型读取,但是最好通过图片结构来读取而后再逐个字节转换为十六进
char buf[3]; //缓冲区
ifstream fip("test.jpg"); //打开图片文件
while(fip.read((char*)(&c), sizeof(c)))//不要用fip.get(c)这是用来读取字符的,不是二进制数
{
sprintf(buf, "%X", c);//格式化输入,二进制读入并转换成十六进制字符(一个C库函数)
str += buf;
}
fip.close(); //关闭图片文件
cout << str << endl;
return 0;
}
DontKissBossAss 2010-01-20
  • 打赏
  • 举报
回复
广告贴?
耍宝王 2010-01-20
  • 打赏
  • 举报
回复
大概就是一个以二进制读入并转换成十六进制字符的过程
#include <string>
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
string str;
char c, buf[3];//缓冲区
ifstream fip("test.jpg"); //打开图片文件
while(fip.get(c))
{
sprintf(buf, "%X", c);//格式化输入,二进制读入并转换成十六进制字符(一个C库函数)
str += buf;
}
fip.close(); //关闭图片文件
cout << str << endl;
return 0;
}

这只是一个实验程序,正式使用时最好用vector<char>,而不要用string,不然打开大一点的文件就可能出错
h11529182 2010-01-20
  • 打赏
  • 举报
回复
这里有个转换工具,但是不是我想要的16进制的类型
http://dancewithnet.com/lab/2009/data-uri-mhtml/create/1263963019.php

64,683

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧