/** * * *等比缩放 * @param unknown_type $srcImage 源图片路径 * @param unknown_type $toFile 目标图片路径 * @param unknown_type $maxWidth 最大宽 * @param unknown_type $maxHeight 最大高 * @param unknown_type $imgQuality 图片质量 * @return unknown */ function resize( $srcImage , $toFile , $maxWidth = 100, $maxHeight = 100, $imgQuality =100) { list( $width , $height , $type , $attr ) = getimagesize ( $srcImage ); if ( $width < $maxWidth || $height < $maxHeight ) return ; switch ( $type ) { case 1: $img = imagecreatefromgif( $srcImage ); break ; case 2: $img = imagecreatefromjpeg( $srcImage ); break ; case 3: $img = imagecreatefrompng( $srcImage ); break ; } $scale = min( $maxWidth / $width , $maxHeight / $height ); //求出绽放比例 if ( $scale < 1) { $newWidth = floor ( $scale * $width ); $newHeight = floor ( $scale * $height ); $newImg = imagecreatetruecolor( $newWidth , $newHeight ); imagecopyresampled( $newImg , $img , 0, 0, 0, 0, $newWidth , $newHeight , $width , $height ); $newName = "" ; $toFile = preg_replace( "/(.gif|.jpg|.jpeg|.png)/i" , "" , $toFile ); switch ( $type ) { case 1: if (imagegif( $newImg , "$toFile$newName.gif" , $imgQuality )) return "$newName.gif" ; break ; case 2: if (imagejpeg( $newImg , "$toFile$newName.jpg" , $imgQuality )) return "$newName.jpg" ; break ; case 3: if (imagepng( $newImg , "$toFile$newName.png" , $imgQuality )) return "$newName.png" ; break ; default : if (imagejpeg( $newImg , "$toFile$newName.jpg" , $imgQuality )) //开源代码phpfensi.com return "$newName.jpg" ; break ; } imagedestroy( $newImg ); } imagedestroy( $img ); return false; }
查看更多关于php按指定大小等比缩放生成上传图片缩略图的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did29455