2010-11-11 28 views
8

Dün bütün gün bunu anlamaya çalıştım. Bir görüntüyü imagerotate() ile döndürüyorum. Resmin artık kaplamadığı siyah bir arka plan alıyorum. Kafayı olsun başlıyorumNeden php ile döndükten sonra png arka planını şeffaf yapamıyorum?

function rotate($degrees) { 
     $image = $this->image; 
     imagealphablending($image, false); 
     $color = imagecolorallocatealpha($image, 0, 0, 0, 127); 
     $rotate = imagerotate($image, $degrees, $color); 
     imagecolortransparent($rotate, $color); 
     imagesavealpha($image, true); 
     $this->image = $rotate; 
    } 

ben .. ben bu arka plan saydam hale getirmek için düşünemiyorum her şeyi .. Burada

benim şimdiki kodudur çalıştılar. Birisi bana bazı çalışma kodunu gösterebilir mi? Lütfen?

WAMP sunucumda ve dreamweaver'ımda bir sorun olabilir mi? çünkü ben bile bunu denedim .. http://www.exorithm.com/algorithm/view/rotate_image_alpha ve hala siyah ya da beyaz arka plan koyar ..

+2

dünkü soruya bir kopyası gibi görünüyor. http://stackoverflow.com/questions/4148774/how-do-i-get-a-transparent-background-after-rotaing-a-png-image-with-php/4148805 – stevelove

+0

ve evet öyle. Biliyorum gerçekten yeniden postalamamıştım ama bu kodun ne kadar kötü çalıştığını bilmiyorum .. – Chris

+0

Lütfen PHP versiyonunu belirtin. – Rolf

cevap

1

Döndürülmüş görüntünüzde imagesavealpha() ayarlamayı deneyin.

Orijinal görselinizde imagesavealpha() öğesini çalıştırıyorsunuz. [ Örneğin. imagesavealpha ($ görüntü, doğru); ]

Bunun yerine döndürülmüş görüntü üzerinde imagesavealpha() çalıştırmak istiyorum ve daha sonra görüntü ... deneyin> $ this- ayarlayın:

... 
    $rotate = imagerotate($image, $degrees, $color); 
    imagecolortransparent($rotate, $color); 
    imagesavealpha($rotate, true); // <- using $rotate instead of $image 
    $this->image = $rotate; 

}

İlgili konular