kostenloser Webspace werbefrei: lima-city


imagerotate() mit transparentem Hintergrund

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    sincer

    Kostenloser Webspace von sincer

    sincer hat kostenlosen Webspace.

    ho ;)

    Ich will meine PHP Image Erfahrungen erweitern :D

    Wenn ich mit imagerotate() ein Bild um z.B. 15° drehe, dann entsteht am Rand eine Schwarze Fläche, weil sich das Bild vergrößert.
    Wie kann ich diese schwarze Fläche transparent machen?
    In der PHP.net Anleitung steht, dass man nur den letzten Wert auf 1 ändern müsste, aber irgendwie funktioniert das nicht.

    Ich habe ein xy.jpg bild, will es um 15° drehen, und es soll das gleiche Bild bleiben, ohne zusätzlichen Schwarzen Rand. (D.h., als Ergebnis brauche ich ein PNG)

    Alles, was ich in Google gefunden habe hat bei mir nicht funktioniert. (Aber vil. habe ich auch irgend was falsch gemacht...)

    lg
    Sincer
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Erstell das Bild einfach so:

    $im = imageCreateFromJPEG(BREITE, HÖHE);
    imageSaveAlpha($im, true);
    $transparent = imageColorAllocateAlpha($im, 0, 0, 0, 127);
    imageFill($im, 0, 0, $transparent);


    Sollte eigentlich gehen, ist aber ungetestet.

    LG cookies

    Beitrag zuletzt geändert: 5.3.2010 20:37:52 von cookies
  4. Autor dieses Themas

    sincer

    Kostenloser Webspace von sincer

    sincer hat kostenlosen Webspace.

    Das Ergebnis (auch wenn ich es jetzt nicht hin bekomme -.-) müsste ja eine transparente Grafik sein, richtig?

    Aber ich will ja bloß den neuen Rand, der durch das drehen entsteht, und schwarz ist, transparent haben...

    Oder fehlt mir einfach der Durchblick?

    lg
    Sincer
  5. Ja, hast Recht, aber das sollte jetzt wirklich gehen:

    $im1 = imageCreateFromJPEG('DATEI');
    $transparent = imageColorAllocateAlpha($im, 0, 0, 0, 127);
    $im2 = imageRotate($im1, 15, $transparent, 1);
    imagePNG($im2);


    LG cookies

    PS: Der andere Beitrag kann gelöscht werden...
  6. Autor dieses Themas

    sincer

    Kostenloser Webspace von sincer

    sincer hat kostenlosen Webspace.

    Ja, so einen ähnlichen Code habe ich auch im Internet gefunden.
    Funktioniert hat es leider auch diesmal nicht...

    Das original Bild: Original Bild ansehen
    Die PHP Seite: Link zum Ansehen

    Der Code: (Dein Code mit kleiner Korrektur...)
    <?php
    
    header('Content-type: image/png');
    
    $im1 = imageCreateFromJPEG('blau.jpg');
    $transparent = imageColorAllocateAlpha($im1, 0, 0, 0, 127);
    $im2 = imageRotate($im1, 15, $transparent, 1);
    imagePNG($im2);
    
    ?>


    Statt dem schwarzen Rand hätte ich das ganze gerne eben transparent. Und meiner Meinung nach, sollte dein Code auch funktionieren. Er tut es aber weder auf meinem XAMPP mit der aktuellsten PHP Version, noch auf dem Server, auf dem du es dir ansehen kannst...
    Laut der PHP.net Beschreibung müsste es aber funktionieren...

    Hast du noch eine Idee?

    lg
    Sincer
  7. Probier vielleicht nochmal das:
    <?php
    
    header('Content-type: image/png');
    
    $im1 = imageCreateFromJPEG('blau.jpg');
    imageSaveAlpha($im1, true); //EVTL. DAS HIER WEGLASSEN
    $transparent = imageColorAllocateAlpha($im1, 0, 0, 0, 127);
    $im2 = imageRotate($im1, 15, $transparent, 1);
    imageSaveAlpha($im2, true);
    imagePNG($im2);
    
    ?>


    LG cookies

    PS:
    Wenn das nicht geht, weiß ich auch nicht weiter. Dann kannst du es höchstens noch mit Imagick versuchen.

    Beitrag zuletzt geändert: 6.3.2010 21:07:02 von cookies
  8. Autor dieses Themas

    sincer

    Kostenloser Webspace von sincer

    sincer hat kostenlosen Webspace.

    ho ;)

    Vielen vielen Dank!

    imageSaveAlpha()

    Die Zeile wars :)
    Es funktioniert!

    thx
    Sincer
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!