我加载图片总是出错,求救(100分)

  • 主题发起人 主题发起人 xiaowei78
  • 开始时间 开始时间
X

xiaowei78

Unregistered / Unconfirmed
GUEST, unregistred user!
我在把bmp图片加入image过程中,常常报错:
access violation at address 00492F82 in module 'xxx.EXE'.read of address 856E9002.
特别是很大的图,或是384*256像素的图
而且,如果对图像进行处理的步骤多了,也会出错。
是不是数据溢出啊?
请问如何解决
 
具体代码贴出来看看!
 
如果是bmp图象最好是用picture.bitmap.loadfromfile
 
我可能没说清楚
我在程序里加了多步恢复,
出错就在恢复语句上,
加进图是对的,但只要触发下列过程就有错:
procedure Tmdichild.DoUnDo;
var
w,h : integer;
sl : PbyteArray;
begin
sourcebitmap.Width := Sizes[Entry[StackSize-1]].x;
sourcebitmap.Height := Sizes[Entry[StackSize-1]].y;
for h := 0 to sourcebitmap.Height-1 do
begin
sl := sourcebitmap.ScanLine[h];
for w := 0 to sourcebitmap.Width - 1 do
begin
sl[w*3+2]:= Pic[Entry[StackSize-1],w,h].red;---显示这里有错
sl[w*3+1] := Pic[Entry[StackSize-1],w,h].green;
sl[w*3]:= Pic[Entry[StackSize-1],w,h].blue;
end;
end;
SetLength(Pic[Entry[StackSize-1]],0,0);
Dec(StackSize);
Full := FALSE;
SetLength(Entry,StackSize);
if StackSize = 0 then
begin
Empty := TRUE;
mainform.ActUndo.Enabled:=false;
end;
end;
 
有没有可能是这句出错
sl[w*3+2]:=   w*3+2超出了h的范围???
 
sl := sourcebitmap.ScanLine[h];
改成sl := sourcebitmap.ScanLine[h+1];试试
 
改成h+1以后就超出scanline范围了啊?
"scan line index out of range "
 
你的图可能不是 pf24bit的
 
我测试了一下,在mdi模式下,用image导入一张bmp图(256色),用image.mouse.move和scanline结合,发现时不时出现报错,一般是我鼠标移到image最上方的时候,报错代码0049a824,不解???
 
你是256色的图,按24位图处理,当然内存溢出错误。
procedure Tmdichild.DoUnDo;
var
w,h : integer;
sl : PbyteArray;
begin
sourcebitmap.Width := Sizes[Entry[StackSize-1]].x;
sourcebitmap.Height := Sizes[Entry[StackSize-1]].y;
/////////////////////////////////////////////////////////////
sourceBitmap.PixelFormat:=pf24bit;
///////////////////////////////////////////////////////////
for h := 0 to sourcebitmap.Height-1 do
begin
............................
 
楼上说得太对了,我试了,没错!

对于8位的,这样就行
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
k:integer;
row:pbytearray;
begin
row:=image1.Picture.Bitmap.ScanLine [y];
k:=row[x];
form1.Caption :=inttostr(k);
end;
 
感谢各位帮助
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部