Форум: "Media";
Текущий архив: 2006.08.06;
Скачать: [xml.tar.bz2];
ВнизОпределить 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 вся ветка
Форум: "Media";
Текущий архив: 2006.08.06;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.012 c