Nee hoor Bert-Jan... dat is zeer zeker geen domme vraag.
Er zijn voor een aantal bestandsformaten inderdaad methoden om deze informatie terug te halen.
Voor JPEG word die informatie ergens in een bitmasker weggeschreven (lees: binair)
Er zijn een aantal open source libraries beschikbaar om die info te krijgen, maar het komt vaak neer op hetzelfde patroon.
Een bekende library is de \"PHP JPEG Metadata Toolkit\", maar ik meen dat deze beperkt is tot JPEG informatie.
EXIF (
http://php.net/exif) is een andere manier, maar is aan wat voorwaarden verbonden en ik weet niet uit mijn
hoofd of die ook de dpi ondersteunt.
Andere images slaan deze informatie vaak helemaal niet op en worden dan met een ingestelde standaardwaarde
gebruikt (bijv bij printen), waardoor deze er soms helemaal niet uitziet zoals de bedoeling was.
Maar dan nog loop je eigenlijk veel vaker tegen een ander probleem aan: heel veel image converters,
waaronder GD voor PHP, slaan deze informatie gewoonweg helemaal niet op. Waardoor je veelal een gok moet doen
voor de DPI. Gelukkig is 96 DPI wel vaak een defaultsetting in vele overige pakketten.
Een veelgehanteerde methode is deze:
lees de JPEG direct, met name bytes (karakters) 14-18.
- byte 14: 01, X and Y density unit specifier (00: none, pixel ratios, 01: DPI,02: DPC)
- bytes 15-16: horizontal pixel density, ofwel de horizontale densiteit
- byte 16-18: vertical pixel density, ofwel vertical densiteit
in principe is het dan dus zo dat indien byte 14 de waarde 01 heeft, het volgende paar van 2 bytes (4 in totaal dus)
de DPI aangeven. (Even uit mijn hoofd: ik weet niet of dat in Big-endian of Little-endian order is... deze orders houden in of je de binaire tekenreeks (8 bits per byte) van links naar rechts moet lezen of juist andersom)
Ik meen me verder ergens nog te herinneren dat voor JPEG tegenwoordig eigenlijk niet meer 1 standaard is en dat sommige digitale camera\'s
een ander info formaat hanteren. Zodoende geeft de JPEG niet meer in alle gevallen de correcte informatie terug.
Ik hoop dat je hier iets mee kan?
Anders verneem ik dat vast wel van je
