イメージをアップロードできる管理サイトを持つWebアプリケーションを作成しようとしています。私はすでに正方形の写真を作るのにimagecopy()
を使用しています。しかし、画像が大きすぎる場合は、imagecopyresized()
でサイズを変更しようとしています。imagecopyのサイズを変更したPHP
$file = $_FILES['img']['tmp_name'];
$filename = $_FILES['img']['name'];
$size = 400;
$destino = imagecreatetruecolor($size, $size);
list($width, $height) = getimagesize($file);
$correction = $size/2;
$widths = $width/2 - $correction;
$heights = $height/2 - $correction;
$origen = imagecreatefromjpeg($file);
$overflow = $size + 200;
if($width > $overflow){
$modified = $origen;
$ratio = $width/$height;
$growth = $width/$overflow;
$final = $overflow/$growth;
if($ratio > 1){
$newwidth = $final * $ratio;
}else{
$newwidth = $final/$ratio;
}
imagecopyresized($origen, $modified, 0, 0, 0, 0, $final, $newwidth, $width, $height);
}
imagecopy($destino, $origen, 0, 0, $widths, $heights, $size, $size);
ここでの問題は$overflow
よりも大きい画像への変更はありませんということです:私はすでにこのコードを使用しました。
は、写真の元の寸法を維持し、変形を防止することです。
$growth
は、画像が大きくなるほど、コピーされるインデックスです。
$final
は、成長指数をカウントとする最終幅です。
うわー!あなたは私の命を救いました!ありがとう! –