读书人

★问,4 bytes big endian (Mac style)

发布时间: 2012-03-04 11:13:33 作者: rapoo

★急问,4 bytes big endian (Mac style)格式转换为little endian的问题!顶者有分!★
现有一幅raw灰色图片,是4 bytes big endian (Mac style)格式,请问怎么转换为little endian的格式?以及怎样转成bmp它才会正常显示?

[解决办法]
无语,这么简单的位运算问题,到了现在居然成了难题

function BSWAP4B(n:Cardinal):Cardinal;
begin
Result:= (n shr 24)
or ((n shr 8) and $0000FF00)
or ((n shl 8) and $00FF0000)
or (n shl 24);
end;


如果是x86体系,还可以用bswap指令:

function BSWAP4B_ASM(n:Cardinal):Cardinal;
asm
mov eax, n // 将变量加载到EAX寄存器
bswap eax // 字节交换
// EAX是函数返回值
end;

[解决办法]
一次性读取到内存,然后用指针操作数据

如果图片太大,也可以每次提取一扫描行的图像数据

[解决办法]
帮不上忙,帮顶还是可以的
[解决办法]
我顶我顶我顶顶顶
[解决办法]
关注
[解决办法]
帮顶!^-^

读书人网 >.NET

热点推荐