怎么输出unsigned char*图片数据

faq6965921faq 2014-04-24 08:48:30
我再写把图片发到服务端 我先把一张图片数据 读取出来放到了unsigned char* pic 但我怎么打印数据呢 我想看 是否少读取了数据。。。
...全文
1259 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2014-04-25
  • 打赏
  • 举报
回复
void HexDump(char *buf,int len,int addr) {
    int i,j,k;
    char binstr[80];

    for (i=0;i<len;i++) {
        if (0==(i%16)) {
            sprintf(binstr,"%08x -",i+addr);
            sprintf(binstr,"%s %02x",binstr,(unsigned char)buf[i]);
        } else if (15==(i%16)) {
            sprintf(binstr,"%s %02x",binstr,(unsigned char)buf[i]);
            sprintf(binstr,"%s  ",binstr);
            for (j=i-15;j<=i;j++) {
                sprintf(binstr,"%s%c",binstr,('!'<buf[j]&&buf[j]<='~')?buf[j]:'.');
            }
            printf("%s\n",binstr);
        } else {
            sprintf(binstr,"%s %02x",binstr,(unsigned char)buf[i]);
        }
    }
    if (0!=(i%16)) {
        k=16-(i%16);
        for (j=0;j<k;j++) {
            sprintf(binstr,"%s   ",binstr);
        }
        sprintf(binstr,"%s  ",binstr);
        k=16-k;
        for (j=i-k;j<i;j++) {
            sprintf(binstr,"%s%c",binstr,('!'<buf[j]&&buf[j]<='~')?buf[j]:'.');
        }
        printf("%s\n",binstr);
    }
}
faq6965921faq 2014-04-25
  • 打赏
  • 举报
回复
引用 2 楼 tujiaw 的回复:
打印数据

void hex(unsigned char *arr, size_t len)
{
	std::string hex(len * 3, '\0');
	int pos = 0;
	for (size_t i=0; i<len; i++) {
		pos += sprintf(&hex.front() + pos, "%02X ", arr[i]);
	}
	std::cout << hex << std::endl;
}
将图片用ultraedi打开
将图片用ultraedi打开 是什么意思 你这个是输出的二进制代码吧?? 二进制代码放到ultraedi 能看到图片??
ningto.com 2014-04-25
  • 打赏
  • 举报
回复
引用 4 楼 faq6965921faq 的回复:
[quote=引用 2 楼 tujiaw 的回复:] 打印数据

void hex(unsigned char *arr, size_t len)
{
	std::string hex(len * 3, '\0');
	int pos = 0;
	for (size_t i=0; i<len; i++) {
		pos += sprintf(&hex.front() + pos, "%02X ", arr[i]);
	}
	std::cout << hex << std::endl;
}
将图片用ultraedi打开
将图片用ultraedi打开 是什么意思 你这个是输出的二进制代码吧?? 二进制代码放到ultraedi 能看到图片??[/quote] 比对二进制编码
mujiok2003 2014-04-24
  • 打赏
  • 举报
回复
ningto.com 2014-04-24
  • 打赏
  • 举报
回复
打印数据

void hex(unsigned char *arr, size_t len)
{
	std::string hex(len * 3, '\0');
	int pos = 0;
	for (size_t i=0; i<len; i++) {
		pos += sprintf(&hex.front() + pos, "%02X ", arr[i]);
	}
	std::cout << hex << std::endl;
}
将图片用ultraedi打开
buyong 2014-04-24
  • 打赏
  • 举报
回复
想打印图片,把这串保存成一个二进制文件,然后当他是图片。

64,637

社区成员

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

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