我没有做过图像处理,但从你的意图来看,似乎应该这样写(将And换成Or):
ParanomicMatrix[x,y]:= (tempArr[2] shl 16) or (tempArr[1] shl 8) 
                           or tempArr[0] ; 

解决方案 »

  1.   

    我不是很确定,提供两种参考意见:
    1)rgb(0,0,0,)就是黑色,而且你的函数好像不对,应是shr不是shl.2)ParanomicMatrix[x,y]:= (tempArr[2] shl 16) or (tempArr[1] shl 8) 
                               or tempArr[0] ;
      

  2.   

    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分别对应你的数组相应颜色元素