Home >Backend Development >PHP Problem >How to generate thumbnails in php without distortion
## Operating environment for this article: Windows 7 system, PHP version 7.1 , DELL G3 computerphp method to generate thumbnails without distortion: 1. Create a PHP sample file; 2. Generate images in equal proportions through the "function reSizeImg($imgSrc, $resize_width...) {...}" method Thumbnails will do.
php How to generate thumbnails without distortion?
Use the PHP function to generate image thumbnails in equal proportions without distortion code//等比例生成图片缩略图不失真 /** * 生成缩略图 * $imgSrc 图片源路径 * $resize_width 图片宽度 * $resize_height 图片高度 * $dstimg 缩略图路径 * $isCut 是否剪切图片 */ function reSizeImg($imgSrc, $resize_width, $resize_height, $dstimg, $isCut = false) { //图片的类型 $type = substr(strrchr($imgSrc, "."), 1); //初始化图象 if ($type == "jpg" || $type == "jpeg") { $im = imagecreatefromjpeg($imgSrc); } if ($type == "gif") { $im = imagecreatefromgif($imgSrc); } if ($type == "png") { $im = imagecreatefrompng($imgSrc); } $width = imagesx($im); $height = imagesy($im); //生成图象 //改变后的图象的比例 $resize_ratio = ($resize_width) / ($resize_height); //实际图象的比例 $ratio = ($width) / ($height); if (($isCut) == 1) { if ($ratio >= $resize_ratio) { //高度优先 $newimg = imagecreatetruecolor($resize_width, $resize_height); imagecopyresampled($newimg, $im, 0, 0, 0, 0, $resize_width, $resize_height, (($height) * $resize_ratio), $height); ImageJpeg($newimg, $dstimg); } if ($ratio < $resize_ratio) { //宽度优先 $newimg = imagecreatetruecolor($resize_width, $resize_height); imagecopyresampled($newimg, $im, 0, 0, 0, 0, $resize_width, $resize_height, $width, (($width) / $resize_ratio)); ImageJpeg($newimg, $dstimg); } } else { if ($ratio >= $resize_ratio) { $newimg = imagecreatetruecolor($resize_width, ($resize_width) / $ratio); imagecopyresampled($newimg, $im, 0, 0, 0, 0, $resize_width, ($resize_width) / $ratio, $width, $height); ImageJpeg($newimg, $dstimg); } if ($ratio < $resize_ratio) { $newimg = imagecreatetruecolor(($resize_height) * $ratio, $resize_height); imagecopyresampled($newimg, $im, 0, 0, 0, 0, ($resize_height) * $ratio, $resize_height, $width, $height); ImageJpeg($newimg, $dstimg); } } ImageDestroy($im); } $result = reSizeImg('images/15M.jpg', 1280, 1280,'thumb/xiao15.jpg');Recommended learning: "
PHP Video Tutorial"
The above is the detailed content of How to generate thumbnails in php without distortion. For more information, please follow other related articles on the PHP Chinese website!