现在我有一个bitmap图片
有好多地方是空白的
所以我想考虑一下一个个的象素的来判断
要是不是白色的  我就送到打印机
现在这方面还是知识还是比较欠缺
还请高手们指点

解决方案 »

  1.   

    我用如下的函数来打印的
            procedure Cydf.DrawImage(Canvas: TCanvas; DestRect: TRect; ABitmap:TBitmap);
            var
                Header, Bits: Pointer;
                HeaderSize: DWORD;
                BitsSize: DWORD;
            begin
              GetDIBSizes(ABitmap.Handle, HeaderSize, BitsSize);
              Header := AllocMem(HeaderSize);
              Bits := AllocMem(BitsSize);
              try
                GetDIB(ABitmap.Handle, ABitmap.Palette, Header^, Bits^);
                StretchDIBits(Canvas.Handle, DestRect.Left, DestRect.Top,
                    DestRect.Right-DestRect.Left, DestRect.Bottom-DestRect.Top,0, 0,
                    ABitmap.Width, ABitmap.Height, Bits,TBitmapInfo(Header^),DIB_RGB_COLORS, SRCCOPY);
              finally
              Freemem(Header, HeaderSize);
              FreeMem(Bits, BitsSize);
              end;
            end;
    我就用这个函数来打印一个截的图,可是因为截的图直接送到打印机上去,因为截的图比较小,送到打印机上去后就会打印出空白纸。
    这时候我就把图片先  copyrect一倍来打印
    这下打印是可以了
    可是还是感觉打印不是很清晰
    要是再放大倍数的话
    那么再一些性能不是很好的机子上就会运行困难了

    还请各位帮我想想办法

      

  2.   

    如果想要截的图多大就打印多大,可以看下面的:
    http://expert.csdn.net/Expert/topic/1347/1347369.xml?temp=.5503809