TBitmap可以用背景色填充区域以清除之,请问TGPBitmap或者TGPImage用何种方法实现?

解决方案 »

  1.   

    GDI+中不是有DEMO吗
    Procedure OnPaint(DC: HDC);
    var
      graphics : TGPGraphics;
      SolidBrush: TGPSolidBrush;
    begin
      graphics := TGPGraphics.Create(DC);
      SolidBrush := TGPSolidBrush.Create(MakeColor(255, 255, 0, 0));
      graphics.FillEllipse(solidBrush, 0, 0, 100, 60);
      SolidBrush.Free;
      graphics.Free;
    end;
    这个是用一个椭圆填充
      

  2.   

    楼上你好,你说的这个Demo是用实笔画刷画一椭圆,并不会清除这块区域中的图形TBitmap如果用TranslateColor填充一块区域的话,这块区域画出来就是透明的了,而GDI+中好像没有背景透明色这种概念,所以我不知道如何删除一块内容让其透明
      

  3.   

    晕,早说嘛,你把这行代码:
      SolidBrush := TGPSolidBrush.Create(MakeColor(255, 255, 0, 0)); 
    换成再试:
      SolidBrush := TGPSolidBrush.Create(MakeColor(0, 255, 0, 0)); 
      

  4.   

    回三楼:怎样调整?是否做出这种调整后新画上去的也不会显示了?回四楼:你说的这个我昨天就试过了,这样相当于什么都不操作有没有熟悉GDI+的高手来说说?
      

  5.   

    我找到方法了,用TGpImageAttributes的SetColorKey如果没有高手提供更好的方法的话,结帖时平均给分
      

  6.   

    SetClip也可CSDN没有喜欢画图的还是没有用Delphi的了?
      

  7.   

    SetClip就行了,你自己不是找着了吗,不想SetClip的话就是把你背景画在一张图片上,再取出一部分画在画布上。
    别有了GDI+就把GDI给扔了