美工统筹SEO,为企业电子商务营销助力!
PHP图片裁剪与缩放示例(无损裁剪图片)一佰互联网站扶植(www.taishanly.com) 宣布时辰:2020-04-26 09:02:38 阅读数: 97 |
本文先容了PHP图片裁剪与缩放示例,空话不几多,具体代码以下: /* *exif_imagetype -- 判定一个图象的范例 *功效申明:函数功效是把一个图象裁剪为肆意巨细的图象,并坚持图象稳定形 *参数申明:输入 必要处置图片的 文件名,天生新图片的保管文件名,天生新图片的宽,天生新图片的高 */ // 取得肆意巨细图象,缺乏处所拉伸,不发生变形,不留下空缺function image_resize($src_file, $dst_file, $new_width, $new_height){ $new_width = intval($new_width); $new_height = intval($new_width); if ($new_width < 1 || $new_height < 1) { echo "params width or height error !"; exit(); } if (!file_exists($src_file)) { echo $src_file . " is not exists !"; exit(); } // 图象范例 $type = exif_imagetype($src_file); $support_type = array(IMAGETYPE_JPEG, IMAGETYPE_PNG, IMAGETYPE_GIF); if (!in_array($type, $support_type, true)) { echo "this type of image does not support! only support jpg , gif or png"; exit(); } //Load image switch($type) { case IMAGETYPE_JPEG : $src_img = imagecreatefromjpeg($src_file); break; case IMAGETYPE_PNG : $src_img = imagecreatefrompng($src_file); break; case IMAGETYPE_GIF : $src_img = imagecreatefromgif($src_file); break; default : echo "Load image error!"; exit(); } $w = imagesx($src_img); $h = imagesy($src_img); $ratio_w = 1.0 * $new_width / $w; $ratio_h = 1.0 * $new_height / $h; $ratio = 1.0; // 天生的图象的高宽比本来的都小,或都大 ,准绳是 取大比例减少,取大比例减少(减少的比例就比拟小了) if (($ratio_w < 1 && $ratio_h < 1) || ($ratio_w > 1 && $ratio_h > 1)) { if ($ratio_w < $ratio_h) { $ratio = $ratio_h; // 环境一,宽度的比例比高度标的目的的小,根据高度的比例标准来裁剪或减少 } else { $ratio = $ratio_w; } // 界说一其中间的姑且图象,该图象的宽高比 恰好知足方针请求 $inter_w = (int)($new_width / $ratio); $inter_h = (int)($new_height / $ratio); $inter_img = imagecreatetruecolor($inter_w, $inter_h); //var_dump($inter_img); imagecopy($inter_img, $src_img, 0, 0, 0, 0, $inter_w, $inter_h); // 天生一个以最大边长度为巨细的是方针图象$ratio比例的姑且图象 // 界说一个新的图象 $new_img = imagecreatetruecolor($new_width, $new_height); //var_dump($new_img);exit(); imagecopyresampled($new_img, $inter_img, 0, 0, 0, 0, $new_width, $new_height, $inter_w, $inter_h); switch($type) { case IMAGETYPE_JPEG : // 存储图象 imagejpeg($new_img, $dst_file, 100); break; case IMAGETYPE_PNG : imagepng($new_img, $dst_file, 100); break; case IMAGETYPE_GIF : imagegif($new_img, $dst_file, 100); break; default : break; } }// end if 1 // 2 方针图象 的一个边大于原图,一个边小于原图 ,先减少平普图象,而后裁剪 // =if( ($ratio_w < 1 && $ratio_h > 1) || ($ratio_w >1 && $ratio_h <1) ) else { $ratio = $ratio_h > $ratio_w ? $ratio_h : $ratio_w; //取比例大的阿谁值 // 界说一其中间的大图象,该图象的高或宽和方针图象相称,而后对原图减少 $inter_w = (int)($w * $ratio); $inter_h = (int)($h * $ratio); $inter_img = imagecreatetruecolor($inter_w, $inter_h); //将原图缩放比例后裁剪 imagecopyresampled($inter_img, $src_img, 0, 0, 0, 0, $inter_w, $inter_h, $w, $h); // 界说一个新的图象 $new_img = imagecreatetruecolor($new_width, $new_height); imagecopy($new_img, $inter_img, 0, 0, 0, 0, $new_width, $new_height); switch($type) { case IMAGETYPE_JPEG : // 存储图象 imagejpeg($new_img, $dst_file, 100); break; case IMAGETYPE_PNG : imagepng($new_img, $dst_file, 100); break; case IMAGETYPE_GIF : imagegif($new_img, $dst_file, 100); break; default : break; } }// if3 }// end function//输入新图片image_resize("test.jpg", "demo.jpg", "1200px", "1200px"); 以上便是本文的全数内容,但愿对大师的进修有所赞助,也但愿大师多多撑持网页设想。 |
TAG标签: PHP图片裁剪与缩放示例(无损裁剪图片) |
上一篇:php建造基于xml的RSS定阅源功效示例 下一篇: php完成XML和数组的彼此转化功效示例 |
[前往消息列表] |