Как получить прозрачный фон после ротации png-изображения с помощью php?

Поэтому у меня есть png-изображение, и я поворачиваю его, но я получаю черный фон .. или если я делаю цветовой код of white, я получаю белый цвет .. Я пробовал это делать ..

$trans = imagecolorallocatealpha(image, 0, 0, 0, 127); imagerotate($image, $degree, $trans) 

я тоже пробовал ..

 $trans = imagecolorallocatealpha($image, 255, 255, 255, 127); 

Кто-нибудь может мне помочь?

вот мой код .. если я изменил allocatealpha на 0, 0, 255, 0, тогда он станет синим. но с 0, 0, 0, 127 все еще черным.

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

Solutions Collecting From Web of "Как получить прозрачный фон после ротации png-изображения с помощью php?"

 $destimg = imagecreatefromjpeg("image.png"); $transColor = imagecolorallocatealpha($destimg, 255, 255, 255, 127); $rotatedImage = imagerotate($destimg, 200, $transColor); imagesavealpha($rotatedImage, true); imagepng($rotatedImage,"rotated.png"); 

Убедитесь, что для сохранения прозрачности установите для параметра imagesavealpha значение TRUE. http://www.php.net/manual/en/function.imagesavealpha.php

imagesavealpha($image, TRUE);

Вы пробовали это?

imagecolortransparent

Надеюсь, я понял ваш вопрос!

  // Turn off transparency blending (temporarily) imagealphablending($image, false); // Create a new transparent color for image $color = imagecolorallocatealpha($image, 0, 0, 0, 127); // Completely fill the background of the new image with allocated color. imagefill($image, 0, 0, $color); // Restore transparency blending imagesavealpha($image, true); 

Вы можете попробовать следующее: http://www.exorithm.com/algorithm/view/rotate_image_alpha

  $info = pathinfo($pathToImage); $name = str_replace("." . $info['extension'], "", $info['basename']); $size = getimagesize($pathToImage); $type = isset($size['type']) ? $size['type'] : $size[2]; // Check support of file type if (!(imagetypes() & $type)) { // Server does not support file type return false; } $source = self::imageCreateFrom($pathToImage, trim($info['extension'])) or notfound(); $transColor = imagecolorallocatealpha($source, 255, 255, 255, 127); // $transparency = imagecolorallocatealpha($source, 0, 0, 0, 127); $rotate = imagerotate($source, 360 - $rotate_angle, $transColor); //imagealphablending($rotate, false); imagesavealpha($rotate, TRUE); //imagejpeg($rotate,$pathToThumbs.DIRECTORY_SEPARATOR.$info['basename']); self::createImage($rotate, $pathToThumbs, $info['basename'], trim($info['extension'])); // imagejpeg($rotate); imagedestroy($source); imagedestroy($rotate); 

Это то, что я использую, эта работа отлично подходит для файлов .png с прозрачным фоном. Высокие пятерки!

 function rotate($degrees) { // Switch from default counter-clockwise to clockwise $degrees = 360 - $degrees; // Get the image $source = imagecreatefrompng("images/image.png"); // Rotate the image $rotated_image = imagerotate($source, $degrees, imageColorAllocateAlpha($source, 0, 0, 0, 127)); // Save the rotated image imagepng($rotated_image, 'images/rotated_image.png'); }