# ImageServer **Repository Path**: qqoo/ImageServer ## Basic Information - **Project Name**: ImageServer - **Description**: 图片缩略图接口 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2016-06-05 - **Last Updated**: 2024-05-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ImageServer--图片缩略图服务器 对于每张图片,图片缩略图服务器可以根据配置生成不同尺寸的缩略图。 图片缩略图已经有了很多现有的解决方案,例如[iipimage](http://iipimage.sourceforge.net/)等,但是对于我们当前的业务量和服务器配置来说有点重,所以用PHP结合现有开源框架实现了简单的图片缩略图接口。 ## 用法 ### 上传图片 ```php $imageServerPath = "server目录的路径,不带末尾的斜线"; include($imageServerPath.'/core/core.php'); //引入图片服务器 //参数为表单中图片字段的名称 $result = ImageServer::uploadImage('image');//上传单张图片 $result = ImageServer::uploadImages('image');//上传多张图片 // 输出转换结果 echo json_encode($result); ``` 上传结果的数据结构: ```php array( 'ret' => SUCCESS, //上传结果 'msg' => '', //错误描述 'urls' => array() //每个图片上传完之后的绝对路径,文件名称是文件的MD5值。 ); ``` `ret`字段的可能取值包括: * 0 上传成功 * 1 上传过程存在错误 * 2 无法将上传的图片移动到上传目录 * 3 `$_FILES`中不包含给定字段,或者这个字段为空 `urls`中只返回了上传后原始图片的地址,对于不同尺寸的缩略图,ImageServer会添加不同的后缀。例如: `1965d4c592c556af3e60bc364687db5f_c50x50q50.jpg`。其中`_c50x50q50`表示: 1. "c"表示图片经过剪裁。 2. 图片的尺寸为50x50。 3. 图片的质量为50%。 之后的合作中,后端接口只返回图片的原始地址,前端根据需要添加不同的后缀。 ### 处理现有单张图片 该函数没有返回值 ```php $imageServerPath = "server目录的路径,不带末尾的斜线"; include($imageServerPath.'/core/core.php'); //引入图片服务器 $file = '已有图片的绝对路径'; ImageServer::manipulate($file); ``` ### 配置图片转换参数 在`server/config/config.php`中的`$config['transform']`数组中存储了预定义的图片转换参数。 例如: ```php array( "suffix" => "_c300x300q30", // 转换后的图片增加的后缀 "width" => "300", // 预览图的宽度 "height" => "300", // 预览图的高度 "crop" => true, // 是否以图片中心为基准,剪裁图片 "quality" => 30 // 图片质量参数,数字越小,转换后的图片质量越差,取值范围是1到100的整数。 ) ``` ### 上传/转换图片的时候,自定义转换参数 `ImageServer` 的所有方法都可以传入一个`$con`的参数,如果没有这个参数,则使用`server/config/config.php`的默认配置。 如果传入该参数,必须包含默认配置中所有字段,否则容易出错。 ``` $config = array(); //这里是自定义的配置 ... ImageServer::uploadImage($seg='表单中图片字段的名称', $con=$config); ``` ### 批量转换已经存在的图片 `server/transform-all.php` 是一个批量转换现在`upload`目录中所有图片的脚本。用于修改默认配置之后,重新生成原有图片的缩略图。使用方式是在shell中执行下面的命令: ```shell sudo php -f transform-all.php ``` ### 手动上传图片工具 `app/index.html`是一个手动上传图片的工具,只是一个简单地表单。