都把PIXELFORMAT:=PF24BIT。R,G,B各占一位,不好吗?

解决方案 »

  1.   

    读取文件头信息,或者是Delphi对位图做的封装.
    我是在一张光盘上看到的这个做法,叫做delphi资源大全.
    光盘早就被借丢了,不过你可以到D版市场买一张,里面当然不只这一点东西了.
      

  2.   

    这样行吗,假设我需要灰度深为8的灰度位图。先设bitmap.pixelformat:=pf1bit,把彩色图像转化为灰度。然后在设bitmap.pixelformat:=pf8bit,是它的位深为8位。不知道这样行不行
      

  3.   

    if (R=G) and (G=B) then //灰度色
    else
      

  4.   

    想要纯黑白,
    不能不管三七二十一全转成二进制位图.
    想要灰度,就不是1bit.
    我看楼主的意思还是纯黑白的.抖动算法的控件在sourcforge上可以找到的.
    要是靠判断亮度相对于某个阈值转换成二进制位图,经常会出现一陀一陀的现象.
    因偶替人做过文曲星的开机动画,所以经常把彩色的转成一陀一陀的.
    彩色转灰度使用delphi自己的方式就可.
    还有一种情况是16位或24位或32位的图像,但是只是灰度图像.
    这判断RGB是否相等就可以,就是参考海洋的方法.
      

  5.   

    哦,不好意思,黑白和彩色不同吗,那我想要灰度位图,可是如何在delphi里转。我不知道在delphi里如何转成灰度的。是不是把原图的r,g,b值设成一样的。我想要灰度的深度是8位,是不是就没有256种了,谢谢。
      

  6.   

    彩色 -----> 灰度
    R,G,BA:= 0.4?
    B:= 0.?
    C:= 0.? (忘记了,要查一下,反正 A+B+C = 1, 且A<>B and A<>C and B<>C)灰度(8bit) := A*R + B*G + C*B;调色板为:
    r  g  b
    0  0  0
    1  1  1
    2  2  2
    ....
    255 255 255  共256种颜色