16位bmp如何转灰度?
(r+g+b) div 3 出来的图像不是灰度的。
求16位bmp转灰度算法,在这先谢谢!

解决方案 »

  1.   

    去阿发伯的博客看看:http://my.csdn.net/maozefa
      

  2.   

    阿发伯那里看了下,没有16位位图的只有32位的
    我的代码如下出来的图全都是杂色,帮帮忙哪错了指点下
    r:=kk shr 3;
    g:=kk shl 5;
    g:=g shr 2;
    另一个字节:
           tmp:=kk shr 5;
           g:=tmp or g;
           b:=kk shl 3;
           b:=b  shr 3;
    上为取RGB565
    565转888:
           r:=r shl 3;
           g:=g shl 2;
           b:=b shl 3;
    计算灰度值:
           doya:=(30*r+59*g+11*b) div 100; 
    转为565格式:
            tmpr:=doya shr 3;
           tmpg:=doya shr 2;
            tmpb:=doya shr 3;
    合为二字节:
           byte1:= tmpr shl 3;
           byte1:=byte1 or (tmpg shr 3);
           byte2:=tmpg shl 5;
           byte2:=byte2 or tmpb;
      

  3.   


    本人太穷了
    问题又来了!16位图$A631(黑色24位图R51G51B51)颜色值,灰度化后成近白色 
    16位图$59CE(近白24位图R$CC G$CC B$CC)颜色值,灰度化后成黑色
    该黑的成白,该白的成黑  这是怎么回事 再指点一下 谢谢……谢谢
      

  4.   

    原来我把RGB两字节弄反了 
    结贴