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 图片处理类的更多相关文章

  1. 分享一下怎么开发一款图片视频类App,秒拍和prisma

    第一步,分解短视频App的功能 我们在秒拍官网看到如此描述: [视频拍摄及导入]支持直接拍摄及导入手机本地的视频 [照片电影]照片专属特效,轻松创作照片电影 [MV特效]10余款全新MV特效,让普通视 ...

  2. PHP编写的图片验证码类文件分享方法

    适用于自定义的验证码类! <?php/* * To change this license header, choose License Headers in Project Propertie ...

  3. Java图片工具类,完成图片的截取和任意缩放

    package com.common.util; import java.awt.Graphics2D; import java.awt.Image; import java.awt.Renderin ...

  4. bootstrap-wysiwyg 结合 base64 解码 .net bbs 图片操作类

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Dr ...

  5. 拍照、本地图片工具类(兼容至Android7.0)

    拍照.本地图片工具类:解决了4.4以上剪裁会提示"找不到文件"和6.0动态授予权限,及7.0报FileUriExposedException异常问题. package com.hb ...

  6. Android--很实用的图片工具类

    import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileNotFoundException; imp ...

  7. PHP 图片缩放类

    <?php /** * 图片压缩类:通过缩放来压缩. * 如果要保持源图比例,把参数$percent保持为1即可. * 即使原比例压缩,也可大幅度缩小.数码相机4M图片.也可以缩为700KB左右 ...

  8. Android Handler 异步消息处理机制的妙用 创建强大的图片载入类

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38476887 ,本文出自[张鸿洋的博客] 近期创建了一个群.方便大家交流,群号: ...

  9. Android 调节图片工具类

    package com.base.changeimage; import android.graphics.Bitmap; import android.graphics.Canvas; import ...

随机推荐

  1. java基本数据类型总结 类型转换 final关键字的用法

    java基本数据类型总结 Java数据类型总结 数据类型在计算机语言里面,是对内存位置的一个抽象表达方式,可以理解为针对内存的一种抽象的表达方式.接触每种语言的时候,都会存在数据类型的认识,有复杂的. ...

  2. html行内块元素之间的缝隙

    关于html行内块元素之间缝隙的那点儿事情 事情是这样子的,我起初打算验证使用transform属性的标签是否会影响其他的标签的布局,于是写了下面一段代码: <!DOCTYPE html> ...

  3. python - 平方根格式化 + 字符串分段组合

    题目来源:python123 平方根格式化 描述 获得用户输入的一个整数a,计算a的平方根,保留小数点后3位,并打印输出.‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪ ...

  4. Android开发之第三方推送JPush极光推送知识点详解 学会集成第三方SDK推送

    作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 下面是一些知识点介绍,后期将会带领大家进行代码实战: 一.Android实现推送方式解决方案: 1.推 ...

  5. 攻防世界——web新手练习区解题记录<1>(1-4题)

    web新手练习区一至四题 第一题view_source: 题目说右键不管用了,我们先获取在线场景来看一看,我们看到这样一个网页,并且右键确实点了没什么反应,而用到右键一般就是查看网页源码 用快捷键(F ...

  6. 【图像增强】CLAHE 限制对比度自适应直方图均衡化

    文章目录: 目录 1 基本概述 2 竞赛中的CLAHE实现 3 openCV绘制直方图 4 对比度Contrast 5 Contrast Stretching 6 Histogram Equaliza ...

  7. Java是否还能再辉煌十年?

    目录 Java是否还能再辉煌十年? 一.前言 二.如今的Java语言 2.1 位居TIOBE榜首 2.2 革命性的语言 三.Java受到的挑战 3.1 后台服务器软件的语言竞争 3.1.1 Pytho ...

  8. php反序列化总结与学习

    基础知识: 1.php类与对象 2.魔术函数 3.序列化方法 类与对象 <?php class test{ public $var = "hello world"; publ ...

  9. Mysql优化概述及其压力测试工具

    衡量指标 TPS:Transactions Per Second (每秒传输的事物处理个数) ,这是指服务器每秒处理的事物数,支持事物的存储引擎如Innodb等特有的一个性能指标; QPS:Queri ...

  10. 20190916-01linux文件与目录结构 000 001

    1./bin 是Binary的缩写,这个目录存放着最经常使用的命令 2./sbin s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序 3./home 存放普通用户的主目录,在 ...