KategorieProgramowanie

[PHP] W jaki sposób wykonać odbicie zdjęcia w dowolnym kierunku ?

Operacja na zdjęciach wymaga od serwera na którym będziemy pracować zainstalowanej biblioteki gd / gd2. Sama operacja odbicia zdjęcia względem którejkolwiek osi jest dość prosta.

Dla odbicia w poziomie:

$img = imagecreatefromjpeg('obrazek.jpg');
$szerokosc = imagesx($img);
$wysokosc  = imagesy($img);
$img2 = imagecreatetruecolor($szerokosc, $wysokosc);

for ($x=0;$x<$szerokosc;$x++) 
{
    for ($y=0;$y<$wysokosc;$y++) 
    {
        $imgColor = imagecolorat(
            $img, 
            $szerokosc-$x-1, 
            $y-1
        );
        // odbicie w poziomie
        imagesetpixel($img2, $x, $y, $imgColor);
    }
}

header("Content-type: image/jpg");
imagejpeg($img2, '', 100);
imagedestroy($img);
imagedestroy($img2);

Dla odbicia w pionie

$img = imagecreatefromjpeg('obrazek.jpg');
$szerokosc = imagesx($img);
$wysokosc  = imagesy($img);
$img2 = imagecreatetruecolor($szerokosc, $wysokosc);

for ($x=0;$x<$szerokosc;$x++) 
{
    for ($y=0;$y<$wysokosc;$y++) 
    {
        $imgColor = imagecolorat(
            $img, 
            $x-1, 
            $wysokosc-$y-1
        );
        // odbicie w pionie
        imagesetpixel($img2, $x, $y, $imgColor);
    }
}

header("Content-type: image/jpg");
imagejpeg($img2, '', 100);
imagedestroy($img);
imagedestroy($img2);

Dla odbicia w pionie i poziomie

$img = imagecreatefromjpeg('obrazek.jpg');
$szerokosc = imagesx($img);
$wysokosc  = imagesy($img);
$img2 = imagecreatetruecolor($szerokosc, $wysokosc);

for ($x=0;$x<$szerokosc;$x++) 
{
    for ($y=0;$y<$wysokosc;$y++) 
    {
        $imgColor = imagecolorat(
            $img, 
            $szerokosc-$x-1, 
            $wysokosc-$y-1
        );
        //odbicie w poziomie i pionie
        imagesetpixel($img2, $x, $y, $imgColor);
    }
}

header("Content-type: image/jpg");
imagejpeg($img2, '', 100);
imagedestroy($img);
imagedestroy($img2);

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *