画像の幅と高さが 400px 未満の場合は、サイズを変更せずに $original を $resized に保存します。しかし、 を呼び出すと$original->destroy()
、 に格納されているデータ$resized
も取得されますnull
。オリジナルを破棄し、そのコピーを$resized
変数に保持する方法は?
$original = WideImage::loadFromFile($media_url);
$original_w = $original->getWidth();
$original_h = $original->getHeight();
if($original_w > 400)
$resized = $original->resize(400, null);
elseif($original_w > 400 && $original_h > 400)
$resized = $original->resize(null, 400);
elseif($original_w < 400 && $original_h > 400)
$resized = $original->resize(null, 400);
else
$resized = $original;
$original->destroy();
$img = WideImage::createTrueColorImage($resized->getWidth(), $resized->getHeight());
$bg = $img->allocateColor(255,255,255);
$img->fill(0,0,$bg);
$img->merge($resized)->saveToFile(sprintf('./uploads/photos/%s_resized.jpg', $rand_str));