Rotace obrázku v PHP pomocí imagerotate()

Dnes si ukážeme, jak pomocí PHP otočit obrázek o několik stupňů.

Máme na výběr: 0°, 90°, 180°, 270°, či dokonce 360°. Nebo úplně jinak, třeba o 15°, nebo rovnou 145°.

 

Nejdříve si musíme definovat, jak se bude jmenovat vstupní obrázek (ten, co se bude rotovat) a pak ještě ten výstupní (co uložíme jako otočený).

Vytvoříme si tedy dvě proměnné:

<?php 
  $vstup = "a.jpg"; 
  $vystup = "b.jpg";

Předpokládejme, že si skript nazveme rotace.php a ve stejné složce existuje obrázek, který se jmenuje a.jpg. Druhý nemusí existovat. Na prvním řádku máme otevírací tag pro PHP. Na druhém řádku definujeme obsah proměnné $vstup jako obsah a.jpg a na třetím řádku zase k proměnné $vystup obsah b.jpg.

 

Vytvoření kopie obrázku

Dále si musíme načíst obrázek a.jpg a udělat si jeho kopii, abychom s ním mohli dále pracovat. To provedeme pomocí PHP funkce imagecreatefromjpeg, v překladu to znamená: obrázek vytvoříme z jpeg. Z originálu vytvoříme kopii proměnné $vstup (jako první parametr funkce v závorce) a tu uložíme jako proměnnou $kopie.

$kopie   = imagecreatefromjpeg($vstup);

 

Otočení obrázku

Nyní přichází ten očekávaný a slavnostní okamžik – samotná rotace pomocí PHP funkce imagerotate. Výstup této funkce uložíme do proměnné $otoceny. Jako první parametr funkce uvedeme název obrázku, který budeme rotovat. Takže to bude proměnná $kopie. Jako druhý parametr uvedeme číslo – číslem udáváme počet stupňů, ve kterých se má obrázek otočit. Uvedeme třeba 90°. A nulu přidáme jako poslední parametr:

$otoceny = imagerotate($kopie,90,0);

 

Uložení obrázku

A jako poslední, uložíme zrotovaný obrázek do souboru. A to pomocí PHP funkce imagejpeg. Prvním parametrem bude samotný obrázek v proměnné $otoceny a druhým bude jeho název, tedy proměnná $vystup. A přidáme uzavírací tag pro PHP:

$obrazek = imagejpeg($otoceny, $vystup); 
?>

A máme hotovo! Na konečný skript se můžete podívat ještě tady:

<?php 
  $vstup   = "a.jpg"; 
  $vystup  = "b.jpg";       
  $kopie   = imagecreatefromjpeg($vstup); 
  $otoceny = imagerotate($kopie,90,0); 
  $obrazek = imagejpeg($otoceny, $vystup);
 ?>

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *