我嘗試每一次我都加載PNG到的TImage
Image1.Picture.LoadFromFile('c:\c.png');
我得到一個PNG圖像加載到使用PNGImage庫的TImage,
:
正在讀取的文件不是有效的「便攜式網絡圖形」圖像 ,因爲它包含無效的標頭。該文件可能已損壞,嘗試 再次獲得它
現在,我想這個問題是由這些線(從PngImage庫)引起的:
{Characters for the header}
const
PngHeader: Array[0..7] of Char = (#137, #80, #78, #71, #13, #10, #26, #10);
{Loads the image from a stream of data}
procedure TPngObject.LoadFromStream(Stream: TStream);
var
Header : Array[0..7] of Char;
HasIDAT : Boolean;
{Chunks reading}
ChunkCount : Cardinal;
ChunkLength: Cardinal;
ChunkName : TChunkName;
begin
{Initialize before start loading chunks}
ChunkCount := 0;
ClearChunks();
{Reads the header}
Stream.Read(Header[0], 8);
{Test if the header matches}
if Header <> PngHeader then
begin
RaiseError(EPNGInvalidFileHeader, EPNGInvalidFileHeaderText);
Exit;
end;
我試圖改變字符到ANSIChar一致,但它沒有工作。
我很想自己調查此PNG文件。你能否讓它可用? – 2013-03-10 11:23:57
您的意思是圖片im loading?這裏:http://google.uci.edu/images/googleicon.png – 2013-03-10 11:24:51
哪個版本的Delphi? – 2013-03-10 11:25:23