mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Di 16.04.2024 12:21 Benutzername: Passwort: Auto-Login

Thema: [php] dpi eines bildes auslesen? vom 09.03.2004


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> [php] dpi eines bildes auslesen?
Seite: 1, 2, 3  Weiter
Autor Nachricht
lordle
Threadersteller

Dabei seit: 14.12.2001
Ort: Augsburg
Alter: 48
Geschlecht: Männlich
Verfasst Di 09.03.2004 10:45
Titel

[php] dpi eines bildes auslesen?

Antworten mit Zitat Zum Seitenanfang

Gibt es eine Möglichkeit, mit Hilfe eines PHP-Skriptes die dpi-Größe eines Bildes auszulesen?
Ich möchte sichergehen, dass nur 300dpi-Bilder hochgeladen werden! Aber aus getimagesize() kann man das nicht erkennen!
  View user's profile Private Nachricht senden
Waschbequen
Account gelöscht


Ort: -

Verfasst Di 09.03.2004 10:49
Titel

Antworten mit Zitat Zum Seitenanfang

Nope, ich glaube das ist generell nicht möglich, egal mit welchem Tool. Da gab es hier schonmal nen Thread. (Aber rein interessehalber, falls es doch jemand besser weiß: wo werden die Infos darüber eigentlich gespeichert?)
 
Anzeige
Anzeige
lordle
Threadersteller

Dabei seit: 14.12.2001
Ort: Augsburg
Alter: 48
Geschlecht: Männlich
Verfasst Di 09.03.2004 11:08
Titel

Antworten mit Zitat Zum Seitenanfang

naja, im header der datei werden alle notwendigen daten gespeichert!

aber das wär dann schon der overkill, die datei binär auslesen, konvertieren und den header durchparsen, bis die dpi-zahl kommt! * grmbl *
  View user's profile Private Nachricht senden
marcusm

Dabei seit: 06.05.2002
Ort: europa
Alter: 45
Geschlecht: Männlich
Verfasst Di 09.03.2004 11:45
Titel

Antworten mit Zitat Zum Seitenanfang

Und wie wäre es aus den Maßen der Datei und der Dateigröße die evtl. dpi Zahl zu errechnen und auf die 300dpi abzugleichen???

Ist nur ne Idee... Hä?

Gruß
Marcus
  View user's profile Private Nachricht senden
Account gelöscht


Ort: -
Alter: -
Verfasst Di 09.03.2004 11:50
Titel

Antworten mit Zitat Zum Seitenanfang

manche formate, aber nur manche, speichern zusätzliche infos im dateiheader, die mit getimagesize() ebenfalls ausgelesen werden. schau dir dazu mal die doku an. ansonsten wüßte ich auch keine möglichkeit, wie man das testen könnte, höchstens mit bildmanipulationssoftware wie gdlib oder imagemagick (?)
 
lordle
Threadersteller

Dabei seit: 14.12.2001
Ort: Augsburg
Alter: 48
Geschlecht: Männlich
Verfasst Di 09.03.2004 15:42
Titel

gelöst!

Antworten mit Zitat Zum Seitenanfang

also das hat mir jetzt keine Ruh gelassen.
Es gibt wirklich keine Funktion in PHP oder gdlib, die die dpi-grösse eines Bildes auslesen oder gar bearbeiten kann!

Aber zumindest in einem JPG (und darum geht es mir) werden im Header wie oben bereits erwähnt, die dpi-auflösung gespeichert. Das geschieht in Byte 15 und 16. Ich hab mir ne kleine Funktion geschrieben, die das ganze ausliest.
Die Abfrage, ob $datei auch wirklich ein JPG ist, hab ich jetzt mal aussen vor gelassen und sollte zur Fehlervermeidung vorher geprüft werden!
Gerade bei 300dpi Bildern sollte aber darauf geachtet werden, dass meine Lösung das gesamte Bild in den Speicher lädt und durchsucht! Kann also leicht an die Grenzen stossen! Also nach dem Öffnen sofort wieder schliessen!
Code:
// dpi-Größe auslesen
function dpi_auslesen_jpg($datei) {
   $fh = fopen($datei, 'r');
   $header = fread($fh, 16);
   fclose($fh);
   $aufloesung = unpack('x14/ndpi', $header);
   return $aufloesung['dpi'];
}
  View user's profile Private Nachricht senden
Benutzer 1103
Account gelöscht


Ort: -

Verfasst Di 09.03.2004 15:55
Titel

Antworten mit Zitat Zum Seitenanfang

WOW...bin begeistert...es funktioniert!

//EDIT: kannst du vielleicht erläutern WARUM genau das funktioniert? was genau macht dieses unpack?


Zuletzt bearbeitet von am Di 09.03.2004 16:01, insgesamt 1-mal bearbeitet
 
Lazy-GoD
Moderator

Dabei seit: 26.11.2001
Ort: -
Alter: 54
Geschlecht: Männlich
Verfasst Di 09.03.2004 16:16
Titel

Antworten mit Zitat Zum Seitenanfang

schwampf hat geschrieben:
was genau macht dieses unpack?

http://de.php.net/unpack

BTW, lordle, es werden nur die ersten 16 bytes der Datei ausgelesen, nicht die ganze Datei...

Code:
$header = fread($fh, 16);
  View user's profile Private Nachricht senden
 
Ähnliche Themen [css] div positionierung eines bildes
Dreamweaver => Verlinkung eines Bildes
Farbüberlagerung eines transparenten Bildes?
Probleme mit Vergrößerung der sebsterstellten Bildes
Teile eines Bildes farbig
umbenennen eines Bildes : php [solved]
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2, 3  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.