線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3884
推到 Plurk!
推到 Facebook!

请问Graphic.LoadFromStream为什么会报内存错误?

缺席
rainxie
一般會員


發表:20
回覆:27
積分:14
註冊:2008-03-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-08-01 09:54:35 IP:116.226.xxx.xxx 訂閱
我想让Timage从memory里读取图片,所以写了下面的代码进行测试,
因为图片格式为emf,所以用graphic.loadfromstream,好像不太对,
点击Button1时在红色代码处报错“Access violation at address 00462B3 in module 'Project1.exe'”
想向大家请教下,不好意思,涉猎较少,问的很初级,谢谢了!

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DBCtrls, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Image1: TImage;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
DestStream:TMemoryStream;
begin
DestStream:=TMemoryStream.Create;
DestStream.LoadFromFile('D:\2.emf');
DestStream.Position:=0;
image1.Picture.Graphic.LoadFromStream(DestStream);
DestStream.Free;
end;
end.
編輯記錄
rainxie 重新編輯於 2008-08-01 11:33:30, 註解 無‧
rainxie 重新編輯於 2008-08-01 12:36:52, 註解 無‧
socat
一般會員


發表:1
回覆:4
積分:1
註冊:2008-07-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-08-05 01:33:32 IP:123.131.xxx.xxx 訂閱
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DBCtrls, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Image1: TImage;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
DestStream:TMemoryStream;
begin
DestStream:=TMemoryStream.Create;
DestStream.LoadFromFile('D:\2.emf');
Image1.Picture.Bitmap.LoadFromStream(DestStream); //这样可以载入 BMP 图片
DestStream.Free;
end;
end.


也可以先声明一个 jpg 或者 bitmap 变量, 利用变量载入后,再赋值给image
我计算机上没有emf图片 , 没有测试过 emf图片 希望能给你一些启示~
christie
資深會員


發表:28
回覆:299
積分:475
註冊:2005-03-25

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-08-05 08:15:13 IP:203.73.xxx.xxx 未訂閱
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DBCtrls, StdCtrls, ExtCtrls, JPEG;
type
. . .
------
What do we live for if not to make life less difficult for each other?
rainxie
一般會員


發表:20
回覆:27
積分:14
註冊:2008-03-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-08-05 16:06:13 IP:116.226.xxx.xxx 訂閱
唉,两个都不行,第一个显示bitmap格式错误,第二个错误跟原来的一样。
編輯記錄
rainxie 重新編輯於 2008-08-05 16:09:26, 註解 無‧
pprayer
高階會員


發表:35
回覆:185
積分:174
註冊:2002-03-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-10-31 14:34:27 IP:59.120.xxx.xxx 訂閱

你如果用這樣的方法來獨JPEG的話也應該會有格式不符的錯誤,
可能是因為TImage沒辦法辨認JPEG的格式。

我是建議你用SaveToClipboardFormat LoadFromClipboardFormat 來處理TImage不支援的圖片格式
系統時間:2017-12-18 7:23:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!