Delphi World - Получить или установить разрешение JPEG
Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Получить или установить разрешение JPEG

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

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 World © Выпуск 2002 - 2017
Автор проекта: Эксклюзивные курсы программирования