Rotate transparent image в PHP

Жодна тварина в результаті роботи скрипта не постраждала :)От не спиться мені і баста :).
На форумі zf побачив запитання “Як засобами php повернути png з прозорістю так, щоб після повороту прозорість зберігалася?”. Через деякий час знайшов два вирішення цієї задачки.

З допомогою GD2

<?php
// File and rotation
$filename = 'test.png';
$degrees = 180;
 
// Content type
header('Content-type: image/png');
 
// Load
$source = imagecreatefrompng($filename);
 
// Rotate
$rotate = imagerotate($source, $degrees, -1);
 
imagealphablending($rotate, true);
imagesavealpha($rotate, true);
 
// Output
imagepng($rotate);
?>

Альтернативний варіант з використанням команди convert (ImageMagic tools)

Наприклад якщо потрібно повернути великий файл:

<?php
 
error_reporting(E_ALL);
 
header("Content-type: image/png");
 
$file = 'images/test/imgp2498.jpg';
 
image_rotate_with_convert($file, 90);
 
function image_rotate_with_convert($file, $angle){
    passthru("convert -rotate $angle $file -");
}
 
?>

Ніби все. Якщо я десь загнався, то виправте. Якщо знаєте другий спосіб, то напишіть його в коментарі. Дякую за увагу ;).

Leave a Reply

Your email address will not be published. Required fields are marked *