我不是很确定,提供两种参考意见: 1)rgb(0,0,0,)就是黑色,而且你的函数好像不对,应是shr不是shl.2)ParanomicMatrix[x,y]:= (tempArr[2] shl 16) or (tempArr[1] shl 8) or tempArr[0] ;
1,首先,你是按B-G-R(高到低)的顺序合成一个longint吗? 2,用and好像不对吧. 3,你的temparr数组是什么类型的?应该是DWORD吧?如果是byte按你的方法就不对了那就试试这个 如果temparr是dword: var lint:Longint;lint:=0; lint:=(B AND $000000FF) SHL 24; LINT:=LINT OR ((G AND $000000FF) SHL 16) ; LINT:=LINT OR (R AND $000000FF); 其中rgb分别对应你的数组相应颜色元素
1)rgb(0,0,0,)就是黑色,而且你的函数好像不对,应是shr不是shl.2)ParanomicMatrix[x,y]:= (tempArr[2] shl 16) or (tempArr[1] shl 8)
or tempArr[0] ;
2,用and好像不对吧.
3,你的temparr数组是什么类型的?应该是DWORD吧?如果是byte按你的方法就不对了那就试试这个
如果temparr是dword:
var
lint:Longint;lint:=0;
lint:=(B AND $000000FF) SHL 24;
LINT:=LINT OR ((G AND $000000FF) SHL 16) ;
LINT:=LINT OR (R AND $000000FF);
其中rgb分别对应你的数组相应颜色元素