procedure TForm1.Button1Click(Sender: TObject);
var
Stream: TMemoryStream;
istreamTest: IStream;
GPImage: TGPImage;
Graphic: TGPGraphics;
begin
Stream := TMemoryStream.Create;
Stream.LoadFromFile('c:\nofind.png');
istreamTest:= TStreamAdapter.Create(Stream);
Graphic := TGPGraphics.Create(Canvas.Handle);
try
GPImage := TGPImage.Create('c:\nofind.png');
//GPImage := TGPImage.Create(istreamTest); //这句会报错
Graphic.DrawImage(GPImage, 0, 0);
finally
Stream.Free;
GPImage.Free;
Graphic.Free;
end;
end;
直接用文件加载是没问题的,
加载bmp的文件流也OK,换成png就不行,真是怪了。。。
19 个解决方案
#1
顶起呀,没人知道么?
#2
再顶顶~
#3
处理png要用pngimage单元
在这里: http://pngdelphi.sourceforge.net
在这里: http://pngdelphi.sourceforge.net
#4
加了也一样的,跟这个没关系。
#5
不信没人知道~
加分100~~~
加分100~~~
#6
上班了,应该有人来了吧,再up~
#7
http://www.delphifans.com/SoftView/SoftView_2496.html
看这个 使用其中的TPngSpeedButton 即可
看这个 使用其中的TPngSpeedButton 即可
#8
下载一个支持png的开发包 。
http://pngdelphi.sourceforge.net/pngimage143.zip
效果和代码参考
http://borland.mblogger.cn/jinjazz/posts/21093.aspx
http://pngdelphi.sourceforge.net/pngimage143.zip
效果和代码参考
http://borland.mblogger.cn/jinjazz/posts/21093.aspx
#9
不好意思,没有注意你的问题
#10
这位大叔的文章可能会对你有帮助
http://blog.csdn.net/maozefa/archive/2007/07/12/1685930.aspx
http://blog.csdn.net/maozefa/archive/2007/07/12/1685930.aspx
#11
谢谢楼上,那位大叔的文章看了,问题依旧
#12
你说的这个问题可能是GDI+内部的一点小BUG,就是使用文件流加载PNG文件时会弹出CPU调试对话框,这个问题对你的程序没有影响,脱离Delphi调试环境,运行会正常。
#13
弱弱的问一句,楼上大叔今年五十几了?
#14
56了,哈哈
#15
我测试了一下,
GPImage := TGPImage.Create(istreamTest); 这一句在脱离ide运行时确实没有报错,
但在执行Graphic.DrawImage(GPImage, 0, 0); 这句时报错。。。
#16
下载个PNG类就可以用了,
下载地址
http://download.csdn.net/source/226243
使用
下载地址
http://download.csdn.net/source/226243
使用
uses
pngimage;
var
filename : string;
Bitmap : TBitmap;
PNG: TPNGObject;
begin
PNG := TPNGObject.Create;
Bitmap := TBitmap.Create;
try
PNG.LoadFromFile(filename);
Bitmap.Assign(PNG);
finally
PNG.Free;
end;
end
#17
uses
pngimage;
var
filename : string;
gif : TGIFImage;
PNG: TPNGObject;
begin
PNG := TPNGObject.Create;
Bitmap := TBitmap.Create;
try
PNG.LoadFromFile(filename);
gif.Assign(PNG);
finally
PNG.Free;
end;
end
#18
我用你的代码(1楼)脱离ide运行,什么错误也没有,图片也能正确地显示在窗口左上角。
#19
真是头疼,
我在win2000系统的机子上测试,脱离ide运行,Graphic.DrawImage(GPImage, 0, 0);会报错,
在xp系统的机子测试,结果如楼上所说。没有报错,图片也能正确显示。
我在win2000系统的机子上测试,脱离ide运行,Graphic.DrawImage(GPImage, 0, 0);会报错,
在xp系统的机子测试,结果如楼上所说。没有报错,图片也能正确显示。
#20
#1
顶起呀,没人知道么?
#2
再顶顶~
#3
处理png要用pngimage单元
在这里: http://pngdelphi.sourceforge.net
在这里: http://pngdelphi.sourceforge.net
#4
加了也一样的,跟这个没关系。
#5
不信没人知道~
加分100~~~
加分100~~~
#6
上班了,应该有人来了吧,再up~
#7
http://www.delphifans.com/SoftView/SoftView_2496.html
看这个 使用其中的TPngSpeedButton 即可
看这个 使用其中的TPngSpeedButton 即可
#8
下载一个支持png的开发包 。
http://pngdelphi.sourceforge.net/pngimage143.zip
效果和代码参考
http://borland.mblogger.cn/jinjazz/posts/21093.aspx
http://pngdelphi.sourceforge.net/pngimage143.zip
效果和代码参考
http://borland.mblogger.cn/jinjazz/posts/21093.aspx
#9
不好意思,没有注意你的问题
#10
这位大叔的文章可能会对你有帮助
http://blog.csdn.net/maozefa/archive/2007/07/12/1685930.aspx
http://blog.csdn.net/maozefa/archive/2007/07/12/1685930.aspx
#11
谢谢楼上,那位大叔的文章看了,问题依旧
#12
你说的这个问题可能是GDI+内部的一点小BUG,就是使用文件流加载PNG文件时会弹出CPU调试对话框,这个问题对你的程序没有影响,脱离Delphi调试环境,运行会正常。
#13
弱弱的问一句,楼上大叔今年五十几了?
#14
56了,哈哈
#15
我测试了一下,
GPImage := TGPImage.Create(istreamTest); 这一句在脱离ide运行时确实没有报错,
但在执行Graphic.DrawImage(GPImage, 0, 0); 这句时报错。。。
#16
下载个PNG类就可以用了,
下载地址
http://download.csdn.net/source/226243
使用
下载地址
http://download.csdn.net/source/226243
使用
uses
pngimage;
var
filename : string;
Bitmap : TBitmap;
PNG: TPNGObject;
begin
PNG := TPNGObject.Create;
Bitmap := TBitmap.Create;
try
PNG.LoadFromFile(filename);
Bitmap.Assign(PNG);
finally
PNG.Free;
end;
end
#17
uses
pngimage;
var
filename : string;
gif : TGIFImage;
PNG: TPNGObject;
begin
PNG := TPNGObject.Create;
Bitmap := TBitmap.Create;
try
PNG.LoadFromFile(filename);
gif.Assign(PNG);
finally
PNG.Free;
end;
end
#18
我用你的代码(1楼)脱离ide运行,什么错误也没有,图片也能正确地显示在窗口左上角。
#19
真是头疼,
我在win2000系统的机子上测试,脱离ide运行,Graphic.DrawImage(GPImage, 0, 0);会报错,
在xp系统的机子测试,结果如楼上所说。没有报错,图片也能正确显示。
我在win2000系统的机子上测试,脱离ide运行,Graphic.DrawImage(GPImage, 0, 0);会报错,
在xp系统的机子测试,结果如楼上所说。没有报错,图片也能正确显示。