TP 3.2 图片处理类
TP 3.2 图片处理类
<?php
namespace Common\Common;
class ImageEdit{
    /**
     * [上传图片并生成缩略图]
     * @param  [type] $imgName [图片提交的表单名称]
     * @param  [type] $dirName [图片上传的二级目录]
     * @param  array  $thumb
     * [缩略图生成,一个数组,传几个值生成几个图片]
     * @return [type]          [description]
     */
    static public function uploadOne($imgName, $dirName, $thumb = array())
    {
        // 上传LOGO
        if(isset($_FILES[$imgName]) && $_FILES[$imgName]['error'] == 0)
        {
            $ic = C('IMAGE_CONFIG');
            $upload = new \Think\Upload(array(
                'rootPath' => $ic['rootPath'],
                'maxSize' => $ic['maxSize'],
                'exts' => $ic['exts'],
            ));// 实例化上传类
            $upload->savePath = $dirName . '/'; // 图片二级目录的名称
            // 上传时指定一个要上传的图片的名称,否则会把表单中所有的图片都处理,之后再想其他图片时就再找不到图片了
            $info   =   $upload->upload(array($imgName=>$_FILES[$imgName]));
            if(!$info)
            {
                return array(
                    'ok' => 0,
                    'error' => $upload->getError(),
                );
            }
            else
            {
                $ret['ok'] = 1;
                $ret['images'][0] = $logoName = $info[$imgName]['savepath'] . $info[$imgName]['savename'];
                // 判断是否生成缩略图
                if($thumb)
                {
                    $image = new \Think\Image();
                    // 循环生成缩略图
                    foreach ($thumb as $k => $v)
                    {
                        $ret['images'][$k+1] = $info[$imgName]['savepath'] . 'thumb_'.$k.'_' .$info[$imgName]['savename'];
                        // 打开要处理的图片
                        $image->open($ic['rootPath'].$logoName);
                        $image->thumb($v[0], $v[1])->save($ic['rootPath'].$ret['images'][$k+1]);
                    }
                }
                return $ret;
            }
        }
    }
    /*******************************************************
     * 上传图片并生成缩略图使用方法
     * 用法:
     * $ret=uploadOne('logo','Goods',array(
     * 			array(600,600),
     * 			array(300,300),
     * 			array(100,100),
     *
     * ));
     * 返回值:
     * if($ret['ok']==1){
     * 		$ret['images'][0]; //原图地址
     * 		$ret['images'][1]; //第一个缩略图地址
     * 		$ret['images'][2]; //第二个缩略图地址
     * 		$ret['images'][3]; //第三个缩略图地址
     * }else{
     * 		$this->error=$ret['error'];
     * 		return false;
     * }
     ****************************************************/
    /**
     * [delImage 删除图片函数]
     * @param  [type] $img [图片文件名数组]
     * @return [type]      [description]
     */
    static public function delImage($img){
        foreach ($img as $k => $v) {
             unlink(C('IMAGE_CONFIG')['rootPath'].$v);
        }
    }
    /**
     * [showImage 显示图片函数]
     * @param  [type] $url   [图片名称]
     * @param  string $width [显示宽度]
     * @param  string $heigt [显示高度]
     * @return [type]        [description]
     */
    static public function showImage($url,$width='',$height=''){
    	$pt=C('IMAGE_CONFIG');
    	if($width)
    		$width="width='{$width}'";
    	if($height)
    		$height="height='{$height}'";
    	echo "<img $width $height src='{$pt['viewPath']}$url' />";
    }
}
/********************************************************************
 * 图片上传类,多图片上传
 * @param  [type] $formname [file表单名称]
 * @param  [type] $dirname  [图片上传二级目录]
 * @return [type]           [description]
 */
static public function uploadM($formname,$dirname){
	if(isset($_FILES[$formname])){
	    $imgconf=C('IMAGE_CONFIG');
	    $conf=[
	        'rootPath'=>$imgconf['rootPath'],
	        'maxSize'=>$imgconf['maxSize'],
	        'exts'=>$imgconf['exts'],
	    ];
	    $dir=$imgconf['rootPath'].$dirname;
	    is_dir($dir)||mkdir($dir,0777,true);
	    $img=new \Think\Upload($conf);
	    $img->savePath  =$dirname.'/';
	    $info=$img->upload();
	    if(!$info){
	        return ['status'=>'error','message'=>$img->getError()];
	    }else{
	        return $res=['status'=>"error",'message'=>'上传成功','data'=>$info];
	    }
	}
}
												
											TP 3.2 图片处理类的更多相关文章
