博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php图片裁剪函数
阅读量:5834 次
发布时间:2019-06-18

本文共 2084 字,大约阅读时间需要 6 分钟。

本文实例为大家分享了php图片裁剪函数的具体代码,供大家参考,具体内容如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
/*
 
* 图片裁剪工具
 
* 将指定文件裁剪成正方形
 
* 以中心为起始向四周裁剪
 
* @param $src_path string 源文件地址
 
* @param $des_path string 保存文件地址
 
* @param $des_w double 目标图片宽度
 
* */
function
img_cut_square(
$src_path
,
$des_path
,
$des_w
=100){
  
$img_info
=
getimagesize
(
$src_path
);
//获取原图像尺寸信息
  
$img_width
=
$img_info
[0];
//原图宽度
  
$img_height
=
$img_info
[1];
//原图高度
  
$img_type
=
$img_info
[2];
//图片类型 1 为 GIF 格式、 2 为 JPEG/JPG 格式、3 为 PNG 格式
  
if
(
$img_type
!= 2 &&
$img_type
!= 3)
return
;
 
  
/*计算缩放尺寸*/
  
if
(
$img_height
>
$img_width
){
    
$scale_width
=
$des_w
;
//缩放宽度
    
$scale_height
=
round
(
$des_w
/
$img_width
*
$img_height
);
//缩放高度
 
    
$src_y
=
round
((
$scale_height
-
$des_w
)/2);
    
$src_x
= 0;
  
}
else
{
    
$scale_height
=
$des_w
;
    
$scale_width
=
round
(
$des_w
/
$img_height
*
$img_width
);
 
    
$src_y
= 0;
    
$src_x
=
round
((
$scale_width
-
$des_w
)/2);
  
}
 
  
$dst_ims
= imagecreatetruecolor(
$scale_width
,
$scale_height
);
//创建真彩画布
  
$white
= imagecolorallocate(
$dst_ims
, 255, 255, 255);
  
imagefill(
$dst_ims
, 0, 0,
$white
);
  
if
(
$img_type
== 2){
    
$src_im
= @imagecreatefromjpeg(
$src_path
);
//读取原图像
  
}
else
if
(
$img_type
== 3){
    
$src_im
= @imagecreatefrompng(
$src_path
);
//读取原图像
  
}
 
  
imagecopyresized(
$dst_ims
,
$src_im
, 0, 0 ,0, 0 ,
$scale_width
,
$scale_height
,
$img_width
,
$img_height
);
//缩放图片到指定尺寸
 
 
  
$dst_im
= imagecreatetruecolor(
$des_w
,
$des_w
);
//  $white = imagecolorallocate($dst_im, 255, 255, 255);
//  imagefill($dst_im, 0, 0, $white);
  
imagecopy(
$dst_im
,
$dst_ims
, 0, 0,
$src_x
,
$src_y
,
$des_w
,
$des_w
);
//开始裁剪图片为正方形
// imagecopyresampled($dst_im, $src_im, $src_x, $src_y, 0, 0, $real_width, $real_width,$img_width,$img_height);
  
if
(
$img_type
== 2) {
    
imagejpeg(
$dst_im
,
$des_path
);
//保存到文件
  
}
else
if
(
$img_type
== 3){
    
imagepng(
$dst_im
,
$des_path
);
  
}
//  imagejpeg($dst_im);//输出到浏览器
  
imagedestroy(
$dst_im
);
  
imagedestroy(
$dst_ims
);
  
imagedestroy(
$src_im
);
}

 

 
 attach_img
 attach_img
 attach_img
 attach_img
 attach_img
 attachment
 attach_img
 attach_img
 attach_img
 attachment
 attach_img
 attach_img
 attach_img
 attach_img
 attach_img
 attach_img

转载于:https://www.cnblogs.com/janera/p/10016744.html

你可能感兴趣的文章
Image.FromStream与Image.FromFile使用区别
查看>>
Unity发布安卓Splash Image适应手机、平板
查看>>
设备树API
查看>>
Eclipse 找不到Server选项
查看>>
jquery 实现菜单的下拉菜单
查看>>
python入门(3)python的解释器
查看>>
Angular、React.js 和Node.js到底选谁?
查看>>
[Android] 通过Menu实现图片怀旧、浮雕、模糊、光照和素描效果
查看>>
两DD-WRT组建WDS设置
查看>>
C++简单介绍
查看>>
字母图形
查看>>
ASP.NET Core 网站发布到Linux服务器(转)
查看>>
《简明Python编程》核心笔记(1~5章)
查看>>
FastDFS概念、原理及CentOS7下安装实战
查看>>
(六)Thymeleaf的 th:* 属性之—— th: ->text& utext& href
查看>>
【翻译自mos文章】使用aum( Automatic Undo Management) 时遇到 ORA-01555错误--- 原因和解决方式。...
查看>>
Android SwipeToDismiss:左滑/右滑删除ListView条目Item
查看>>
基础数位DP小结
查看>>
R8500 MPv2 版本 刷梅林改版固件
查看>>
HDU 5303 Delicious Apples (2015多校第二场 贪心 + 枚举)
查看>>