1

Google Maps Static APIから保存した画像のポリゴン(透明な領域があります)を切り取りたいです。次に、2番目の画像を作成して保存し、同じスクリプトを試しましたが、2番目に試した画像には効果/変更がないという違いがありますが、同じ画像です。たぶんPHPのバグ?PHP5.3.3を使用しています。

<?php
$image = imagecreatefrompng('map.png');
$image2 = imagecreatefrompng('map2.png');


$black = imagecolorallocatealpha($image, 0, 0, 0, 127);
$black2 = imagecolorallocatealpha($image2, 0, 0, 0, 127);


imagefilledpolygon($image, array(0,0, 20,20, 0,20), 3, $black);
imagefilledpolygon($image2, array(0,0, 20,20, 0,20), 3, $black2);

header('Content-Type: image/png');
imagepng($image);
#imagepng($image2);
?>

画像1: 1

画像2: 2

4

1 に答える 1

0

私は解決策を見つけました:この透明度を機能させるには、画像のimagealphablendingimagesavealphaの設定を設定する必要があります。また、これらの画像のビット数が異なるという問題もあります。動作中の画像は8ビットで、動作していない画像は24ビットでした。

imagealphablending($image2, false);
imagesavealpha($image2, true);

このコメントは私を大いに助けました:http ://www.php.net/manual/en/function.imagecreatefrompng.php#47083

于 2011-12-24T14:05:40.007 に答える