- 分享一下怎么开发一款图片视频类App,秒拍和prisma
		
第一步,分解短视频App的功能 我们在秒拍官网看到如此描述: [视频拍摄及导入]支持直接拍摄及导入手机本地的视频 [照片电影]照片专属特效,轻松创作照片电影 [MV特效]10余款全新MV特效,让普通视 ...
 - PHP编写的图片验证码类文件分享方法
		
适用于自定义的验证码类! <?php/* * To change this license header, choose License Headers in Project Propertie ...
 - Java图片工具类,完成图片的截取和任意缩放
		
package com.common.util; import java.awt.Graphics2D; import java.awt.Image; import java.awt.Renderin ...
 - bootstrap-wysiwyg 结合 base64 解码 .net  bbs  图片操作类
		
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Dr ...
 - 拍照、本地图片工具类(兼容至Android7.0)
		
拍照.本地图片工具类:解决了4.4以上剪裁会提示"找不到文件"和6.0动态授予权限,及7.0报FileUriExposedException异常问题. package com.hb ...
 - Android--很实用的图片工具类
		
import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileNotFoundException; imp ...
 - PHP 图片缩放类
		
<?php /** * 图片压缩类:通过缩放来压缩. * 如果要保持源图比例,把参数$percent保持为1即可. * 即使原比例压缩,也可大幅度缩小.数码相机4M图片.也可以缩为700KB左右 ...
 - Android Handler 异步消息处理机制的妙用 创建强大的图片载入类
		
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38476887 ,本文出自[张鸿洋的博客] 近期创建了一个群.方便大家交流,群号: ...
 - Android 调节图片工具类
		
package com.base.changeimage; import android.graphics.Bitmap; import android.graphics.Canvas; import ...
 
随机推荐
- Java多线程_线程池
			
作用我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为 ...
 - ABP VNext实践之搭建可用于生产的IdentityServer4
			
一.前言 用了半年多的abp vnext,在开发的效果还是非常的好,可以说节省了很多时间,像事件总线.模块化开发.动态API进行远程调用.自动API控制器等等,一整套的规范,让开发人员更方便的集成,提 ...
 - EXCEL 引用autocad vba,自动加载其类型库
			
Sub AutoADDAutoCADTypeLib() Dim Ref As Variant Dim hasAutoTypeLib As Boolean, hasAXDBLib As Boolean, ...
 - shader变体
			
unity shader 变种(多重编译 multi_compile) https://www.jianshu.com/p/f34d896dde5d Unity Shader - Making mul ...
 - html中实现倒计时功能(setInterval,clearInterval)
			
倒计时主要用到的知识点:1.设置时间间隔的setInterval可以被clearInterval取消 2.毫秒转换为时分格式 这个是效果图 下面是js中的函数 var shijian=3600; va ...
 - HDOJ 1003
			
动态规划一直AC不了竟然是因为一厢情愿的多加了一个#! printf("Case #%d:\n",count); --------------------------------- ...
 - 修改CentOS的yum源,改为阿里云的镜像
			
修改CentOS的yum源,改为阿里云的镜像 1.备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.b ...
 - 用Python实现十大经典排序算法-插入、选择、快速、冒泡、归并等
			
本文来用图文的方式详细讲解了Python十大经典排序算法 —— 插入排序.选择排序.快速排序.冒泡排序.归并排序.希尔排序.插入排序.桶排序.基数排序.计数排序算法,想要学习的你们,继续阅读下去吧,如 ...
 - java 将本地文件或网络文件与base64互相转换
			
一:将网络文件转为Base64 将文件转为base64 public static String fileToBase64(String url){ int byteread = 0; String ...
 - RunTime  启动bat程序
			
bat文件路径 String cmd= PathUtil.appPath + File.separator + "nginx-1.14.2"+ File.separator +&q ...