現在、PNG、JPG/JPEG、GIF画像のみを受け付ける画像アップロード入力があります。 ファイルが有効であれば、それは、これが正常に動作しますが、唯一のPNG画像のため、明らかにPHP一般的に使用されるファイル形式のimagecreate()PNG?
imagecreatefrompng()
imagecopy()
imagejpg()
を使用して画像からサムネイルを作成するために進みます。
「imagecreatefrompng()」を使用する最も論理的で効率的な方法は、提出された適切なファイル形式を使用する点を除きます。私が考えることができるのは、複数の "imagecreatefrom_ _()"を使用するif/elseですが、それは正しいとは思われません。
また、現在の画像jpg()ではなく、出力された形式をPNGにすることができます。
$extension = strtolower(strrchr($file, '.'));
switch ($extension) {
case '.jpg':
case '.jpeg':
$img = @imagecreatefromjpeg($file);
break;
case '.gif':
$img = @imagecreatefromgif($file);
break;
case '.png':
$img = @imagecreatefrompng($file);
break;
default:
$img = false;
break;
}
-EDIT-は、あなたの質問の後半部分を見ていない、あなただけ保存するimagepngを使用して、それを保存する必要がありますので、同じよう
イメージは、一度GDによって読み込まれると、すべて同じ形式で内部的に格納されます。適切なファイルタイプを選択して他のファイルタイプに保存する必要があるのは、読み込みと保存のときだけです。 –