Michael: Bild, Teilbereich ausschneiden und verkleinern

Ich möchte ein Bild mittels php verkleinern und einen Teilbereich ausschneiden. Der ausgeschnitten Bereich soll 16/9 sein 400x225 Pixel.

  1. Hochladen
  2. Überprüfen auf JPG
  3. Mindest Grösse, Breite ermitteln (muss also grösser als 400x225 sein)
  4. Image - Verkleinern auf eine Höhe von 225
  5. Image – 400 aus der Mitte, also links und rechts abschneiden
  6. Image abspeichern

Ich würde so verfahren, oder habe ich etwas vergessen?

Michael

Ein wirklich cooles und übersichtliches Forum, freue mich auf geniale Gedanken

  1. Hallo,

    Ich würde so verfahren, oder habe ich etwas vergessen?

    Überprüfung auf Orientierung: wenn du ein Hochkantbild hast, das in beiden Richtungen deine Mindestanforderung erfüllt, kann es dir passieren, dass nach dem Verkleinern keine 400 px mehr in der Breite vorhanden sind.

    Gruß
    Kalk

  2. Hallo,

    Ich möchte ein Bild mittels php verkleinern und einen Teilbereich ausschneiden.

    und du weißt, dass der "interessante" Ausschnitt immer in der Bildmitte liegt?

    1. Hochladen
    2. Überprüfen auf JPG

    Andere Grafikformate, etwa PNG oder GIF, möchtest du nicht zulassen?

    1. Mindest Grösse, Breite ermitteln (muss also grösser als 400x225 sein)
    2. Image - Verkleinern auf eine Höhe von 225
    3. Image – 400 aus der Mitte, also links und rechts abschneiden
    4. Image abspeichern

    Dabei beachten, dass beim (Wieder-) Abspeichern als JPG ein gewisser Qualitätsverlust auftritt. Wenn das entstehende Bild das Ende der Verarbeitung ist, mag das akzeptabel sein; wenn weitere Bearbeitungsschritte folgen, würde ich eher ein verlustfreies Format wie PNG wählen.

    So long,
     Martin

    --
    "Wenn man ein Proton aufmacht, sind drei Quarks drin."
    - Joachim Bublath in der Knoff-Hoff-Show
    1. @@Der Martin

      Dabei beachten, dass beim (Wieder-) Abspeichern als JPG ein gewisser Qualitätsverlust auftritt.

      Wenn man die 8×8-Pixel-Blöcke nicht ändert, sollte kein Qualitätsverlust auftreten. Die Höhe müsste dann 224 Pixel sein, nicht 225. (Bei JPEG ist es durch das Dateiformat bedingt sowieso nicht schlecht, durch 8 teilbare Seitenlängen zu wählen.)

      Ich weiß aber nicht, welche Bildbearbeitungssoftware derart mit JPEG umgehen kann.

      LLAP 🖖

      --
      „Man kann sich halt nicht sicher sein“, sagt der Mann auf der Straße, „dass in einer Gruppe Flüchtlinge nicht auch Arschlöcher sind.“
      „Stimmt wohl“, sagt das Känguru, „aber immerhin kann man sich sicher sein, dass in einer Gruppe Rassisten nur Arschlöcher sind.“

      —Marc-Uwe Kling
      1. Hallo Gunnar,

        Dabei beachten, dass beim (Wieder-) Abspeichern als JPG ein gewisser Qualitätsverlust auftritt.

        Wenn man die 8×8-Pixel-Blöcke nicht ändert, sollte kein Qualitätsverlust auftreten.

        ja, das ist im Prinzip richtig; es gibt auch Programme, die bestimmte Operationen an JPEG-Bildern verlustlos durchführen können, z.B. Spiegeln, in 90°-Schritten drehen oder Zuschneiden im 8x8-Raster.

        Ich weiß aber nicht, welche Bildbearbeitungssoftware derart mit JPEG umgehen kann.

        XNView kann das zum Beispiel.

        Aber Michael schrieb von der Bearbeitung mit PHP, da vermute ich, dass die gdlib zum Einsatz kommt. Und die packt ein JPEG-Bild beim Laden erstmal komplett im Arbeitsspeicher aus und komprimiert es beim Speichern erneut wieder.

        Außerdem will Michael im ersten Schritt das Bild verkleinern (skalieren), das wäre dann definitiv nicht als "lossless transformation" zu haben.

        So long,
         Martin

        --
        "Wenn man ein Proton aufmacht, sind drei Quarks drin."
        - Joachim Bublath in der Knoff-Hoff-Show
      2. Versthe ich das richtig? Eenn es durch 8 teilbar ist, ist die Qualität, besser als bei 9,10 etc?

        1. Hallo Michael,

          Versthe ich das richtig? Eenn es durch 8 teilbar ist, ist die Qualität, besser als bei 9,10 etc?

          nein, das stimmt so nicht.

          JPEG verwendet generell ein verlustbehaftetes Kompressionsverfahren[1]. Deswegen leidet die Bildqualität bei jedem Bearbeitungsschritt, weil das Bildmaterial entpackt, bearbeitet und dann mit erneutem Qualitätsverlust wieder komprimiert wird.

          Aber JPEG verarbeitet immer Blöcke von 8x8 Pixeln. Wenn man innerhalb dieser Blöcke die Daten nicht neu codieren muss, kann man verlustfrei bleiben. Das geht, wie gesagt, bei Operationen, bei denen die Pixel innerhalb dieser Blöcke bloß neu angeordnet werden (spiegeln oder 90° drehen). Und das geht, auf das gesamte Bild bezogen, nur dann, wenn Breite und Höhe Vielfache von 8 Pixel sind.

          So long,
           Martin

          --
          "Wenn man ein Proton aufmacht, sind drei Quarks drin."
          - Joachim Bublath in der Knoff-Hoff-Show

          1. Irgendwo habe ich mal gelesen: "JPEG uses a lossy, but not a lousy compression method." ↩︎

      3. Hallo Gunnar,

        Wenn man die 8×8-Pixel-Blöcke nicht ändert, sollte kein Qualitätsverlust auftreten.

        Skalieren ist aber keine lossless jpeg operation.

        Rolf

        --
        sumpsi - posui - clusi
    2. und du weißt, dass der "interessante" Ausschnitt immer in der Bildmitte liegt?

      Also ich (Achte auf meinen Name) bin mir da absolut und völlig sicher.

  3. Hallo,

    hier

    1. Mindest Grösse, Breite ermitteln (muss also grösser als 400x225 sein)

    gehst du davon aus, dass das Bild breiter als 16:9 ist, denn sonst gibt es nach

    1. Image - Verkleinern auf eine Höhe von 225

    hier

    1. Image – 400 aus der Mitte, also links und rechts abschneiden

    nichts mehr abzuschneiden.

    Gruß
    Jürgen

  4. Hello,

    Ich möchte ein Bild mittels php verkleinern und einen Teilbereich ausschneiden. Der ausgeschnitten Bereich soll 16/9 sein 400x225 Pixel.

    1. Hochladen
    2. Überprüfen auf JPG
    3. Mindest Grösse, Breite ermitteln (muss also grösser als 400x225 sein)
    4. Image - Verkleinern auf eine Höhe von 225
    5. Image – 400 aus der Mitte, also links und rechts abschneiden
    6. Image abspeichern

    Ich würde so verfahren, oder habe ich etwas vergessen?

    Ja:

    0: zuerst die Exif-Daten und ihre Freunde (IPTC) sichern und beachten: Vorausverfügung zum Urheberrecht!
    7: Nach der Bearbeitung die Exif-Daten & Co. richtigstellen und wieder hinzufügen

    Siehe auch Fremdartikel

    Glück Auf
    Tom vom Berg

    --
    Es gibt nichts Gutes, außer man tut es!
    Das Leben selbst ist der Sinn.