denis_bardak
@denis_bardak
Web Developer

Как сделать прозрачность при создании и наложении изображений php GD?

В общем суть такая, создается прозрачное изображение произвольного размера. и вокруг него генерируется рамка, повторяется изображения, на углы накладываются прозрачные фигуры но вот блин одно изображение перекрывает другое, уже пол дня мучаюсь, помогайте! вот заготовка кода , как все таки добавить прозрачность, чтоб первый слой не перекрывал первый?
<?
header("Content-type: image/png");
$width  = 1000;
$height = 1000;
$baget = imagecreatefrompng("baget.png");

$holst = imagecreatetruecolor($width, $height);
$background = ImageColorAllocate($holst, 0, 0, 0); 
$trans = imagecolortransparent($holst, $background);
ImageFill($holst, 0, 0, $background);

$rama_verh = imagecreatetruecolor($width, 142);
$col_w=$width/100;
for ($i=0; $i < $col_w; $i++){
	imagecopymerge($rama_verh, $baget, $i*100, 0, 0, 0, 100, 142, 100);
}
$values = array(0, 0, 142, 142, 0 , 142);
imagefilledpolygon($rama_verh, $values, 3, $background);
$values = array($width, 0, $width-142, 142, $width , 142);
imagefilledpolygon($rama_verh, $values, 3, $background);
imagecopy($holst, $rama_verh, 0, 0, 0, 0, $width, $height);

$rama_niz=imagerotate($rama_verh, 180, 0);
imagecopy($holst, $rama_niz, 0, $height-142, 0, 0, $width, $height);

$baget_levo=imagerotate($baget, 90, 0);
$rama_levo = imagecreatetruecolor(142, $height);
$col_h=$height/100;
for ($is=0; $is < $col_h; $is++){
	imagecopymerge($rama_levo, $baget_levo, 0, $is*100, 0, 0, 142, 100, 100);
}
$values = array(0, 0, 142, 142, 142 , 0);
imagefilledpolygon($rama_levo, $values, 3, $background);
$values = array(0, $height, 142, $height-142, 142, $height);
imagefilledpolygon($rama_levo, $values, 3, $background);
imagecopy($holst, $rama_levo, 0, 0, 0, 0, $width, $height);

$rama_pravo=imagerotate($rama_levo, 180, 0);
imagecopy($holst, $rama_pravo, $width-142, 0, 0, 0, $width, $height);

imagepng($holst);


541986034a5e4c999bc39792d5e4ade8.png
  • Вопрос задан
  • 634 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы