texte und bild to img

Zur Foto-Qualität habe ich schon vieles versucht, vor allem eben auch die Ausgangsqualität bereits innerhalb des pdf bzw. bei dessen Erstellung. Da ist das Ende der Fahnenstange auch noch nicht erreicht, aber trotzdem will ich gerne auch die Alternative probieren die wir hier bereits erarbeiten.
MONI
 
Leider habe ich lokal kein ImageMagic, daher kann ich damit nichts testen.
Aber erst Mal die Frage, was das für Bilder sind: Wie in deinem allerersten Posting, aus einem JPG mit Schrift darauf?
 
Und, angenommen Du willst sie übereinander stapeln: Dann müsste doch nur die Breite bei allen gleich sein und die Höhe unterschiedlich, so dass das Seitenverhältnis gleich bleiben kann.
 
Zu #23 und #24: Ja genau das.

Mir würde reichen wenn ich drei Komponenten in ein Image kriege.

Bildteil oben - ev. mit eingefügter Schrift (wie von Dir vermutet)
Schriftteil mittig
Schriftteil unten


Alternative: Ein pdf (A4 hoch) als Ausgangsdokument wäre genau so aufgebaut:

oberstes Drittel Bild - ev. mit eingefügter Schrift
mittleres Drittel Schrift
unteres Drittel Schrift

Die Schriftteile (Mitte und unten) unterscheiden sich ein wenig, so soll der mittlere Teil eher tabellenartig sein und der untere Teil eher ein Textblock. Möglicherweise auch in umgekehrter Reihenfolge. Je nachdem was besser aussieht.


MONI
 
Guten Morgen Moni,
nach diesen Erklärungen wird das Ganze jetzt wesentlich klarer.
Du willst offenbar den Text nicht nur auf das Bild legen sondern auch freien Raum unter dem Bild haben wo Du ebenfalls Text hin legen willst.

Inzwischen ist es mir gelungen, Imagick bei mir lokal zu installieren und ich habe gleich erste Versuche unternommen:
Code:
    <?php
    // Das Gesamtbild vorbereiten
    $im = new Imagick();

    // Das erste Bild vorbereiten
    $im1 = new Imagick(realpath('images/2015-02-28_Gegensteine_03.jpg'));
    $wimg = $im1->getImageWidth();
    // Text einfügen
    $draw = new ImagickDraw();

    /* Textfarbe */
    $draw->setFillColor('white');

    /* Font properties */
    $draw->setFont('fonts/Skia.ttf');
    $draw->setFontSize(10);
    $draw->setTextAlignment(Imagick::ALIGN_CENTER);

    /* Text zeichnen */
    $im1->annotateImage(
        $draw,
        $wimg / 2,
        45,
        0,
        'The quick brown fox jumps over the lazy dog'
    );

    // Das zweite Bild vorbereiten
    $im2 = new Imagick(realpath('images/2015-02-28_Gegensteine_05.jpg'));

    // Beide Bilder dem Gesamtbild hinzu fügen
    $im->addImage($im1);
    $im->addImage($im2);
    $im->resetIterator();
    $combined = $im->appendImages(true);

    // base64-Format vorbereiten
    $imgBuff = $combined->getimageblob();

    /**
     * This clears the image.jpg resource from our $img object and destroys the
     * object. Thus, freeing the system resources allocated for doing our image
     * manipulation.
     */
    $im->clear();

    /**
     * This creates the base64 encoded version of our unencoded string from
     * earlier. It is then output as an image to the page.
     *
     * Note, that in the src attribute, the image/jpeg part may change based on
     * the image type you're using (i.e. png, jpg etc).
     */
    // Das Bild in einem img-Tag anzeigen
    echo '<img alt="Embedded Image" src="data:image/jpeg;base64,' . base64_encode($imgBuff) . '">';

    ?>

Was noch fehlt: Das Skalieren der Bilder auf eine einheitliche Breite. Und den freien Raum zu erzeugen. Das wird im wesentlichen hier beschrieben:
How to overlay an image on top of another image using iMagick

Den Weg über PDF empfehle ich nicht. Das Erzeugen ist vielleicht einfacher aber beim Speichern als Bild musst Du dich mit den Fragen der Auflösung herum schlagen und u. U. einen Verlust der Qualität hin nehmen.

Und noch ein Gesichtspunkt: Imagick ist nur ins Spiel gekommen um ein PDF als Bild zu speichern. Ich höre da, dass es nicht von jedem Hoster unterstützt wird. Möglicher Weise doch besser bei GD-Lib bleiben?
 
Und noch ein Gesichtspunkt: Imagick ist nur ins Spiel gekommen um ein PDF als Bild zu speichern. Ich höre da, dass es nicht von jedem Hoster unterstützt wird. Möglicher Weise doch besser bei GD-Lib bleiben?
Und noch ein weiterer Aspekt könnte eine Rolle spielen, Imagemagick ist noch nicht PHP 8.2 kompatibel.
Und ja, wenn man nur Bilder zusammenfügen will, reicht in den meisten Fällen die GD-Extension.
Es ist einfach nicht gut, zwei Themen in einen Thread zu packen.
 
Hallo zusammen,
ich bin nach etlichen Tests der Überzeugung der Weg über ein pdf, dies dann konvertieren usw. ist nicht der beste Weg für eine Lösung in dem Fall.

Wichtig ist, ich muß am Ende ein(=1) Dokument/eine(=1) Datei haben, also ein(=1) jpg oder png.

Ich habe das Ganze rein nur mit pdfs ausprobiert, weil die ja online auch darstellbar sind, leider aber im Handy eher "umständlich".

Auch Social Media nimmt lieber Bilder. Und mit WhatsApp sind diese gut zu versenden usw. usf.

Also bleiben wir bitte bei diesem Thema und Konvertierungen (pdf to image) sind passe.

Allerdings: html und css sind eigentlich keine Option, die Idee hatte ich auch schon. Nur bin ich da wieder nicht so schlau wie ich html to image konvertiere, was ja eine Möglichkeit wäre. Wenn jemand dazu eine qualitativ gute Idee hat (vor allem wenn das eingebaute Foto nicht leidet), bitte posten.

Die Idee von Sempervivum probier ich nun mal aus.

MONI
 
Zuletzt bearbeitet:
Zurück