帮我参考参考这个16位图像转化为JPG文件格式的代码,哪里搞错了?不好。

pop155 2003-08-22 04:34:19
其中Bmplpdata是指向16位纯图像指针,是BYTE,大小:352*288*2
JPEGdata是定义的24位图指针,用于准备存储成JPG格式的文件,大小:352*288*3

for(int i=0;i<288;i++) //这个是高循环
{
for(int j=0;j<352;j++)//这里是宽循环
{
WORD S=*(Bmplpdata++);//顺序取出第一个字节
WORD X=*(Bmplpdata++);//顺序取出第二个字节
WORD Z=(S<<8)|(X);//16位中2字节表示一个像素,这里是双字节换算

//用的是rgb555格式,以下三句分别取出rgb颜色值,付给BYTE变量
BYTE bt0=(Z&0x7C00)>>10;
BYTE bt1=(Z&0x3E0)>>5;
BYTE bt2=(Z&0x1F);

//循环付给JPEGdata指针,
*(JPEGdata+i*352*3+j*3+0)=bt0;
*(JPEGdata+i*352*3+j*3+1)=bt1;
*(JPEGdata+i*352*3+j*3+2)=bt2;
}
}
RGBtoJPEGFile(JPEGdata,352,288,"aa.jpg");//jpeg.lib库中的函数

执行没什么问题,就是程序最后存成的jpg图像是黑色的,没有图像信息,我想是不是颜色值换算错了?问题是不是在这:WORD Z=(S<<8)|(X);
??
...全文
35 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
寻开心 2003-08-22
  • 打赏
  • 举报
回复
推荐使用CXIMAGE库,无需自己操心,自动做这种转换。

4,446

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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