Главная страница
    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.46 MB
Время: 0.011 c
2-1152790137
novill
2006-07-13 15:28
2006.08.06
Какой тип лучше использовать для небольших строк?


2-1153224894
VALUA
2006-07-18 16:14
2006.08.06
Отчет - данные из разных таблиц - 2 страницы


2-1153484990
Itonixxx
2006-07-21 16:29
2006.08.06
Работа со строками


5-1137486493
scorp123
2006-01-17 11:28
2006.08.06
Проблема со свойством Text в ComboBox


2-1153368920
Milashka
2006-07-20 08:15
2006.08.06
Сортировка по клику на заголовке





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский