Ankündigung

Einklappen
Keine Ankündigung bisher.

Grafik mit Imagick zentrieren?

Einklappen

Neue Werbung 2019

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

  • Grafik mit Imagick zentrieren?

    Hallo,

    ich möchte aus einer Grafik eine PDF-Datei in DIN-A4 erstellen. Hierzu verwende ich Imagick. Leider bekomme ich die Grafik in dem Dokument nicht zentriert, sie bleibt immer linksbündig (siehe Beispiel).

    Hier ist mein vorhandener Code:
    PHP-Code:
    $pdf = new Imagick($image);
    $pdf->setImageFormat('pdf');

    //Rotate page if image width is higher that height
    if($pdf->getImageWidth() > $pdf->getImageHeight()){
        
    $transparent '#ffffffff';
        
    $transparent '#00000000';
        
    $pdf->rotateImage($transparent90);
    }

    $pdf->setGravity Imagick::GRAVITY_CENTER );

    //Set pagesize A4
    $pdf->setImagePage 5958420,);

    $pdf->resizeImage($pdf->getImageWidth(),$pdf->getImageHeight(),Imagick::FILTER_CATROM,1);
    $pdf->writeImages($finalPDFtrue); 
    SetGravity wird anscheinend komplett ignoriert, auch wenn ich es nach resizeImage aufrufe.

    Hat jemand eine Idee, woran das liegen könnte?

    Vielen Dank im Voraus.
    Unbenannt.png

  • #2
    if Imagick has been compiled against ImageMagick version 6.4.0 or newer.
    daran ,liegt es wohl nicht ...

    PHP-Code:
    public Imagick::setGravity(int $gravity): bool 
    versuche es mal mit 4

    Kommentar


    • #3
      Die Version ist neuer.
      Imagick::GRAVITY_CENTER ist doch die Konstante mit dem Wert 4?

      Kommentar


      • #4
        sollte es sein, testen schadet trotzdem nichts, dachte ich.
        um nur das zu testen, sollte auch ein weniger komplexer code wie dort:
        https://www.geeksforgeeks.org/php-im...vity-function/
        reichen.

        Kommentar


        • #5
          Ich habe noch folgende Methode "entdeckt":
          PHP-Code:
          $pdf->extentImage($pdf->getImageWidth(),$pdf->getImageHeight(),-1000); 
          Damit lässt sich die Grafik innerhalb der Seite verschieben. Allerdings wird sie abgeschnitten, da in der Seite anscheinend die Größe der Grafik festgelegt ist (zweites Bild).
          2021-09-23 12_23_45-magick-6003yI20t9gRIhr7.png2021-09-23 12_23_11-magick-600630M6evdTrNLl.png
          Mit der Methode
          PHP-Code:
          $pdf->setImageExtent() 
          kann man wohl die Größe der Grafik verändern, aber ich weiß nicht, welche Einheiten ich hier angeben muss, damit ich ein gutes Ergebnis bekomme.

          Kommentar

          Lädt...
          X