私は矢印の画像を取得し、設定した角度だけ回転させるスクリプトを作成しています。下のコードを使用すると、角度が90の倍数になると、画像が回転して期待通りに表示されます。PHP imagerotateは画像を切り抜いています
ソース画像は、この(74 X 74)のように見える:90によって回転させた後
画像:他の数で回転させた後
画像(ありません90の倍数)たとえば45:
画像からわかるように、矢印の先端は画像から切り取られています。なぜ誰がこのことが起こっているのか教えてもらえますか?ここでも、90の倍数は問題ありません。これは、異常な切り取りが発生する他の番号です。画像の
$props = ['w' => 74, 'h' => 74];
$angle = 360 - $_GET['angle'];
$final_img = imagecreatetruecolor($props['w'], $props['h']);
imagesavealpha($final_img, true);
$transColor = imagecolorallocatealpha($final_img, 0, 0, 0, 127);
imagefill($final_img, 0, 0, $transColor);
$rotate = imagecreatefrompng('arrow.png');
$src = imagerotate($rotate, $angle, $transColor); //rotated my image
$src_x = ImageSX($src); //find out new x width
$src_y = ImageSY($src); //find out new y height
$src_widthx = $src_x/2 - $props['w']/2; // divide each by 2 and then subtract desired end width from wider rotated width
$src_heighty = $src_y/2 - $props['h']/2; // and again for height
imagecopy($final_img, $src, 0, 0, $src_widthx, $src_heighty, $props['w'], $props['h']);
header('Content-Type: image/png');
imagepng($final_img);
あなたの答えAmitayに感謝します。別の方法でやりたいことを達成するためのソリューションを勧めたり、コードを変更したりすることで、あなたはソリューションをお勧めしますか? – jskidd3
「n」とは何ですか?「m」とは何ですか?私があなたの答えを受け入れるために、もう少し詳細が必要です – jskidd3
私はあなたが提案したものを試しました。残念なことに、空白の画像が大きくなると問題は解決されません。作成された空白の画像のサイズにかかわらず、常に矢印が切り取られて表示されます。 – jskidd3