php裁剪图片

<?php
$src_path = 'ha.jpg';
//创建源图的实例
$src = imagecreatefromstring(file_get_contents($src_path));

//裁剪开区域左上角的点的坐标
$x = 100;
$y = 12;
//裁剪区域的宽和高
$width = 200;
$height = 200;
//最终保存成图片的宽和高,和源要等比例,否则会变形
$final_width = 100;
$final_height = round($final_width * $height / $width);

//将裁剪区域复制到新图片上,并根据源和目标的宽高进行缩放或者拉升
$new_image = imagecreatetruecolor($final_width, $final_height);
imagecopyresampled($new_image, $src, 0, 0, $x, $y, $final_width, $final_height, $width, $height);

//输出图片
header('Content-Type: image/jpeg');
imagejpeg($new_image);

imagedestroy($src);
imagedestroy($new_image);

ecshop后台处理图片

         /*处理图片开始*/
                /*把图片处理成想要的样式*/
                $src_img = ROOT_PATH . $goods_img;
                include_once(ROOT_PATH . 'includes/cls_json.php');
                $json = new JSON;
                $avatar_data = $_POST['avatar_data'];
                $avatar = $json->decode($avatar_data, true);
                $dst_w = trim($avatar['width']);
                $dst_h = trim($avatar['height']);
                $xx = trim($avatar['x']);
                $yy = trim($avatar['y']);
                $rotate = trim(-$avatar['rotate']);

                list($src_w, $src_h) = getimagesize($src_img);  // 获取原图尺寸

                /*剪裁--得到裁剪的图像*/
                $source = imagecreatefromjpeg($src_img);
                $rotate = imagerotate($source, $rotate, 0);
                $croped = imagecreatetruecolor($dst_w, $dst_w);
                imagecopy($croped, $rotate, 0, 0, $xx, $yy, $dst_w, $dst_h);

                /*缩放---保证清晰度*/
                $scale = $dst_w / $src_w;
                $final_w = $dst_w * $scale;
                $final_h = $dst_w * $scale;
                $target = imagecreatetruecolor($final_w, $final_h);
                imagecopyresampled($target, $croped, 0, 0, 0, 0, $final_w, $final_h, $dst_w, $dst_h);
                /*处理文件结束*/
                $timestamp = time();
                imagejpeg($target, $src_img);
                imagedestroy($croped);
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值