Чтение (запись) файла в (из) Image черз буфер
Добавлено: 29.02.2016 15:38:40
При открытии графического файла помимо отображения рисунка хотелось бы прочитать и его заголовок. Для этого хотелось бы использовать что-то типа такой процедурц.
Можно было бы после проверки заголовка загрузить файл с диска:
Но не хотелось бы дважды обращаться к диску.
Далее. Перед сохранении графического файла на диске необходимо "в рукопашную" откорректировать его заголовок, т.е. из Image выгрузить графический файл сначала в буфер, а после коррекции заголовка перенести его на диск.
- Код: Выделить всё
procedure TForm1.ReadDPI();
var
Buffer: ^Byte;
Stream: TFileStream;
Size: LongInt;
begin
Stream := TFileStream.Create(UTF8ToSys(OpenPictureDialog1.FileName), fmOpenRead);
try
Size := Stream.Size;
GetMem(Buffer, Size);
try
Stream.ReadBuffer(Buffer[0], Size);
... // Здесь проверка заголовка графического файла.
Image1.Picture.LoadFrom...(Buffer); // Как это можно сделать?
finally
FreeMem(Buffer);
end;
finally
Stream.Free;
end;
end;
Можно было бы после проверки заголовка загрузить файл с диска:
- Код: Выделить всё
...
ReadDPI();
Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
...
Но не хотелось бы дважды обращаться к диску.
Далее. Перед сохранении графического файла на диске необходимо "в рукопашную" откорректировать его заголовок, т.е. из Image выгрузить графический файл сначала в буфер, а после коррекции заголовка перенести его на диск.