Получить или установить разрешение JPEGDelphi , Графика и Игры , JPEGПолучить или установить разрешение JPEG
Оформил: DeeCo procedure GetResJpg(JPGFile: string); const BufferSize = 50; var Buffer: string; Index: integer; FileStream: TFileStream; HorzRes, VertRes: Word; DP: Byte; Measure: string; begin FileStream := TFileStream.Create(JPGFile, fmOpenReadWrite); try SetLength(Buffer, BufferSize); FileStream.Read(buffer[1], BufferSize); Index := Pos('JFIF' + #0$00,buffer); if Index > 0 then begin FileStream.Seek(Index + 6, soFromBeginning); FileStream.Read(DP, 1); case DP of 1: Measure := 'DPI'; //Dots Per Inch 2: Measure := 'DPC'; //Dots Per Cm. end; FileStream.Read(HorzRes, 2); // x axis HorzRes := Swap(HorzRes); FileStream.Read(VertRes, 2); // y axis VertRes := Swap(VertRes); end finally FileStream.Free; end; end; procedure SetResJpg(name: string; dpix, dpiy: Integer); const BufferSize = 50; DPI = 1; //inch DPC = 2; //cm var Buffer: string; index: INTEGER; FileStream: TFileStream; xResolution: WORD; yResolution: WORD; _type: Byte; begin FileStream := TFileStream.Create(name, fmOpenReadWrite); try SetLength(Buffer, BufferSize); FileStream.Read(buffer[1], BufferSize); index := POS('JFIF' + #0$00,buffer); if index > 0 then begin FileStream.Seek(index + 6, soFromBeginning); _type := DPI; FileStream.write(_type, 1); xresolution := swap(dpix); FileStream.write(xresolution, 2); yresolution := swap(dpiy); FileStream.write(yresolution, 2); end finally FileStream.Free; end; end; Вот перевод контента на русский язык: Это пары процедур Delphi, которые манипулируют информацией о разрешении в файлах JPEG. Первая процедура Вот подробный анализ, что каждая процедура делает: GetResJpg
SetResJpg
Некоторые примечания к коду:
В целом, эти процедуры seem to be функциональны, но могут потребовать рефакторинга и дополнительного тестирования для обеспечения их корректности и устойчивости. В статье описывается код на Delphi для получения и установки разрешения JPEG-изображения. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |