RT
多谢了!

解决方案 »

  1.   

    位图的分辨率可以用HorizontalResolution和VerticalResolution获得
    对于单个点,个人觉得可以通过读出某点的数据,然后分析是否RGBA格式等来判断是什么样的图像
      

  2.   

    另外就是Palette 属性了,不过只支持“标记图像文件格式 (TIFF) 和图形交换格式 (GIF) 图像(和一些较早的非标准位图 (BMP) 图像)”
      

  3.   

    分成两类来判断直接查询Image.PixelFormat  如果是1bpp 4bpp 8bpp 的获取
    Palette.Entries 1bpp 为2个
    4bpp 为16个  8bpp 为256个..
    这里是所有颜色信息.... 如果不是 做个HashTable循环所有点.保存颜色到HathTable里.. 最终结果为所有颜色信息
    下面我们循环所有颜色信息
    黑白   255,255,255 0 0 0 不用说了..只有这两个颜色的为 黑白图
    灰读   判断所有颜色的 每个颜色的R G B相同 
    不是黑白也不是灰度...那只剩余彩色了.
      

  4.   

    Bitmap box1 = new Bitmap(PictureBox1.Image);
    Color c = new Color()
    int rr, gg, bb;for(int i=0;i<PictureBox1.Width;i++)
    {
       for(int j=0;j<PictureBox1.Height;j++)
       {
          c= box1.GetPixel(i,j);
          rr= c.R; gg=c.g;bb=c.B;
          
          if(c ==Color.Black||c= Color.White)
           {
             MessageBox.Show("黑白图点")
          }
          else
          {
             if(rr==gg==bb)
             {
                 MessageBox.Show("灰度图点");
             }
             else
             {
                 MessageBOx.Show("彩色图点");
              }      }
       }
    }
      

  5.   

    LS的几位的方法不错,关键是数量太大,不可能这么搞,这样太慢了,我想直接从图像文件的属性信息中读取这些信息。现在问题的关键是不知道怎么获得这些信息,主要是DPI。SHELL32也用了,得到的属性信息里唯独没有DPI。判断黑白彩色灰度,我现在考虑从它们的大小入手,这个应该说是解决了。大家继续发挥,帮下忙!
      

  6.   

    DPI难道不是HorizontalResolution和VerticalResolution么?
    判断彩色还是灰度,用9楼的方法应该足够了如果从文件本身入手,就查找EXIF元素值吧
      

  7.   

    你先去了解下什么是DPI然后再去做这个把....
      

  8.   

    - -
    那就读取图像的exif吧