php生成缩略图的两种方法(代码)
php语言2.2W
PHP是最近的热门语言,那么如果php要生成缩略图有什么办法呢?其实php生成缩略图有两种方法,核心代码如下,更多消息请关注应届毕业生网! public function getImage(){ // create instance $basePath = base_path('public/'); $md5 = 'b8c3bf0b10a81c5b6a98c527868a0000';$sub1 = substr($md5, 0, 1);$sub2 = substr($md5, 1, 2); $subPath = sprintf("image/%s/%s/%s%s.jpg", $sub1, $sub2, $md5, '300x300');$sourcePath = sprintf("image/%s/%s/%s.jpg", $sub1, $sub2, $md5);//截成100x80的缩略图//$image = $this->getCropper($basePath.$sourcePath,$basePath.$subPath, 300, 300);$image = $this->getCrops($basePath.$sourcePath,$basePath.$subPath, 300, 300);} //生成缩略图 function getCropper($source_path,$NewImagePath, $target_width, $target_height){$source_info = getimagesize($source_path);$source_width = $source_info[0];$source_height = $source_info[1]; $source_mime = $source_info['mime']; $source_ratio = $source_height / $source_width;$target_ratio = $target_height / $target_width;// 源图过高if ($source_ratio > $target_ratio) { $cropped_width = $source_width; $cropped_height = $source_width * $target_ratio;$source_x = 0;$source_y = ($source_height - $cropped_height) / 2;} // 源图过宽 elseif ($source_ratio < $target_ratio) { $cropped_width = $source_height / $target_ratio;$cropped_height = $source_height;$source_x = ($source_width - $cropped_width) / 2;$source_y = 0;} // 源图适中 else { $cropped_width = $source_width; $cropped_height = $source_height; $source_x = 0; $source_y = 0; } switch ($source_mime) { case 'image/gif': $source_image = imagecreatefromgif($source_path);break;case 'image/jpeg': $source_image = imagecreatefromjpeg($source_path);break;case 'image/png': $source_image = imagecreatefrompng($source_path);break;default: return false; break; } $target_image = imagecreatetruecolor($target_width, $target_height);$cropped_image = imagecreatetruecolor($cropped_width, $cropped_height);// 图片裁剪imagecopy($cropped_image, $source_image, 0, 0, $source_x, $source_y, $cropped_width, $cropped_height);// 图片缩放imagecopyresampled($target_image, $cropped_image, 0, 0, 0, 0, $target_width, $target_height, $cropped_width, $cropped_height);header('Content-Type: image/jpeg');imagejpeg($target_image,$NewImagePath,100);imagedestroy($source_image);imagedestroy($target_image); imagedestroy($cropped_image); } //生成缩略图,填充白边 function getCrops($src_path,$NewImagePath,$width,$height){//源图对象$src_image = imagecreatefromstring(file_get_contents($src_path));$source_info = getimagesize($src_path);$source_mime = $source_info['mime'];$src_width = imagesx($src_image); $src_height = imagesy($src_image); switch ($source_mime) { case 'image/gif': $src_image = imagecreatefromgif($src_path);break;case 'image/jpeg': $src_image = imagecreatefromjpeg($src_path);break;case 'image/png': $src_image = imagecreatefrompng($src_path);break;default: return false; break; } //生成等比例的缩略图 //$tmp_image_width = 0; //$tmp_image_height = 0; if ($src_width / $src_height >= $width / $height) {$tmp_image_width = $width;$tmp_image_height = round($tmp_image_width * $src_height / $src_width);} else {$tmp_image_height = $height; $tmp_image_width = round($tmp_image_height * $src_width / $src_height);} $tmpImage = imagecreatetruecolor($tmp_image_width, $tmp_image_height);imagecopyresampled($tmpImage, $src_image, 0, 0, 0, 0, $tmp_image_width, $tmp_image_height, $src_width, $src_height);//添加白边$final_image = imagecreatetruecolor($width, $height);$color = imagecolorallocate($final_image, 255, 255, 255);imagefill($final_image, 0, 0, $color);$x = round(($width - $tmp_image_width) / 2);$y = round(($height - $tmp_image_height) / 2);imagecopy($final_image, $tmpImage, $x, $y, 0, 0, $tmp_image_width, $tmp_image_height);//输出图片header('Content-Type: image/jpeg'); imagejpeg($final_image,$NewImagePath,100);imagedestroy($src_image);imagedestroy($final_image); }
-
php统计数组元素个数的方法
PHP是一种HTML内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的.风格有类似于C语言,被广泛地运用。下面是小编为大家搜索整理的php统计数组元素个数的方法,希望大家能有所收获,更多精彩内容请及时关注我们应届毕业生考试网!count():对数组中的元...
-
PHP数据类型之数组变量详解
导语:PHP是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。下面我们来看看PHP数据类型之数组变量详解,希望对大家有所帮助。PHP中的数组实际上是一个有序图,是一种把values映射到keys的类型。一个数组实际上就...
-
PHP考试笔试题
用宝珠打扮自己,不如用知识充实自己。以下是小编为大家搜索整理的PHP考试笔试题,希望能给大家带来帮助!更多精彩内容请及时关注我们应届毕业生考试网!1、{PHP题目}标识符是变量的名称。PHP中的标识符用$+变量名来表示。标识符在PHP中遵循下列选项中的那些规则?()...
-
PHP学习10个基础知识总结
PHP学习过程中,必须要掌握基础的知识点,以下是小编为大家搜索整理的PHP学习10个基础知识总结,希望能给大家带来帮助!更多精彩内容请及时关注我们应届毕业生考试网!PHP10个小基础知识总结1,在HTML嵌入PHP脚本有三种办法:以下为引用的内容:<scriptlanguage="PHP">//嵌...