Повернуть изображение в формате PNG и сохранить прозрачный фон

#php #image #png #rotation #transparent

#php #изображение #png #поворот #прозрачный

Вопрос:

Я хочу повернуть изображение, но, похоже, я не могу поддерживать само изображение.

Это то, что у меня есть:

 // Content type
header('Content-type: image/png');  

$image = 'http://mapning.com/img/plane.png';
$file = imagecreatefrompng($image);
// Rotate
$rotate = imagerotate($file, $angle, 0);
// Output
imagepng($rotate);
  

Что я делаю не так?

Ответ №1:

Вы должны специально заставить GD сохранять прозрачность. Попробуйте

 imagesavealpha($file, TRUE);
  

перед imagepng() вызовом.

Комментарии:

1. Хорошо, кажется, это немного работает. Теперь углы черные, и я нашел решение, но это продолжает приводить к появлению черных линий вокруг исходного изображения.

2. @RenePot Рене, тебе удалось избавиться от этих черных линий? Если да, то как вы это сделали?

3. @AndreiOniga извините, я не помню, и я не думаю, что у меня больше есть код

Ответ №2:

Что помогло мне, как в GD, так и в ImageMagick, так это получить шестнадцатеричные / rgb-коды для цвета фона, на который вы в конечном итоге собираетесь наложить. Затем используйте его в качестве цвета «фона». После поворота переведите этот цвет в прозрачный. Затем небольшие сглаженные края будут выглядеть гладкими, как только вы выполните наложение.