アップロードした画像のサイズを150x150ピクセルに変更する画像アップロードスクリプトがあります。画像が四角い場合は素晴らしいですが、誰かが640x200ピクセルの画像をアップロードした場合、画像がきれいに見えません。php image resize - 中央からサムネイルを切り抜いたか?
私は基本的に画像の中心に基づいて四角いサムネイルを自動的に作成する必要があります。画像が広い場合は、左右の面を切り取る必要があります。イメージが高い場合は、上部と下部を切り取る必要があります。
私はここに正確には、オンラインのコード変更が見つかりました:
Upload, resize, and crop center of image with PHP
私はPHPと素晴らしいじゃないと私は私のコードを結合しようとしている、今は数時間のためにこれにしてきました下のオプションを使用してください。もし誰かが私を助けることができればそれは素晴らしいだろう:)
$target_path = "avatars/";
$image = $_FILES['uploadedfile']['name'];
$target_path = $target_path . basename($_FILES['uploadedfile']['name']);
$_POST["userpic"]=$_FILES['uploadedfile']['name'];
if($_FILES['uploadedfile']['tmp_name']!="") {
$imagetype=explode(".",$_POST["userpic"]);
if($imagetype[1]=="jpg" || $imagetype[1]=="JPG" || $imagetype[1]=="gif" || $imagetype[1]=="GIF")
{
$target_path = "avatars/";
$thaid=$_POST["user_id"];
$target_path = $target_path .$thaid.".".$imagetype[1];
$target_path2 =$thaid.".".$imagetype[1];
move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path);
$_POST["userpic"]=$target_path2;
$n_width=$setts['avatar_width'];
$n_height=$setts['avatar_height'];
$tsrc=$target_path;
$add=$target_path;
if($imagetype[1]=="jpg" || $imagetype[1]=="JPG")
{
$im=imagecreatefromjpeg($add);
$width=imagesx($im);
$height=imagesy($im);
$newimage=imagecreatetruecolor($n_width,$n_height);
$ar = 1.00;
if ($ar < 1) { // "tall" crop
$cropWidth = min($height * $ar, $width);
$cropHeight = $cropWidth/$ar;
}
else { // "wide" crop
$cropHeight = min($width/$ar, $height);
$cropWidth = $cropHeight * $ar;
}
imagecopyresized($newimage,$im,0,0,0,0,$n_width,$n_height,$cropWidth,$cropHeight);
imagejpeg($newimage,$tsrc,100);
}
if($imagetype[1]=="gif" || $imagetype[1]=="GIF")
{
$im=imagecreatefromgif($add);
$width=imagesx($im);
$height=imagesy($im);
$newimage=imagecreatetruecolor($n_width,$n_height);
imagecopyresized($newimage,$im,0,0,0,0,$n_width,$n_height,$width,$height);
imagegif($newimage,$tsrc,100);
}
}
else
{
$_POST["userpic"]="noimage.jpg";
}
}
ありがとうございます!私はこれまでスクリプトを編集していましたが、中央に置くのではなく、左側から画像を切り取ることを除いて動作しています。私は何が欠けているすべてのアイデア? – user1227914
ありがとうございます!私はこれまでスクリプトを編集していましたが、中央に置くのではなく、左側から画像を切り取ることを除いて動作しています。私は何が欠けているすべてのアイデア? – user1227914
(私は上記のソースコードを編集しました) – user1227914