webForumDet fria alternativet

Läsa DPI-sträng från bild?

PHP

6 svar · 789 visningar · startad av Guldstrand

Medlem sedan juli 20041 271 inlägg
Frågan#1

Är detta en "ok" funktion för att visa DPI för en bild?
Om inte, vilken funktion är bättre/snabbare?

function get_dpi($filename){

    $a = fopen($filename,'r');
    $string = fread($a,20);
    fclose($a);

    $data = bin2hex(substr($string,14,4));
    $x = substr($data,0,4);
    $y = substr($data,4,4);
    return array(hexdec($x),hexdec($y));

}
Medlem sedan juli 20041 271 inlägg
#2

*bump* :r

Medlem sedan juni 20031 837 inlägg
#3

Kan tyvärr inget om hur man hämtar den informationen men lagras den alltid likadant för alla bildformat?
Gäller den där koden för ett speciellt format och i så fall vilket?

Medlem sedan juli 20041 271 inlägg
#4

The_Hulk skrev:

Gäller den där koden för ett speciellt format och i så fall vilket?

Ajdå.. glömde visst att skriva det.
Detta ska endast gälla för jpeg-filer.

Medlem sedan feb. 20041 816 inlägg
#5

Jag hade använt en bildkomponent, t.ex. ImageMagick, men det är jag det.

Medlem sedan mars 20007 896 inlägg
#6

Varken GD eller PHPs implementation av ImageMagick kan läsa ut DPI från bilder (jag är åtminstone säker på att GD inte har klarat av detta). Om man däremot använder ImageMagick via ett shell (system() t.ex.), så bör det gå.

Vad jag har uppfattat gällande ovanstående funktion, är att den inte alltid är pålitlig. Jag har t.ex. hört att bilder från vissa (alla?) digitalkameror inte kan avläsas. Anledningen bör vara att JPEG-formatet tillåter vissa headers på olika positioner i start-blocket. Så lita inte till 100% på den, men det är antagligen det lättaste sättet att få ut DPI-informationen.

Medlem sedan juni 20001 251 inlägg
#7

Om man har tillgång till, eller möjlighet att installera, är Exiftool eller Imagemagick's identify säkra kort. PHP har även en funktion för att läsa exif-data - exif_read_data. Har man inte tillgång till något av detta finns det flera bibliotek som fungerar för jpeg och tiff, t.ex. Exifier.

262 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)