本次以裁剪四个图片为例,图片如下
代码如下
public function cutImg($imgUrl){ try{ // 读取原始图片 $src_img = imagecreatefromjpeg($imgUrl); // 获取原始图片的宽度和高度 $src_width = imagesx($src_img); $src_height = imagesy($src_img); // 计算每个部分的宽度和高度 $part_width = $src_width / 2; $part_height = $src_height / 2; // 创建4个新的图片 $part1_img = imagecreatetruecolor($part_width, $part_height); $part2_img = imagecreatetruecolor($part_width, $part_height); $part3_img = imagecreatetruecolor($part_width, $part_height); $part4_img = imagecreatetruecolor($part_width, $part_height); // 将原始图片的指定部分复制到新的图片中 imagecopyresampled($part1_img, $src_img, 0, 0, 0, 0, $part_width, $part_height, $src_width / 2, $src_height / 2); imagecopyresampled($part2_img, $src_img, 0, 0, $src_width / 2, 0, $part_width, $part_height, $src_width / 2, $src_height / 2); imagecopyresampled($part3_img, $src_img, 0, 0, 0, $src_height / 2, $part_width, $part_height, $src_width / 2, $src_height / 2); imagecopyresampled($part4_img, $src_img, 0, 0, $src_width / 2, $src_height / 2, $part_width, $part_height, $src_width / 2, $src_height / 2); //添加水印 $text = '用积分可下载原图'; $textAi = 'AI生图'; $font = __DIR__ . '/../../../public/static/font/FangZhengShuSongJianTi-1.ttf'; // 字体文件的路径 $font_size = 20; // 字体大小 $font_color = imagecolorallocatealpha($part1_img, 255, 255, 255, 0); // 字体颜色,这里设置为白色 // 设置水印文字的位置和边距// $margin_left = ($thumbnail_width - mb_strlen($text)) / 2; // 水印距离右边界的距离 $textBoundingBox = imagettfbbox($font_size, 0, $font, $text); $textWidth = $textBoundingBox[2] - $textBoundingBox[0]; $margin_left = ($part_width - $textWidth) / 2; // 水印距离右边界的距离 $margin_bottom = $part_height / 2; // 水印距离底部边界的距离 // 设置文字倾斜角度(以度为单位,逆时针方向为正) $text_angle = 0; //添加中间水印 imagettftext($part1_img, $font_size, $text_angle, $margin_left, $margin_bottom, $font_color, $font, $text); imagettftext($part2_img, $font_size, $text_angle, $margin_left, $margin_bottom, $font_color, $font, $text); imagettftext($part3_img, $font_size, $text_angle, $margin_left, $margin_bottom, $font_color, $font, $text); imagettftext($part4_img, $font_size, $text_angle, $margin_left, $margin_bottom, $font_color, $font, $text); // 保存4张新生成的图片 imagejpeg($part1_img, str_replace('.jpg','_sy_1.jpg',$imgUrl),70); imagejpeg($part2_img, str_replace('.jpg','_sy_2.jpg',$imgUrl),70); imagejpeg($part3_img, str_replace('.jpg','_sy_3.jpg',$imgUrl),70); imagejpeg($part4_img, str_replace('.jpg','_sy_4.jpg',$imgUrl),70); // 释放内存 imagedestroy($src_img); imagedestroy($part1_img); imagedestroy($part2_img); imagedestroy($part3_img); imagedestroy($part4_img); return 1; } catch (\ErrorException $e){ return -1; } }
裁剪后图片如下
来源地址:https://blog.csdn.net/qq_40649432/article/details/131780732