このサイトには広告が含まれています

PHP|PNG形式でアップロードした画像をJPGに変換・圧縮して保存するスクリプト

どうしてもJPGに統一したいときってありますよね。

//初期設定
$name = str_replace('.png', '.jpg', $_FILES['name']);
$put = 'XXXXX/' . $name; // 保存場所
$quality = 75; // 圧縮率:0-100 / 初期値80

// アップ画像を読み込む
$image = imagecreatefrompng($_FILES['tmp_name']);

// 背景画像を生成
$bg = imagecreatetruecolor(imagesx($image), imagesy($image));

// 透過部分を白で塗りつぶす
imagefill($bg, 0, 0, imagecolorallocate($bg, 255, 255, 255));

// ブレンドモードをオンにする
imagealphablending($bg, true);

// 読み込んだアップ画像を背景画像にコピー
imagecopy($bg, $image, 0, 0, 0, 0, imagesx($image), imagesy($image));

// 保存
imagejpeg($bg, $put, $quality);

// メモリを解放:PHP8.0以降は不要
imagedestroy($image);

コメント欄

タイトルとURLをコピーしました