/*TODO 图片裁剪*/
function img_cutting($file_old,$file_new,$h,$w){
$image = $file_old; // 原图
$dir = 'xxxxxx';//新地址
if(!is_dir($dir)){
mkdir($dir,0777,true);
}
$imgstream = file_get_contents($image);
$im = imagecreatefromstring($imgstream);
$x = imagesx($im);//获取图片的宽
$y = imagesy($im);//获取图片的高
// 缩略后的大小
$xx = $h;
$yy = $w; if($x>$y){
//图片宽大于高
$sx = abs(($y-$x)/2);
$sy = 0;
$thumbw = $y;
$thumbh = $y;
} else {
//图片高大于等于宽
$sy = abs(($x-$y)/2.5);
$sx = 0;
$thumbw = $x;
$thumbh = $x;
}
$img_info= getimagesize($file_old);
if(end($img_info) == 'image/png'){
$img = imagecreatefrompng($file_old);
imagesavealpha($img,true);//这里很重要;
if(function_exists("imagecreatetruecolor")) {
$dim = imagecreatetruecolor($yy, $xx); // 创建目标图gd2
} else {
$dim = imagecreate($yy, $xx); // 创建目标图gd1
}
imagealphablending($dim,false);//这里很重要,意思是不合并颜色,直接用$img图像颜色替换,包括透明色;
imagesavealpha($dim,true);//这里很重要,意思是不要丢了$thumb图像的透明色;
imageCopyreSampled ($dim,$im,0,0,$sx,$sy,$yy,$xx,$thumbw,$thumbh);
return imagepng($dim,$file_new);
}elseif(end($img_info) != 'image/gif'){
if(function_exists("imagecreatetruecolor")) {
$dim = imagecreatetruecolor($yy, $xx); // 创建目标图gd2
} else {
$dim = imagecreate($yy, $xx); // 创建目标图gd1
}
imageCopyreSampled ($dim,$im,0,0,$sx,$sy,$yy,$xx,$thumbw,$thumbh);
return imagejpeg($dim,$file_new,100);
}

最新文章

  1. vector、list、deque三者比较
  2. SQL SERVER中隐式转换的一些细节浅析
  3. padding
  4. Finereport集群配置
  5. SpringMVC数据库链接池,以及其他相关配置
  6. The 2013 ACM-ICPC Asia Changsha Regional Contest - K
  7. 菜鸟学习Spring——第一个例子
  8. JDBC和JPA调用储存过程 接收存储过程有返回值
  9. WebStorm配置(2016/11/18更新)
  10. Oracle数据库对象_同义词
  11. linux开关机命令
  12. CentOS ulimit
  13. (一) 从Angular1到Angular2的杂谈
  14. (转)目前比较全的CSS重设(reset)方法总结
  15. 【NOIP2012】疫情传递
  16. GitHub下载单个文件
  17. 在Linux中复制文件夹下的全部文件到另外文件夹
  18. openstack Q版部署-----nova服务配置-计算节点(6)
  19. npm报错处理
  20. 【转】Angular学习总结--很详细的教程

热门文章

  1. 斜率优化 DP
  2. 5.Dockerfile 定制镜像
  3. 关于 RMAN 控制文件自动备份路径中指定的 %F 说明
  4. jarvis OJ部分writeup
  5. QQ第三方登录(一)
  6. C++-POJ2159-Candies[spfa][栈优化][邻接表]
  7. yolov3 讲解
  8. 题解 【洛谷P1115】最大子段和
  9. xstart访问centos7
  10. MATLAB一些常用的function