им пытаются загрузить PNG изображение в TImage с помощью библиотеки PNGImage,Загрузка PNG в TImage
каждый раз, когда я действительно
Image1.Picture.LoadFromFile('c:\c.png');
я получаю:
Файл считывании является недействительный образ «Portable Network Graphics» , поскольку он содержит недопустимый заголовок. Этот файл может быть поврежден, попробуйте получить его снова
Теперь я думаю, эта проблема вызвана этими линиями (из библиотеки 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;
Я попытался изменить Char к AnsiChar, но это не работает.
Я хотел бы сам исследовать этот файл PNG. Не могли бы вы сделать его доступным? –
Вы имеете в виду изображение im loading? здесь: http://google.uci.edu/images/googleicon.png –
Какая версия Delphi? –