WideImage ライブラリを使用して、アップロードした画像のサイズを変更しようとしています。
可能な限り最高の解像度に変換する必要があります。出力サイズは Width:460px Height:345px である必要があります
サイズ変更のソースは次のとおりです。
list($w, $h) = getimagesize($_FILES['image']['tmp_name']);
$wpercent = ($w/460)*100;
$hpercent = ($h/345)*100;
if ($wpercent >= 100 && $hpercent >= 100) {
// Both is over 100% of the allowed size, then resize so the smaller side match.
if ($wpercent > $hpercent) {
// height is smallest
$remove_percent = $hpercent - 100;
}else{
// width is smallest
$remove_percent = $wpercent - 100;
}
$new_h_percent = $hpercent - $remove_percent;
$new_w_percent = $wpercent - $remove_percent;
$new_w = ($w/460)*$new_w_percent;
$new_h = ($h/345)*$new_h_percent;
$img = $img->resize($new_w, $new_h, 'inside');
$img = $img->crop("center", "middle", 460, 345);
}else {
// En af dem er for små
if ($wpercent > $hpercent) {
// height is smallest
$add_percent = 100 - $hpercent;
}else{
// width is smallest
$add_percent = 100 - $wpercent;
}
$new_h_percent = $hpercent + $add_percent;
$new_w_percent = $wpercent + $add_percent;
$new_w = ($w/460)*$new_w_percent;
$new_h = ($h/345)*$new_h_percent;
$img = $img->resize($new_w, $new_h, 'inside');
$img = $img->crop("center", "middle", 460, 345);
}
$img->saveToFile('uploads/tmp/'.$new_name);
サイズが変更されますが、必要なサイズよりも小さいサイズになります。
何か案は?
また、必要に応じてトリミングする必要があります。