Наложение маски на изображение

В редакторе

Наложение маски на изображение

Brain_Script
488
2019-07-12 07:59:55
// исходная картинка $image = "test.jpg"; // картинка маска $mask = "mask.png"; // загружаем исходную картинку $image = imagecreatefromjpeg($image); // загружаем маску $mask = imagecreatefrompng($mask); // определяем ширину картинки $width = imagesx($image); // определяем высоту картинки $height = imagesy($image); // определяем ширину маски $m_width = imagesx($mask); // определяем высоту маски $m_height = imagesy($mask); // создаем холст для будущей картинки $img = imagecreatetruecolor($width, $height); // определяем прозрачный цвет для картинки. Черный $transColor = imagecolorallocate($img, 0, 0, 0); // задаем прозрачность для картинки imagecolortransparent($img, $transColor); // перебираем исходную картинку по пикселю for($posX = 0; $posX < $width; $posX++){ for($posY = 0; $posY < $height; $posY++){ // получаем индекс цвета пикселя // в координате $posX, $posY для картинки $colorIndex = imagecolorat($image, $posX, $posY); // получаем цвет по его индексу в формате RGB $colorImage = imagecolorsforindex( $image, $colorIndex ); // получаем индекс цвета пикселя // в координате $posX, $posY для маски $colorIndex = imagecolorat($mask, $posX, $posY); // получаем цвет по его индексу в формате RGB $maskColor = imagecolorsforindex( $mask, $colorIndex ); // если в точке $posX, $posY цвет маски черный, // то наносим на холст пиксель с нужным цветом if ( // проверка пикселя на черный цвет $maskColor['red'] == 0 AND $maskColor['green'] == 0 AND $maskColor['blue'] == 0 AND // если размер маски меньше исходной картинки, // то за ее пределами тоже ни чего не рисуем $m_width > $posX AND $m_height > $posY ){ // получаем цвет для пикселя $colorIndex = imagecolorallocate( $img, $colorImage['red'], $colorImage['green'], $colorImage['blue'] ); // рисуем пиксель imagesetpixel( $img, $posX, $posY, $colorIndex ); } } } // заголовок для браузера header('Content-type: image/png'); // выводим картинку в браузере imagepng($img); // чистим память imagedestroy($img);
Войдите для добавления комментария.
Нет комментариев
Яндекс.Метрика Яндекс.Метрика