读一个bmp文件,用打点的方式画上去,但却出现奇怪的问题
fseek(BitmapFp,BitmapDataOffset,SEEK_SET);
x=0;
y=BitmapHight-1; fseek(BitmapFp,BitmapDataOffset,SEEK_SET); for(u32Loop=0;u32Loop<BitmapDataSize/3;u32Loop++)
{
fread(PixelData,3,1,BitmapFp);
DWORD color;
color=RGB(PixelData[2],PixelData[1],PixelData[0]);
SetPixel(hDC, x, y, color);
if(x==BitmapWidth)
{
y--;
x=0;
}
x++;
}这样每次读出来的象素是对的,但是,却画出来的整副图都是第一个象素的颜色,
非要在for中加上fseek才行
for(u32Loop=0;u32Loop<BitmapDataSize/3;u32Loop++)
{
fseek(BitmapFp,BitmapDataOffset+u32Loop*3,SEEK_SET);
fread(PixelData,3,1,BitmapFp);
DWORD color;
color=RGB(PixelData[2],PixelData[1],PixelData[0]);
SetPixel(hDC, x, y, color);
if(x==BitmapWidth)
{
y--;
x=0;
}
x++;
}
这样就可以画出正确的图象。请问何解啊?
fseek(BitmapFp,BitmapDataOffset,SEEK_SET);
x=0;
y=BitmapHight-1; fseek(BitmapFp,BitmapDataOffset,SEEK_SET); for(u32Loop=0;u32Loop<BitmapDataSize/3;u32Loop++)
{
fread(PixelData,3,1,BitmapFp);
DWORD color;
color=RGB(PixelData[2],PixelData[1],PixelData[0]);
SetPixel(hDC, x, y, color);
if(x==BitmapWidth)
{
y--;
x=0;
}
x++;
}这样每次读出来的象素是对的,但是,却画出来的整副图都是第一个象素的颜色,
非要在for中加上fseek才行
for(u32Loop=0;u32Loop<BitmapDataSize/3;u32Loop++)
{
fseek(BitmapFp,BitmapDataOffset+u32Loop*3,SEEK_SET);
fread(PixelData,3,1,BitmapFp);
DWORD color;
color=RGB(PixelData[2],PixelData[1],PixelData[0]);
SetPixel(hDC, x, y, color);
if(x==BitmapWidth)
{
y--;
x=0;
}
x++;
}
这样就可以画出正确的图象。请问何解啊?
解决方案 »
- TCHAR 数组 ,获取数字的方法
- 使用ATL如何通过NewWindow2获得弹出URL,建立URL与它弹出的URL的对应关系
- 控件的外观问题?
- 求助,dataGrid的单元格中插入下拉列表行吗?
- 小弟正在做毕业设计,是一个基于内网的邮件监控的,各位大虾帮帮忙!
- 谁知道那些招聘网站比较好?想跳槽~~猎头网站啊什么的都可以
- 声讨黑龙江联通公司,顺便散分!
- 求一个select i/o 模型 的服务器端的demo ,要有多客户的自持,谢谢
- 如何对GB==>>Unicode内码转换
- 内存地址 重叠
- 在sqlserver,如何导出表中的数据,然后如何在导入到另外一个机器上的sqlserver中的相应的表中
- Berkeley DB 如何 更新 和 删除一条记录呢?
因为你不加fseek的话,指针一直不移动,也就是说你只读了第一行的位图信息
留个邮箱地址,我们交流下;