delphi 怎么 将 jpg 转换成png 然后显示出来

时间:2022-06-25 11:01:06
是这样的我的
jpg图片来自 stream的数据 
是通过 服务器发过来的数据
现在在客户端想通过 转换成png 图片显示 

各位大神 有哪位知道的 求教 

9 个解决方案

#1


把png转为jpg或bmp,delphi不支持png,可以用第三方的

#2


引用 1 楼 bdmh 的回复:
把png转为jpg或bmp,delphi不支持png,可以用第三方的

delphi 2009 开始内置支持 PNG 格式 delphi 怎么 将 jpg 转换成png 然后显示出来

#3


delphi2009以上就可以啦

#4


uses
  jpeg, pngimage;

procedure TForm1.Button1Click(Sender: TObject);
var
  JPG: TJPEGImage;
  BMP: TBitmap;
  PNG: TPngImage;
begin
  JPG := TJPEGImage.Create;
  BMP := TBitmap.Create;
  PNG := TPngImage.Create;
  JPG.LoadFromFile('C:\图片收藏\DIY\7副本.jpg');
  //  JPG.LoadFromStream(); 从流中载入的函数
  BMP.Assign(JPG);
  PNG.Assign(BMP);
  PNG.SaveToFile('D:\111.PNG');
end;

LZ可以参考下 就是创建JPG BMP PNG 然后JPG载入数据 转 BMP
BMP再转PNG 保存

#5


D7不支持pngimage,可以找Tpngimage控件装上
新版本都支持了~

#6


引用 4 楼 adslan 的回复:
uses
  jpeg, pngimage;

procedure TForm1.Button1Click(Sender: TObject);
var
  JPG: TJPEGImage;
  BMP: TBitmap;
  PNG: TPngImage;
begin
  JPG := TJPEGImage.Create;
  BMP := TBitmap.Create;
 ……


这样的话速度 方面会不会很慢 
我是传输视频的每帧图片 

#7


你可以把那个 BMP JPG PNG的创建变成全局的
这样不用一直创建销毁 的确可以加速
我写了一个局域网用的远程桌面
就是这样转的

#8


该回复于2011-05-17 08:24:25被版主删除

#9


我做过类似的远程控制,如果要求效率的话还是传Gdi的信息吧。如一定要用传图片的方式,则需只需传送当前改变了的图片,没有改变的不需传送。一个桌面分成很多个小图片来传送。

#1


把png转为jpg或bmp,delphi不支持png,可以用第三方的

#2


引用 1 楼 bdmh 的回复:
把png转为jpg或bmp,delphi不支持png,可以用第三方的

delphi 2009 开始内置支持 PNG 格式 delphi 怎么 将 jpg 转换成png 然后显示出来

#3


delphi2009以上就可以啦

#4


uses
  jpeg, pngimage;

procedure TForm1.Button1Click(Sender: TObject);
var
  JPG: TJPEGImage;
  BMP: TBitmap;
  PNG: TPngImage;
begin
  JPG := TJPEGImage.Create;
  BMP := TBitmap.Create;
  PNG := TPngImage.Create;
  JPG.LoadFromFile('C:\图片收藏\DIY\7副本.jpg');
  //  JPG.LoadFromStream(); 从流中载入的函数
  BMP.Assign(JPG);
  PNG.Assign(BMP);
  PNG.SaveToFile('D:\111.PNG');
end;

LZ可以参考下 就是创建JPG BMP PNG 然后JPG载入数据 转 BMP
BMP再转PNG 保存

#5


D7不支持pngimage,可以找Tpngimage控件装上
新版本都支持了~

#6


引用 4 楼 adslan 的回复:
uses
  jpeg, pngimage;

procedure TForm1.Button1Click(Sender: TObject);
var
  JPG: TJPEGImage;
  BMP: TBitmap;
  PNG: TPngImage;
begin
  JPG := TJPEGImage.Create;
  BMP := TBitmap.Create;
 ……


这样的话速度 方面会不会很慢 
我是传输视频的每帧图片 

#7


你可以把那个 BMP JPG PNG的创建变成全局的
这样不用一直创建销毁 的确可以加速
我写了一个局域网用的远程桌面
就是这样转的

#8


该回复于2011-05-17 08:24:25被版主删除

#9


我做过类似的远程控制,如果要求效率的话还是传Gdi的信息吧。如一定要用传图片的方式,则需只需传送当前改变了的图片,没有改变的不需传送。一个桌面分成很多个小图片来传送。