Check ob Foto existiert

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Check ob Foto existiert

    Hallo,

    Ich hätte da folgendes Problem.

    Ich habe einen Fotoupload bei dem ich ausschließlich JPGs zulasse.
    Heute musste ich feststellen, dass es auch JPGs gibt die nicht in RGB,
    sondern in CMYK Farben vorliegen.

    Das führt leider dazu dass die Fotos upgeloadet werden,
    jedoch auf der Webseite nicht angezeigt werden können.

    Meine Frage lautet demnach:
    kann ich via PHP herausbekommen, ob ein Foto im RGB oder CMYK Modus vorliegt?

    Versuche mit getimagesize, file_exist, etc. waren leider negativ.
    Eine Anfragemöglichkeit, ob ein Foto angezeigt wird oder nicht, wirds vermutlich nicht geben.

    Ich verwende Image Magick.

    Danke und schöne Grüße,
    Max

  • #2
    PHP: Imagick::identifyImage - Manual

    Gibt u.a. Colorspace zurück.

    Auf der Konsole gehts natürlich auch: http://www.imagemagick.org/script/identify.php

    Kommentar


    • #3
      Läuft getimagesize auf einen Fehler oder warum ist das negativ?
      Das gibt doch auch zurück ob CMYK oder RGB...?

      Kommentar


      • #4
        Zitat von scream479 Beitrag anzeigen
        Hallo,

        Ich hätte da folgendes Problem.

        Ich habe einen Fotoupload bei dem ich ausschließlich JPGs zulasse.
        Heute musste ich feststellen, dass es auch JPGs gibt die nicht in RGB,
        sondern in CMYK Farben vorliegen.

        Das führt leider dazu dass die Fotos upgeloadet werden,
        jedoch auf der Webseite nicht angezeigt werden können.
        CMYK ergibt im WWW auch nicht viel Sinn. Die Funktion imagecreatefromjpg() kann solche Dateien aber lesen und nach TrueColor-RGB convertieren. Mit
        PHP-Code:
        // einlesen und nach RGB wandeln
        $img_rsrc imagecreatefromjpeg($cmyk_file);

        // hier bspw. Thumbnail erzeugen
        // ...

        // als standardkonformes JPEG speichern
        imagejpeg($img_rsrc$rgb_file); 
        kannst diese Dateien (oder zumindest eine Vorschaugrafik davon) wieder für Webbrowser "sichtbar" machen. Das erspart das Herumfummeln mit der CMYK-Erkennung. Da CMYK-JPEGs nicht standardisiert sind, gibt es auch keine standardisierte Vorgehensweise, diese 100-prozentig zu erkennen.

        Ein paar Beispiele, wie es gemacht wird:
        - in Javas ImageIO
        - in der Python Imaging Library
        - in der LibGD (die hinter den "Standard"-Image-Funktionen von PHP steckt)

        - oder auf die primitive Art. (Obwohl ich da meine Zweifel habe, dass das bei allen CMYK-JPEGs funktioniert)

        Ich verwende Image Magick.
        Vielleicht hilft die gleiche Vorgehensweise wie oben anhand der Image-Funktionen beschrieben: Grafik einlesen und als JPEG wieder speichern. Wenn die GDLib das kann, sollte es mit Image Magick erst recht möglich sein.

        Zitat von mkb_webprint
        Läuft getimagesize auf einen Fehler oder warum ist das negativ?
        Das gibt doch auch zurück ob CMYK oder RGB...?
        Das würde mich auch mal interessieren, was getimagesize() so zurückliefert (besonders die Werte für 'channels' und 'bits'). Und dabei das $imageinfo-Array nicht vergessen.
        Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

        Kommentar

        Lädt...
        X