提示Access violation at address 0045c00 in module 'project1.exe',read of address 0000000.错误.
解决方案 »
- 如何调用excel打印 进行打印预览和打印
- Delphi 数据库应用程序怎么脱离开发环境?
- 怎么获得指定磁盘分区的大小??
- ★★★★★★ 征集Delphi版2003年风云人物和风云帖★★★★★★
- 关于数据备份!
- 请教版主及高手们:如何实现类似ACDSEE的ZIP文件内容浏览??谢谢!!!!
- 高手请进,tpagecontrol问题,全部能回答还另加分
- 奥运盘点:奥运报道搜狐称雄,奥运服务雅虎独秀
- 获得存储过程参数类型问题
- 请问,IMAGE控件里有一个图片,它背景为红色,我现在想把它背景设为透明(即跟FORM的背景色一样,不知怎么做?)
- 谁有Bold for Dlephi的注册码
- 连接oracle 的问题:
TempStream : TMemoryStream;
begin
TempStream := TMemoryStream.Create;
image1.Picture.Bitmap.SaveToStream(tempstream);
TempStream.Position := 0;
image2.Picture.Bitmap.LoadFromStream( TempStream);
TempStream.Free;
end;
这样就对了。
提示Access violation at address 0045c00 in module 'project1.exe',read of address 0000000.错误.
var
TempStream : TMemoryStream;
begin
TempStream := TMemoryStream.Create;
image1.Picture.Bitmap.SaveToStream(tempstream);
TempStream.Position := 0;
image2.Picture.Bitmap.LoadFromStream( TempStream);
TempStream.Free;
end;
你的图像文件是什么?能传个过来看看吗?
[email protected]
你先看看 TJPegImage 的帮助 和 例子。
TPictureEx = Class(TPicture)
public
procedure SaveToStream(Stream: TStream);
procedure LoadFromStream(Stream: TStream);
end;
procedure TPictureEx.LoadFromStream(Stream: TStream);
var
GraphClassName: String;
0A ClassNameLen: Integer;
GraphClass: TGraphicClass;0D
NewGraphic: TGraphic;
begin
Stream.Read(ClassNameLen,Sizeof(ClassNameLen));
GraphClassName := StringOfChar(#0,ClassNameLen);
Stream.Read(GraphClassName[1],ClassNameLen);
GraphClass := FileFormats.FindClassName(GraphClassName);
if GraphClass = nil then
raise EInvalidGraphic.CreateFmt(SUnknownClassName, [GraphClassName]); NewGraphic := GraphClass.Create;
try
NewGraphic.OnProgress := Progress;
NewGraphic.LoadFromStream(Stream);
except
NewGraphic.Free;
raise;
end;
Graphic:=NewGraphic;
end;
procedure TPictureEx.SaveToStream(Stream: TStream);
var
GraphClassName: String;
0A ClassNameLen: Integer;
begin
if Graphic<> nil then
begin
GraphClassName := Graphic.ClassName;
ClassNameLen := Length(GraphClassName);
Stream.Write(ClassNameLen,Sizeof(ClassNameLen));
Stream.Write(GraphClassName[1],ClassNameLen);
end;
end;然后把它加入到一个临时工程中,去掉调试选项,编译这个工程,把生成的Graphics.dcu拷贝到...\Delphi5\lib中.选中调试选项编译,拷贝到...\Delphi5\lib\debug中.
然后在你的程序中使用TPictureEx,用它的SaveToStream保存,用它的LoadFromStream读.
这个类就是在SaveToStream时保存了Picture.Graphic.ClassName,这样在读的时候就知道图像是什么格式了.
这个例子去看一下。
var
TempStream : TMemoryStream;
begin
TempStream := TMemoryStream.Create;
TJPEGImage(Image1.Picture.Graphic).SaveToStream(tempstream);
TempStream.Position := 0;
TJPEGImage(Image2.Picture.Graphic).LoadFromStream(TempStream);
TempStream.Free;
end;
可以成功,但前提是image2中已有JPEG图像。
var
TempStream : TMemoryStream;
begin
TempStream := TMemoryStream.Create;
image1.Picture.Bitmap.SaveToStream(tempstream);
TempStream.Position := 0;
image2.Picture.Bitmap.LoadFromStream( TempStream);
TempStream.Free;
end;
如果是jpg ,user 加上JPEG