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 ...
随机推荐
- Hadoop 2.6.1 集群安装配置教程
集群环境: 192.168.56.10 master 192.168.56.11 slave1 192.168.56.12 slave2 下载安装包/拷贝安装包 # 存放路径: cd /usr/loc ...
- DVWA之文件上传(二)
<?php if( isset( $_POST[ 'Upload' ] ) ) { // Where are we going to be writing to? $target_path = ...
- 兄弟们,我打算抠100个网站JS加密代码召唤,一个也跑不掉,这次轮到小虎牙
摘要:友情提示:在博客园更新比较慢,有兴趣的关注知识图谱与大数据公众号吧.本次研究虎牙登录密码加密JS代码,难度不大,依然建议各位读者参考文章独自完成,实在抠不出来再参考这里的完整代码:从今天开始种树 ...
- 我们真的需要JWT吗?
JWT(JSON Web Token)是目前最流行的认证方案之一.博客园.各种技术公众号隔三差五就会推一篇JWT相关的文章,真的多如牛毛.但我对JWT有点困惑,今天写出来跟大家探讨探讨,不要喷哈. J ...
- JS - 对金额数字实现千分位格式化处理
添加千分位处理: function fmoney(s, n) { n = n > 0 && n < = 20 ? n : 2; s = parseFloat((s + &q ...
- js动画和css3动画的区别
JS动画(逐帧动画) 首先,在js动画是逐帧动画,是在时间帧上逐帧绘制帧内容,由于是一帧一帧的话,所以他的可操作性很高,几乎可以完成任何你想要的动画形式.但是由于逐帧动画的帧序列内容不一样,会增加制作 ...
- Oracle两个数据库互相访问-九五小庞
Oracle两个数据库互相访问
- Python之 最全 Conda、pip 管理环境和安装包、更换源、解决HttpError等一些列问题
在Anaconda中conda可以理解为一个工具,也是一个可执行命令,其核心功能是环境管理与包管理.所以对虚拟环境进行创建.删除等操作需要使用conda命令. conda install 和 pip ...
- 极简显示sessionid的jsp程序 war下载
下载地址:https://files.cnblogs.com/files/xiandedanteng/simpleJspSessionId20200103.zip 解压后得到myweb.war就是可以 ...
- Java常用工具类整理
字符数组转String package com.sunsheen.hcc.fabric.utils; /** * 字符数组工具 * @author WangSong * */ public class ...