毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 开发语言 >> 正文

function BytesPerScanline(PixelsPerScanline, BitsPerPixel, Alignment: Longint):的相关解释

更新时间:2012-5-21:  来源:毕业论文

function BytesPerScanline(PixelsPerScanline, BitsPerPixel, Alignment: Longint): Longint;
begin
  Dec(Alignment);
  Result := ((PixelsPerScanline * BitsPerPixel) + Alignment) and not Alignment;
  Result := Result div 8;
end;

帮助文档有这个函数,但是只写了个声明。
function BytesPerScanline(PixelsPerScanline, BitsPerPixel, Alignment: Longint): Longint;
begin
  Dec(Alignment); //相当于Alignment := Alignment-1;
  Result := ((PixelsPerScanline * BitsPerPixel) + Alignment) and not Alignment;
//这个是前两数相乘加上第三个数,背后就是Alignment取反,然后与前面括号内的结果进行“位与”
  Result := Result div 8;//结果整除8
end;

Dec(Alignment);
Result := ((PixelsPerScanline * BitsPerPixel) + Alignment) and not Alignment;

进行PixelsPerScanline * BitsPerPixel的结果,与Alignment进行字节对齐(请baidu啥叫字节对齐)

然后result div 8,8就是byte的bit数,也就是字节数

整个函数的意思是:
根据传入bitmap的width及格式,求出bitmap每行需要占用的字节数,一般用于直接操作bitmap的内存块操作。

每个赋值其实我都懂了,但连在一块就不懂了,我也经常这样,一般就是上下关联多看看

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。