<?php /** * 调整图片大小 * $path图片的宽度大于$width则等比缩放 * $path图片的高度大于$height切成多张图片 * @param $path 图片地址 * @param $width integer|string 图片宽度 * @param @height integer|string 图片高度 */ function imgResize($path, $width, $height) { // 存放生成的图片路径 $imgPaths = array(); // 获取图片宽度/高度/类型 list($srcW, $srcH, $type) = getp_w_picpathsize($path); $type -= 1; // 创建源图像 $p_w_picpathcreatefromFuns = array('p_w_picpathcreatefromgif', 'p_w_picpathcreatefromjpeg', 'p_w_picpathcreatefrompng'); $src = $p_w_picpathcreatefromFuns[$type]($path); // 图片的宽度大于$width则等比缩放 if( $srcW > $width ) { $dstHeight = $srcH * ($width / $srcW); // 新建一个真彩***像 $dst = p_w_picpathcreatetruecolor( $width, $dstHeight ); p_w_picpathcopyresampled($dst, $src, 0, 0, 0, 0, $width, $dstHeight, $srcW, $srcH); $src = $dst; // 更新原图的宽度和高度 $srcW = $width; $srcH = $dstHeight; } else { // 没有调整宽度 $width = $srcW; } // 图片的高度大于$height切成多张图片 if( $srcH > $height ) { // 切割的高度位置 $srcY = 0; do { $dstHeight = ($srcY + $height > $srcH) ? ($srcH - $srcY) : ($height); $dst = p_w_picpathcreatetruecolor( $width, $dstHeight ); p_w_picpathcopyresampled($dst, $src, 0, 0, 0, $srcY, $width, $dstHeight, $width, $dstHeight); $filePath = './img/' . md5(microtime(true)) . '.jpg'; $imgPaths[] = $filePath; ImageJpeg($dst, $filePath); is_resource($dst) and p_w_picpathdestroy($dst); $srcY += $dstHeight; }while($srcY < $srcH); } else { // 如果高度符合 则将调整了原图(也有可能是调整了宽度之后的)保存为文件 $filePath = './img/' . md5(microtime(true)) . '.jpg'; $imgPaths[] = $filePath; ImageJpeg($src, $filePath); } // 释放内存 isset($src) and is_resource($src) and p_w_picpathdestroy($src); isset($dst) and is_resource($dst) and p_w_picpathdestroy($dst); return $imgPaths; } /** * 调整图片清晰度 * @param string $path 图片路径 * @param string $quality 清晰度 * @return string 新的图片路径 */ function reQuality( $path, $quality ) { $p_w_picpath_type = p_w_picpath_type_to_extension(exif_p_w_picpathtype($path), false); $fun = "p_w_picpathcreatefrom{$p_w_picpath_type}"; $src = $fun($path); $newPath = generateUniqueFilePath('./img/'); ImageJpeg($src, $newPath, $quality); return $newPath; } /** * 生成唯一的文件路径 * @param $basePath string 文件夹路径 * @param $suffix string * @return string 文件路径 */ function generateUniqueFilePath($basePath, $suffix='.jpg') { $filePath = $basePath . md5(microtime(true)) . $suffix; return $filePath; } header('Content-Type:p_w_picpath/png'); $path = './img/jjj.jpg'; $imgPaths = imgResize($path, 10000, 10000); // reQuality($path, 1);
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。