Delphi 怎么将PNG文件分割,用image显示做图片按钮?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Delphi 怎么将PNG文件分割,用image显示做图片按钮?相关的知识,希望对你有一定的参考价值。

怎么使用pngimage控件或者GDI+ 把png图片分割显示出来呢?
我想用image做图片按钮
我不想将png图片转换为Bitmap 因为那样会丢失透明信息
希望高手指点,提供一些例子。

可以分割的,
1\自己读取数据,分割,内存中生成几张图.这种方法太烦了,不可取.
2\自己写一个按钮类继承于TWinControl,在CANVAS上想怎么画就怎么画.这个最好.
3\又不想写一个类,还是把图分开吧,一类按钮就2-3状态,才几张图!!!!!!
整个程序也不会有很多种类的按钮,何必没事找着折腾自己啊.....追问

没办法呀,项目需要一张图片分割作为按钮,又只能是png图片,bmp分割没问题,png图片现在就是还不懂,因为转为bmp图,就丢失了透明信息,那样做就没有png图片的意义了

追答

那就自己写一个按钮类吧,用2,灵活无比,想画在哪里就在哪里,画哪部分出来都可以啊

参考技术A 同意推荐答案

怎么用delphi显示image里的jpg格式,bmp格式不用设置就可以了,jpg要怎么弄?

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

end.

1、设置OpenDialog中的Filter:= 'JPG(*.JPG)|*.JPG;所有文件(*.*)|*.*'; --注:可以看到JPG文件和所有文件。
2、在需要处理JPG图片的单元文件内引用JPEG
3、使用TJPEGImage类处理JPG图像,它应该是TGraphic类的子类

例如:
procedure TForm1.Button3Click(Sender: TObject);
var
JPG: TJPEGImage;
begin
OpenDialog1.Filter:= 'JPG(*.JPG)|*.JPG;所有文件(*.*)|*.*';
if OpenDialog1.Execute then
begin
JPG:= TJPEGImage.Create;
JPG.LoadFromFile(OpenDialog1.FileName);
Image1.Picture.Assign(JPG);
JPG.Free;
end;
end;
参考技术A 在uses中添加 jpeg

uses jpeg;

添加后就能在默认image中显示jpg图片了,在OpenDialog1中选择jpg文件即可,filter不会弄的话,直接选择 所有文件*.*本回答被提问者采纳
参考技术B Delphi7等版本载入图像是支持BMP,jpg格式的,如果不行,你用photoshop打开jpg文件,另存为BMP文件不就可以了。 参考技术C if OpenDialog1.Execute then
Image1.Picture.LoadFromFile(OpenDialog1.FileName);

这样就可以了追问

这样连打开jpg格式的图片都没找到?

追答

你opendialog1的filter属性设置的都是什么格式啊???
怎么可能找不到jpg格式的图片呢。
Delphi7--Delphi XE2我都试了,没问题。

以上是关于Delphi 怎么将PNG文件分割,用image显示做图片按钮?的主要内容,如果未能解决你的问题,请参考以下文章

怎么用delphi显示image里的jpg格式,bmp格式不用设置就可以了,jpg要怎么弄?

(DELPHI)已经存入SQLSERVER中的图片数据(image字段)太大,怎么直接在数据库中压缩?或怎么用程序实现

Delphi如何制作透明背景窗体

delphi中资源文件调用

delphi 如何分割文本

delphi 谁知道如何让image自动有滚动条(当图片尺寸大于image尺寸时