Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.08.06;
Скачать: CL | DM;

Вниз

Определить DPI у JPEG-а   Найти похожие ветки 

 
DelphiFan   (2006-02-06 13:41) [0]

Странная вещь получается.
Определяю DPI у JPEG-а по известной процедуре, она говорит, что DPI = 120.

Если посмотреть на свойства картинки через Проводник, то говорится, что DPI = 96 (у меня есть мысль, что это DPI монитора).

Есть ли 100-процентный способ узнать DPI у картинки?


 
DelphiFan   (2006-02-06 14:11) [1]

Пользуюсь такими процедурами:

procedure GetResJpg(JPGFile: string);
const
 BufferSize = 50;
var
 Buffer: string;
 Index: integer;
 FileStream: TFileStream;
 DP: Byte;
begin
 FileStream := TFileStream.Create(JPGFile, fmOpenReadWrite);
 try
   SetLength(Buffer, BufferSize);
   FileStream.Read(Buffer[1], BufferSize);
   Index := Pos("JFIF" + #$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" + #$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;


 
DelphiFan   (2006-02-09 14:20) [2]

Здесь есть шанс получить ответ?


 
Jeer ©   (2006-02-09 15:57) [3]

Файл изображения не может быть привязан заранее к физ.параметрам устройства отображения (монитор, принтер и тп).
Отсюда и исходи.


 
Дмитрий Белькевич ©   (2006-02-11 16:02) [4]


> Файл изображения не может быть привязан заранее к физ.параметрам
> устройства отображения (монитор, принтер и тп).


Случаи всякие бывают.


> Есть ли 100-процентный способ узнать DPI у картинки?


Смотри формат jpeg. Если в файле есть привязка к физическим точкам, думаю, это будет описано.



Страницы: 1 вся ветка

Текущий архив: 2006.08.06;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.033 c
8-1139222461
DelphiFan
2006-02-06 13:41
2006.08.06
Определить DPI у JPEG-а


15-1152183944
KaLLeKa
2006-07-06 15:05
2006.08.06
Научите дурака)


2-1152955001
Ayvan
2006-07-15 13:16
2006.08.06
bold or not?)


15-1151432743
Nic
2006-06-27 22:25
2006.08.06
У кого какая клавиатура?


15-1152709956
syte_ser78
2006-07-12 17:12
2006.08.06
Дело №