哪里有这样的Image控件?(300分)

  • 主题发起人 主题发起人 cook
  • 开始时间 开始时间
C

cook

Unregistered / Unconfirmed
GUEST, unregistred user!
delphi带的image控件只有在load一个bmp图片的时候才可以用canvas画图,
保存的格式也只能是bmp,
我需要一个这样的控件,可以随意load一个jpg格式的文件,并画出来,
然后可以在这个基础上再画其他东西,最后可以保存成jpg格式,
简单的说就是要实现一个简单的windows的画笔的功能。
 
引用jpeg单元可以装入jpeg图片,至于画其他东西,得自己写吧
 
Delphi的JPEG单元不就支持BMP<=>JPG么?
Delphi还有一个例子可以实现基本的画图功能的。这两个结合一下就好了:)
 
但是load一个jpg图片以后
就不能用canvas画图了呀。

procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
Image1.Picture.LoadFromFile(OpenDialog1.FileName);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Image1.Canvas.LineTo(100,100);
end;
如果不load则button2可以画
load后报错
Can only modify an image if it contains a bitmap
 
有个GraphicEx是可以的,这是一个运行时的,
 
用images本身就可以这样了,
 
images本身不行啊
其一是打开jpg后不能在其上画东西
其二不能保存成jpg格式
 
一 Image1.Picture.Bitmap.LoadFile()
二 自己写转换
procedure TForm_Document_Info.BmpToJpg(BmpFile, JpgFile: String);
Var
BMP:TBitMap;
JPG:TJpegImage;
begin
Bmp:=TBitMap.Create;
Jpg:=TJpegImage.Create;
Try
if FileExists(BmpFile) then
begin
BMP.LoadFromFile(BmpFile);
//bmp.pixelformat := pf8bit;
JPG.Assign(BMP);
JPG.CompressionQuality:=80; //压缩率为
JPG.JPegNeeded;
JPG.Compress;
JPG.SaveToFile(JpgFile);
end;
Finally
BMP.Destroy;
JPG.Destroy;
end;
end;
参考
 
为了做一个“画笔”功能的程序,请使用 TPaintBox 来做,至于 jpeg ,只要引入
jpeg 这个 Delphi 附带的扩充单元就可以使用 LoadFormFile 和 SaveToFile 这样
的过程来实现了。
 
Image本来就不是用来给你画图的。想画图用paintbox吧。存储和调入jpg建议usejpeg单元,然后直接load到一个tBITMAP中。
 
后退
顶部