Obrót obrazu o określony kąt za pomoca PHP


(IcyMat) #1

Witam.

Troszkę szukałem po googlach, ale nie za dużo z tego co tam znalazłem zrozumiałem :stuck_out_tongue_winking_eye:

Otóż potrzebuję skryptu, który obróci mi DIV'a (tylko z obrazkiem) o określony przeze mnie kąt.

Najlepiej jakby do skryptu była instrukcja po polsku.

Z góry dziękuję za pomoc i pozdrawiam

IcyMat


(etam) #2

Z tego co wiem, to nie ma takich możliwości.

Znalazłem, że w specyfikacji CSS3 ma coś takiego być (http://www.w3.org/blog/CSS/2007/09/24/beijing_part_3), ale prace nad CSS3 dopiero trwają.


(IcyMat) #3

A nie da się obrócić samego obrazka o ileś stopni za pomocą PHP, albo JS?


(Luknet83) #4

Za pomocą PHP oczywiście możesz obrócić zdjęcie o dowolny kąt http://pl.php.net/manual/pl/function.imagerotate.php


(IcyMat) #5

Nie za bardzo kapuję o co w tym chodzi. Skopiowałem ten skrypt, który tam był i umieściłem na serwerze (lokalnym i takim normalnym) i zamiast zdjęcia mi się wyświetla ścieżka do pliku.

<?php

// File and rotation

$filename = 'image/proj_lacerta.jpg';

$degrees = 90;


// Content type

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


// Load

$source = imagecreatefromjpeg($filename);


// Rotate

$rotate = imagerotate($source, $degrees, 0);


// Output

imagejpeg($rotate);

?>

Efektem wywołania tego kodu jest

http://localhost/image.php

(Luknet83) #6

Nie wiem czemu u ciebie nie działa tu masz przykład który napisałem na szybko a źródło w jednej paczce tu.

Oczywiście żeby wszystko działało PHP na serwerze musi mieć bibliotekę GD zainstalowaną.


(IcyMat) #7

Dziękuję bardzo za pomoc :slight_smile:

W konfiguracji mojego serwera była źle podana ścieżka do pliku, ale po jej zmianie wszystko zaczęło działać :wink:

PS. A dało by się zrobić tak, żeby nie robiło się żadne tło pod obracanym obrazkiem? I żebym mógł obracać obrazki PNG (bo teraz nie działa)

EDIT:

Luknet przerobił mi ten skrypt tak, że nie wyświetla się tło pod obracanym obrazkiem, ale w samym obrazku w miejsce przeźroczystości pojawia się tło, a do tego mała ramka w koło. Czy ktoś mógłby mi pomóc z tym skryptem. Z góry dziękuję za pomoc.

<?php

// File and rotation

$filename = $_GET['image'];

$degrees = $_GET['kat'];


// Content type

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


// Load

$source = imagecreatefrompng($filename);

$oldx=imagesx($source);

$oldy=imagesy($source);

// Rotate

$trans = imagecolorallocate($source, 0, 0, 255);

//imagecolortransparent($source,$trans);

$rotate = imagerotate($source, $degrees,255);

imagecolortransparent($rotate,$trans);


// Output

imagepng($rotate);

?>