@redd_i

Почему фото прозрачное какое-то?

Здравствуйте. Есть картинка-фон в формате .PNG. Есть аватарка в формате .JPG
Я беру аватарку, округляю функцией png_corners и накладываю на фон.
Что получается: https://yadi.sk/i/xy-JbVbd7243dg
Аватарка либо прозрачная, либо прям какое-то жесткое смешение происходит (фильтр что-ли).
Ребят, помогите пожалуйста исправить. Никак не получается

function png_corners($avatar, $r = 100)
{
    //Dump out the image as a PNG file.
    $tmp_file = tempnam(__DIR__, "image") . ".png";
    imagepng($avatar, $tmp_file);

    //Final image file.
    $tmp_out_file = tempnam(__DIR__, "out") . ".png";

    $x = imagesx($avatar);
    $y = imagesy($avatar);

    $cmd = "convert -size {$x}x{$y} xc:none -fill white -draw 'roundRectangle 0,0, {$x} ,{$y}, {$r}, {$r}' {$tmp_file} -compose SrcIn -composite {$tmp_out_file}";
    exec($cmd);

    return $tmp_out_file;
}
	$img = "dder/background.png"; // Ссылка на файл
	$pic = imagecreatefrompng($img); // Функция создания изображения
	
	imagealphablending($pic, false);
    imagesavealpha($pic, true);
	
	$avatar = imagecreatefromjpeg('https://sun2.6789.userapi.com/impg/rjkoFWPyzIo6ALHqrjU0bPOd6hB2ToagtrRINw/UjXWohbTbUY.jpg?size=200x0&quality=88&crop=0,396,1440,1440&sign=23e95a4722d681fec57da9053a8757f4&c_uniq_tag=dJk2yOWShsLc9eBY6vim3EfzdEOOzJb2xzZOciFUCYE&ava=1');
    imagealphablending($avatar, false);
    imagesavealpha($avatar, true);
	
	$avatar = imagecreatefrompng(png_corners($avatar));

	imagealphablending($pic, true);
	
	imagecopy($pic, $avatar, 446, 230, 0, 0, imagesx($avatar), imagesy($avatar));
	
	
	$namefile = substr(str_shuffle('0123456789abcdefghijklmnopqrstuvwxyz'), 0, 10);
	
	imagepng($pic, "dder/".$namefile.".png"); // Сохранение рисунка
	imagedestroy($pic); // Освобождение памяти и закрытие рисунка
  • Вопрос задан
  • 70 просмотров
Решения вопроса 1
@redd_i Автор вопроса
Если вдруг кто столкнется - решил по этой статье: www.net-f.ru/item/php/78.html
Все отлично работает :)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы