У меня трудное время, чтобы этот прозрачный PNG (маркер карты) был прозрачным при копировании в более крупный PNG (радиолокационное изображение). Я пробовал много разных вещей, и все потерпели неудачу. Это должно быть что-то странное, потому что, если я использую прямоугольник, заполненный цветом, и применяю маркер карты, прозрачность соблюдается. Я нахожусь в тупике на данный момент, хотя я все еще работаю над проблемой.
Ниже я добавил дропбокс ссылки на два изображения и код php, с которым я тестировал. Как только прозрачность проработается, я попытаюсь выяснить, как изменить размер маркера карты, не нужно это слишком много!
Спасибо за ваше время и помощь!
<?php
//$im = @imagecreatetruecolor(1440,768) or die("Cannot Initialize new GD image stream");
$im = imagecreatefrompng('new_radar_image.png');
$color_red = imagecolorallocate ($im,255,0,0);
$color_white = imagecolorallocate ($im,255,255,255);
$radar_size_x = imagesx($im);
$radar_size_y = imagesy($im);
$mid_x = $radar_size_x / 2;
$mid_y = $radar_size_y / 2;
// imagefilledrectangle ( $im, 0 , 0 , 1439 , 767 , $color_red );
imageline ( $im, $mid_x , 0, $mid_x, $radar_size_y, $color_white);
imageline ( $im, 0, $mid_y, $radar_size_x, $mid_y , $color_white);
$src_im = imagecreatefrompng('map-marker-icon1.png');
imagecopy ( $im , $src_im , 0 , 0 , 0 , 0 , 128 , 128);
header('Content-Type: image/png');
imagealphablending( $im, false );
imagesavealpha( $im, true );
imagepng($im);
imagedestroy($im);
?>
документация гласит:
Прозрачность копируется только с изображениями imagecopymerge () и изображениями с истинным цветом, а не с изображениями imagecopy () или паллетами.
Я понял! До меня дошло время на беговой дорожке! знак равно
<?php
$im = imagecreatefrompng('new_radar_image.png');
$om = imagecreatetruecolor(1440,768);
imagecopy($om,$im,0,0,0,0,1440,768);
$color_red = imagecolorallocate ($om,255,0,0);
$color_white = imagecolorallocate ($om,255,255,255);
$radar_size_x = imagesx($om);
$radar_size_y = imagesy($om);
$mid_x = $radar_size_x / 2;
$mid_y = $radar_size_y / 2;
imageline ( $om, $mid_x , 0, $mid_x, $radar_size_y, $color_white);
imageline ( $om, 0, $mid_y, $radar_size_x, $mid_y , $color_white);
$src_im = imagecreatefrompng('map-marker-icon.png');
imagecopy( $om , $src_im , 0 , 0 , 0 , 0 , 128 , 128);
header('Content-Type: image/png');
imagealphablending( $om, false );
imagesavealpha( $om, true );
imagepng($om);
imagedestroy($om);
imagedestroy($im);
?>
Просто нужно изменить его размер, который не должен быть проблемой!