imagerotate() mit transparentem Hintergrund
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
ansehen
beschreibung
bild
code
datei
drehen
ergebnis
funktionieren
gleiche bild
header
http
image
index
manual
original bild
rand
schwarzen rand
type
url
weglassen
-
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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
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 -
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 -
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... -
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 -
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 -
ho ;)
Vielen vielen Dank!
imageSaveAlpha()
Die Zeile wars :)
Es funktioniert!
thx
Sincer -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage