簡體   English   中英

加載圖像時Delphi流讀取錯誤

[英]Delphi stream read error when loading image

我的程序加載了很多圖像,但是我有一個圖像問題,該圖像使用了游戲中的打印屏幕按鈕從游戲中復制圖像,但是它像其他所有圖像一樣都是bmp。 每當我運行程序時,它說project1.exe引發異常類Ereaderror,消息“流讀取錯誤”過程已停止。

代碼是這樣的:

procedure TForm1.FormCreate(Sender: TObject);
var path, destination:string;
begin
path:=paramstr(0);
destination:=extractfilepath(path)+'Leagueoflegendsdesktop.bmp';
image1.Picture.LoadFromFile(destination);
end;

哪個是對的。 你對我有什么建議?

唯一的解釋是該文件不是有效的Windows位圖(可能是文件被截斷了)。 或者,該文件使用Delphi不支持的某些深奧格式。 例如,它使用游程長度編碼。

如果該文件不存在,則會出現另一種錯誤,表明該文件不存在。 因此,該文件存在但無法加載。 嗯,這不是Windows位圖。

診斷此步驟的第一步是查看文件的格式。 加載位圖文件頭,並檢查該值是否有意義。 可能最簡單的方法是在調試器下運行程序時逐步執行VCL代碼。 啟用“調試DCU”選項,以便您可以執行此操作。 Graphics單元的TBitmap.ReadStream中設置一個斷點,然后從那里獲取斷點。

說了這么多,完全可以避免嘗試調試問題。 如果可以將圖像加載到圖像編輯器中,只需以Delphi可以讀取的格式保存圖像的新副本。 例如,普通的Windows原始位圖,或者甚至更好的是可以接受壓縮的PNG文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM