Почему я не могу сделать фон png прозрачным после вращения его с помощью php? - PullRequest
8 голосов
/ 11 ноября 2010

Я пытался буквально весь день вчера пытаться понять это. Я поворачиваю изображение через imagerotate (). Я получаю черный фон, где изображение больше не покрывает. Я перепробовал все, что не могу придумать, чтобы сделать этот фон прозрачным ..

вот мой текущий код ..

   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;
   }

Я действительно начинаю раздражаться. Может кто-нибудь показать мне какой-нибудь рабочий код? пожалуйста

Может ли быть что-то не так с моим сервером WAMP и Dreamweaver? потому что я даже попробовал это .. http://www.exorithm.com/algorithm/view/rotate_image_alpha и он по-прежнему выдает либо черный, либо белый фон ..

1 Ответ

1 голос
/ 27 декабря 2013

Попробуйте установить imagesavealpha () на повернутом изображении.

В настоящее время вы используете imagesavealpha () для вашего исходного изображения.[напримерimagesavealpha ( $ image , true);]

Вместо этого вы хотите запустить imagesavealpha () для повернутого изображения, а затем установить $ this-> image ... try:

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

}

...