PHP に実装されているいくつかの画像サイズ変更機能を使用しましたが、一部の画像は調整後に完全に変形し、一部の画像には理由もなく余分な線が表示され、一部の画像の明るさが満足のいくものではありません。今日、もう一度検索して、さらにいくつかの結果を取得しました。
if(isset($_FILES['manager_photo']) && !empty($_FILES['manager_photo']['name'])) { $photo_name=$manager_name."-".$_FILES["manager_photo"]["name"]; $tmpname = $_FILES['manager_photo']['tmp_name']; $file_ext= substr($photo_name, strripos($photo_name, '.')); $dir = "./manager_photos/"; // finally resize @img_resize( $tmpname , 90 , $dir , $photo_name, 1); } function img_resize( $tmpname, $size, $save_dir, $save_name, $maxisheight = 0 ) { $save_dir .= ( substr($save_dir,-1) != "/") ? "/" : ""; $gis = getimagesize($tmpname); $type = $gis[2]; switch($type) { case "1": $imorig = imagecreatefromgif($tmpname); break; case "2": $imorig = imagecreatefromjpeg($tmpname);break; case "3": $imorig = imagecreatefrompng($tmpname); break; default: $imorig = imagecreatefromjpeg($tmpname); } $x = imagesx($imorig); $y = imagesy($imorig); $woh = (!$maxisheight)? $gis[0] : $gis[1] ; if($woh <= $size) { $aw = $x; $ah = $y; } else { if(!$maxisheight){ $aw = $size; $ah = $size * $y / $x; } else { $aw = $size * $x / $y; $ah = $size; } } $im = imagecreatetruecolor($aw,$ah); if (imagecopyresampled($im,$imorig , 0,0,0,0,$aw,$ah,$x,$y)) if (imagejpeg($im, $save_dir.$save_name)) return true; else return false; }//img_resize
ImageMagick を使用して実装します
ImageMagick を使用して実装すると誰かが言及していましたが、これには多くのオプションがあり、非常に少ないコードで画像調整を実現できます。勉強する価値があります。
$image = new Imagick($src); $image->resizeImage($width,$height,Imagick::FILTER_LANCZOS,1); $image->cropImage($width_2, $height_2, $x, $y); $image->setCompression(Imagick::COMPRESSION_JPEG); $image->setImageCompressionQuality(82); $image->writeImage($dest); $image->destroy();
php_class_uploadを使って実装してください
上記の紹介が合わない場合は、画像のアップロードや調整だけでなく、カット、切り取り、透かしの追加、回転、反転なども行えます。
その他の実装コードリファレンス
このコードは画像と正しい名前を返すことができますが、黒しか返せません。
function resize($originalImage){ list($width, $height) = getimagesize($originalImage); $newName=basename($originalImage); $imageResized = imagecreatetruecolor(128, 128); $imageTmp = imagecreatefromjpeg($originalImage); imagecopyresampled($imageResized, $imageTmp, 0, 0, 0, 0, 128, 128, $width, $height); imagejpeg($imageResized, "resizedImg/$newName",100); imageDestroy($imageResized); }
コードを改善したら、次のコードを見て色を設定します。
りー以上が画像サイズを調整するPHPの画像リサイズ関数の詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。