Roland: Frage zu erweiterten image-Funktionen

Liebe Experten,

das ich Pixelmaße über die (sofern auf dem Server installierten/verfügbaren) php-Funktionen wie createimage...imagecopyresized etc. ändern kann ist mir bekannt.
Aber meine Frage lautet:
Kann man auch die Dokumentgröße (wie z.B. neben den Pixelangaben in Photoshop einstellbar) per php-Funktion einstellen?

Ich versuche per Stapelverarbeitung Grafiken mit stets identischen Pixelmaßen mit 300 dpi und 2cmx2cm Dokumentgröße zu erstellen und habe ausser Pixel- und Formatangaben nichts passendes für mein Vorhaben gefunden.

Sind diese Einstellungen überhaupt über die php-imagefunktionen möglich, falls ja, wie lautet die Funktion und die Parameter?

Danke für eure Anregungen im voraus!

  1. Schönes Thema.

    Zunächst vergiss mal Auflösung und Ausmaße. Eigentlich gibt es immer nur die Anzahl der Pixel (kleinste Bildeinheit) eines Bildes. Alles andere entsteht immer nur bei der Ausgabe (Bildschirm/Drucker).

    das ich Pixelmaße über die (sofern auf dem Server installierten/verfügbaren) php-Funktionen wie createimage...imagecopyresized etc. ändern kann ist mir bekannt.

    Nur das zählt.

    Kann man auch die Dokumentgröße (wie z.B. neben den Pixelangaben in Photoshop einstellbar) per php-Funktion einstellen?

    Nein, weil es sie nicht gibt, jedenfalls nicht als Eigenschaft der Rastergrafik. In PS gibt es das, weil es um die Ausgabe der Grafik auf z.b einem Drucker geht (auf dem Bildschirm ist es damit ja auch schon Essig, da es ja Zoomfunktionen gibt).

    Wie du auch siehst, sind die drei Parameter: Pixeldimensionen / Dokumentdimensionen / Auflösung in PS nicht frei wählbar. Es entsteht bei einer Grafik 2000x1000px und einer Auflösung von 20 px/cm immer ein Bild von 100cm x 50 cm. Drehst du an einem Parameter, werden die anderen nachjustiert.

    Ich versuche per Stapelverarbeitung Grafiken mit stets identischen Pixelmaßen mit 300 dpi und 2cmx2cm Dokumentgröße zu erstellen und habe ausser Pixel- und Formatangaben nichts passendes für mein Vorhaben gefunden.

    Du hast die Pixeldimensionen korrekt? Gut. Alles andere ist Sache der Anzeige. Zum Beispiel des Browsers, des Nutzers, der sich das Bild runterlädt, etc...

    Was möchtest Du denn machen?

    Cheers,
    Baba

    1. Kann man auch die Dokumentgröße (wie z.B. neben den Pixelangaben in Photoshop einstellbar) per php-Funktion einstellen?

      Nein, weil es sie nicht gibt, jedenfalls nicht als Eigenschaft der Rastergrafik.

      Jein - die Druckauflösung kann sehrwohl in hinterlegt werden - in JPEG z.B. genauer gesagt in dessen JFIF-Container. Das jein deshalb, weil JPEG das Grafikformat ist (genau genommen keine Rastergrafik) ist und JFIF "nur" der Container.

      In PNG-Files z.B. ist die Information als Verhältnis zu einer Einheit angegeben und lässt sich problemlos mit einer geeigneten Software hinterlegen:
      http://www.libpng.org/pub/png/book/chapter11.html#png.ch11.div.8

      Wie man diese Informationen mit imagejpg() oder imagepng() hinterlegt (und ob das überhaupt geht) weiß ich nicht - in der PHP-Doku konnte ich dazu nichts finden.

      "da es ja Zoomfunktionen gibt"

      Das ist ein äußerst schlechtes Argument :)

      1. "da es ja Zoomfunktionen gibt"
        Das ist ein äußerst schlechtes Argument :)

        Das war kein Argument, sondern eine Aussage, die da war:

        In Photoshop kann man die Pixelmaße des Bildes und die Dokumentmaße in cm einstellen. Das sich letztere an das Druckmedium richten und nicht die Darstellung auf dem Bildschirm, kann man daran erkennen, dass sich die "Abmaße" beim Zoomen ständig ändern.

        Diese Aussage kann wahr sein oder falsch, aber nicht schlecht. Und ich denke, sie ist wahr.

        Eine Frage noch: wenn Du die Druckauflösung im JFIF-Container hinterlegst: wer (welche Software) interessiert sich dann für diese. Inwiefern wird diese Angabe wann berücksichtigt?

        Cheers,
        Baba

        1. Hallo,

          "da es ja Zoomfunktionen gibt"
          Das ist ein äußerst schlechtes Argument :)

          okay, formulieren wir's anders: Die Software weiß nicht, wie groß der angeschlossene Monitor ist, und ob die 600x400px große Grafik auf diesem Monitor 80mm oder 130mm breit erscheint. Ja, man kann die tatsächliche Auflösung des Monitors (dpi) in den meisten Desktop-Systemen konfigurieren, das tut aber kaum jemand. Die meisten Nutzer werden da wohl die Defaulteinstellung von 72 oder 96dpi (selten auch 120dpi) stehenlassen, was dazu führt, dass Bilder und auch Schriften auf fast jedem Bildschirm ein wenig in der Größe variieren.

          Eine Frage noch: wenn Du die Druckauflösung im JFIF-Container hinterlegst: wer (welche Software) interessiert sich dann für diese. Inwiefern wird diese Angabe wann berücksichtigt?

          Ich würde es mal so sagen: Professionelle Bildbearbeitungssoftware, die auch die Ausgabe auf ein physisches Medium vorsieht, berücksichtigt diesen Parameter wahrscheinlich überwiegend. Software, die Bilder einfach nur anzeigen soll (z.B. Browser, Bildbetrachter), wohl eher nicht.

          Ciao,
           Martin

          --
          "So schnell waren wir noch nie am Unfallort", sagte der Polizist zu seinem Kollegen, als er einen Laternenmast gerammt hatte.
          Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
        2. Diese Aussage kann wahr sein oder falsch, aber nicht schlecht. Und ich denke, sie ist wahr.

          Den ersten Teil hat dir Martin ja schon beantwortet.

          Eine Frage noch: wenn Du die Druckauflösung im JFIF-Container hinterlegst: wer (welche Software) interessiert sich dann für diese. Inwiefern wird diese Angabe wann berücksichtigt?

          Genau die Software die du vorher selbst genannt hast z.B. - wenn du in Photoshop einer JPG-Grafik sagst, sie soll 300 dpi haben, steht das exakt so im erzeugen JFIF-Container.

          Wenn du die Grafik dann an den Drucker schickst, wird er das auch beachten - wenn du hingegen 3000 dpi angibst, bekommst du eine Briefmarke :p

  2. Liebe Experten,

    das ich Pixelmaße über die (sofern auf dem Server installierten/verfügbaren) php-Funktionen wie createimage...imagecopyresized etc. ändern kann ist mir bekannt.
    Aber meine Frage lautet:
    Kann man auch die Dokumentgröße (wie z.B. neben den Pixelangaben in Photoshop einstellbar) per php-Funktion einstellen?

    Per php wohl eher nicht. Du könntest maximal die Größe des CLient per Javascript einlesen und danach dann dein Bild anpassen.

    Ich versuche per Stapelverarbeitung Grafiken mit stets identischen Pixelmaßen mit 300 dpi und 2cmx2cm Dokumentgröße zu erstellen und habe ausser Pixel- und Formatangaben nichts passendes für mein Vorhaben gefunden.

    Zentimeter auf einem Client anzugeben sollte sich sehr schwierig gestalten, da man ja hier in Pixel rechnet. Du musst also erst die Pixel übergeben, dann die Größe in Zentimeter ausrechnen und dann wieder in die Pixel des Clinet umrechnen. Willst du das wirklich?

    Sind diese Einstellungen überhaupt über die php-imagefunktionen möglich, falls ja, wie lautet die Funktion und die Parameter?

    Danke für eure Anregungen im voraus!