自己创建了一个IMAGE,为什么不能显示彩色? RT 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我用一个IMAGE装了一个BMP的灰度图,然后在上面将IMAGE.CANVAS的PEN或者BRUSH的颜色都改成彩色,在CANVAS上面做图,结果始终是黑色,代码如下,这次没有动态的创建IMAGEunit 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应该是相互独立的吧 你试试这样写,就行了var myPicture:TPicture;//注意要释放begin myPicture:=TPicture.Create(); myPicture.Bitmap.LoadFromFile('c:\aaa.bmp'); image1.Canvas.Draw(0,0,myPicture.Graphic);end; 似乎是这样的:你直接装入的灰色图像PICTURE认为图像格式是灰度的,不接受彩色刷子。动态Draw上去就不会改变属性... Delphi中,大家一般用什么报表?水晶报表、FastReport、QuickReport? 如何在应用程序中实现delphi控件的移动,就像设计阶段一样。 请问Delphi中的转义字符?? 查询出来的记录是直接显示在报表上还是.......? 物归原主,散分5000,no.2 如何获取一个SWF文件的原始图形大小? 菜鸟初哥求高手指点!!!!!!!!!!!!!!!! 关于combobox很简单的问题 有什么好的适用制作安装向导 delphi.csdn 代表大会,请大家互相通告 求“Delphi算法与数据结构”的电子版 刚刚制作的《QQ字符画精灵2003》的升级包!
然后在上面将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应该是相互独立的吧
var
myPicture:TPicture;//注意要释放
begin
myPicture:=TPicture.Create();
myPicture.Bitmap.LoadFromFile('c:\aaa.bmp');
image1.Canvas.Draw(0,0,myPicture.Graphic);
end;
你直接装入的灰色图像PICTURE认为图像格式是灰度的,不接受彩色刷子。
动态Draw上去就不会改变属性...