RT

解决方案 »

  1.   

    我用一个IMAGE装了一个BMP的灰度图,
    然后在上面将IMAGE.CANVAS的PEN或者BRUSH的颜色都改成彩色,在CANVAS上面做图,结果始终是黑色,代码如下,这次没有动态的创建IMAGE
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ExtCtrls, StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        Image1: TImage;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    var PointA:array [1..9] of TPoint;
        Pos:TPoint;
    begin
       Pos.X:=20;
       Pos.Y:=20;
       PointA[1].X:=Pos.X;
       PointA[1].Y:=Pos.Y;
       PointA[2].X:=Pos.X+12;
       PointA[2].Y:=Pos.Y+10;
       PointA[3].X:=Pos.X+9;
       PointA[3].Y:=Pos.Y+5;
       PointA[4].X:=Pos.X+20;
       PointA[4].Y:=Pos.Y+8;
       PointA[5].X:=Pos.X+15;
       PointA[5].Y:=Pos.Y;
       PointA[6].X:=Pos.X+20;
       PointA[6].Y:=Pos.Y-8;
       PointA[7].X:=Pos.X+9;
       PointA[7].Y:=Pos.Y-5;
       PointA[8].X:=Pos.X+12;
       PointA[8].Y:=Pos.Y-10;
       PointA[9].X:=Pos.X;
       PointA[9].Y:=Pos.Y;
       Image1.Canvas.Brush.Color:=clRed;
       Image1.Canvas.Brush.Style:=bsSolid;
       Image1.Canvas.Polygon(PointA);但是如果把图片换成彩色的图片,就可以了,是不是和装的图片有关系,但是感觉IMAGE.PICTURE与IMAGE.CANVAS应该是相互独立的吧
      

  2.   

    你试试这样写,就行了
    var
      myPicture:TPicture;//注意要释放
    begin
         myPicture:=TPicture.Create();
        myPicture.Bitmap.LoadFromFile('c:\aaa.bmp');
        image1.Canvas.Draw(0,0,myPicture.Graphic);
    end;
      

  3.   

    似乎是这样的:
    你直接装入的灰色图像PICTURE认为图像格式是灰度的,不接受彩色刷子。
    动态Draw上去就不会改变属性...