php 图像裁剪(自定义裁剪图片大小)
2016-10-26 15:05
288 查看
<?php /** * 图像裁剪 * @param $title string 原图路径 * @param $content string 需要裁剪的宽 * @param $encode string 需要裁剪的高 */ function imagecropper($source_path, $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); //保存图片到本地(两者选一) //$randNumber = mt_rand(00000, 99999). mt_rand(000, 999); //$fileName = substr(md5($randNumber), 8, 16) .".png"; //imagepng($target_image,'./'.$fileName); //imagedestroy($target_image); //直接在浏览器输出图片(两者选一) header('Content-Type: image/jpeg'); imagepng($target_image); imagedestroy($target_image); imagejpeg($target_image); imagedestroy($source_image); imagedestroy($target_image); imagedestroy($cropped_image); } //调用 //imagecropper('./img033.jpg',300,300); imagecropper('./img033.jpg',140,140); //imagecropper('./img033.jpg',55,55);
相关文章推荐
- php 图像裁剪(自定义裁剪图片大小)
- PHP获取远程图片并调整图像大小
- 79-图片裁剪(自定义区域大小)
- PHP图片大小裁剪imagecopy、缩放imagecopyresampled函数
- java读取图片处理实现缩放裁剪,用于个人信息中上传图片自定义头像大小
- php任意图像裁剪成固定大小[zz]
- PHP图像裁剪为任意大小的图像,图像不变形,不留下空白
- PHP图像裁剪为任意大小的图像,图像不变形,不留下空白
- android 调用系统自带的选择图片 然后进行自定义大小裁剪
- PHP获取远程图片并调整图像大小
- php任意图像裁剪成固定大小
- PHP获取远程图片并调整图像大小(转)
- php 修改图片的大小、裁剪图片以及生成缩略图方法
- PHP实现的自定义图像居中裁剪函数示例【测试可用】
- PHP图片裁剪之获取图片大小getimagesize
- php任意图像裁剪成固定大小
- PHP获取远程图片并调整图像大小
- 使用PHP实现生成固定大小图片缩略图功能(智能裁剪,图片不失真)
- php裁剪图片大小