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 중국어 웹사이트의 기타 관련 기사를 참조하세요!