2人の写真をマージする際に問題があります... 私はバッジと呼ばれるpngファイルをユーザーがアップロードした画像とマージしようとしています。 ユーザーはpng oder gifファイルをアップロードするとすべてうまく動作しますが、jpeg画像をアップロードすると出力画像が本当に変わって見えます。それは色の問題のようです。imagecopyresized color jpegが動作しません
ここに私のコード:
//Calculate position for badge (right bottom corner)
$badgeRightPosition = $imageWidth - $badgeWidth;
$badgeLeftPosition = $imageHeight - $badgeHeight;
$image = imagecreatefromstring(file_get_contents($image));
$badge = imagecreatefromstring(file_get_contents($badge));
$trueColorImage = imagecreatetruecolor($imageWidth, $imageHeight);
imagealphablending($trueColorImage, true);
imagesavealpha($trueColorImage, true);
imagealphablending($badge, true);
imagesavealpha($badge, true);
imagealphablending($image, true);
imagesavealpha($image, true);
imagecopyresized($trueColorImage, $image, 0, 0, 0, 0, $imageWidth, $imageHeight, $imageWidth, $imageHeight);
imagecopyresized($trueColorImage, $badge, $badgeRightPosition, $badgeLeftPosition, 0, 0, $imageWidth, $imageHeight, $badgeWidth, $badgeHeight);
これはどうやってですか?いくつかのコードを入力すると、回答が得られます。 – Nick
また、アップロードされた画像が許容最大値よりも大きい場合は、 widthを指定すると、画像のサイズが変更されます。 正確にここに問題があります...画像のサイズ変更後(画像がjpgの場合)は破損します –
imagecopyresized()の代わりにimagecopyresampled()を使用すると便利ですか? – JochenJung