break;
}
$r = array('filesize' => filesize($tmpfile), 'width' => $des_width, 'height' => $des_height);;
copy($tmpfile, $destfile);
is_file($tmpfile) && unlink($tmpfile);
imagedestroy($img_dst);
return $r;
}
/**
* 图片裁切
*
* @param string $sourcefile 原图片路径(绝对路径/abc.jpg)
* @param string $destfile 裁切后生成新名称(绝对路径/rename.jpg)
* @param int $clipx 被裁切图片的X坐标
* @param int $clipy 被裁切图片的Y坐标
* @param int $clipwidth 被裁区域的宽度
* @param int $clipheight 被裁区域的高度
* image_clip('xxx/x.jpg', 'xxx/newx.jpg', 10, 40, 150, 150)
*/
function well_image_clip($sourcefile, $destfile, $clipx, $clipy, $clipwidth, $clipheight, $getimgsize = '')
{
global $conf;
empty($getimgsize) AND $getimgsize = getimagesize($sourcefile);
if (empty($getimgsize)) {
return 0;
} else {
$imgwidth = $getimgsize[0];
$imgheight = $getimgsize[1];
if (0 == $imgwidth || 0 == $imgheight) {
return 0;
}
}
if (!function_exists('imagecreatefromjpeg')) {
copy($sourcefile, $destfile);
return filesize($destfile);
}
switch ($getimgsize[2]) {
case 1 :
$imgcolor = imagecreatefromgif($sourcefile);
break;
case 2 :
$imgcolor = imagecreatefromjpeg($sourcefile);
break;
case 3 :
$imgcolor = imagecreatefrompng($sourcefile);
break;
case 15: // WBMP
$imgcolor = imagecreatefromwbmp($sourcefile);
break;
case 18: // WEBP
$imgcolor = imagecreatefromwebp($sourcefile);
break;
}
if (!$imgcolor) return 0;
$img_dst = imagecreatetruecolor($clipwidth, $clipheight);
imagefill($img_dst, 0, 0, 0xFFFFFF);
imagecopyresampled($img_dst, $imgcolor, 0, 0, $clipx, $clipy, $imgwidth, $imgheight, $imgwidth, $imgheight);
$tmppath = isset($conf['tmp_path']) ? $conf['tmp_path'] : ini_get('upload_tmp_dir') . '/';
'/' == $tmppath AND $tmppath = './tmp/';
$tmpfile = $tmppath . md5($destfile) . '.tmp';
imagejpeg($img_dst, $tmpfile, 75);
$n = filesize($tmpfile);
copy($tmpfile, $destfile);
is_file($tmpfile) && unlink($tmpfile);
return $n;
}
function well_image_ext($filename) {
return strtolower(substr(strrchr($filename, '.'), 1));
}
?>
入门
Dism入门:轻松驾驭命令行,完美升级Adobe Flash Player!
相关文章推荐:Windows ADK 下载地址: 命令示例:Gimagex图形化演示:以下命令由DISMGUI生成,原汁原味1.首次备份镜像【Captu
8天前140
2023年最新人工智能入门指南(学习清单)
ChatGPT最近很火,为了帮助想入门人工智能的小伙伴们准备了一份超详细的学习清单前言为帮助大家快速入门机器学习、深度学习,根据我自己多年的学习和工作经验,总结了这份保姆级的
7月前2580
Structure From Motion(SFM)入门讲解
概念:Structure From Motion(SFM) 是从一系列包含视觉运动信息的多幅二维图像序列中估计三维结构的技术。SFM和立体视觉的区别在立体视觉中,两个相机之间的相对位姿是通过标定靶
7月前1250
FDTD快速入门之Lumerical脚本语言Pickup(三)结构(Structure)搭建
文章目录前言一、(长方体)矩形(Rectangle)二、多棱柱体(Ploygon)1.多棱柱
7月前1260
PhotoShop入门
PhotoShop入门 零、文章目录 一、简介 PS 工具是我们使用频率比较高的软件之一, 我们学习PS目的不是为了设计海报做电商和UI的,而是要求: 会简单的抠图会简
7月前790
Photoshop脚本入门(一)- 概念
一、Adobe关于Photoshop的官方文档 Adobe Introduction to Scripting:脚本基础,主机应用(AppleScript,VBScript和ExtendScrip
7月前1220
【赠书第20期】AI绘画与修图实战:Photoshop+Firefly从入门到精通
文章目录 前言 1 入门篇:初识Photoshop与Firefly 2 进阶篇:掌握Photoshop与Firefly的核心技巧 3 实战篇:运用Photoshop与Firefly进行创作 4 精通篇:提升创作水平,拓展应用领域
7月前790
Photoshop脚本入门(二)- JavaScript脚本参考
JavaScript脚本参考是基于DOM文档对象模型的资料 一、Adobe Photoshop CC 提供JavaScript支持 本参考资料描述了Adobe®Photoshop®CC®JavaScriptTMtype库中的对象和方法。
7月前990
【粉丝福利社】AI绘画与修图实战:Photoshop+Firefly从入门到精通(文末送书-完结)
🏆 作者简介,愚公搬代码 🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家࿰
7月前720
Linux入门第一讲——Win10下安装VMware Workstation Pro 12虚拟软件
前言:作为学习Linux的开篇,如何通过虚拟机来体验、使用Linux是一定要掌握的。市面上有很多的虚拟软件,我自己使用的是目前较为主流的VMware。已经有太多博客说明、讲解如何应用VMware了。本着精益求精的理念,还是想将自己平日的总结
7月前1170
【PCL入门】点云滤波—之PassThrough
下面的代码来自点云库官方教程 :http:pointcloudsdocumentationtutorials PassThrough 直通滤波是最简单的滤波方法,就是在指定的方向上x,y
7月前1000
PCL入门系列 —— PassThrough 直通滤波、点云裁剪
PCL入门系列 —— PassThrough 直通滤波、点云裁剪前言程序说明输出结果代码示例总结前言 随着工业自动化、智能化的不断推进,机器视觉(2D3D)在工业领域的应
7月前830
【网页设计】CSS基础全面入门
文章目录字体样式属性font-size:字号大小font-family:字体CSS Unicode字体font-weight:字体粗细font-style:字体风格font:综合设置字体样式选择器标签选择器(元素选择器
7月前1030
HLS的入门总结
文章目录 简介 Media Source Extensions m3u8测试地址 m3u8协议 事件监控 运行时事件 Video事件 MSE事件 SourceBuffer 错误检测和处理 解析 目录 流程 Fragment 自定义loade
7月前910
React 360入门介绍
React 360是什么? 前身叫React VR,是Facebook和Oculus在2017年发布的项目,后来为了避免跟Oculus一个项目搞混乱,重
7月前1010
图新地球网页端入门指南(让测绘成果、设计方案一键分享,手机查看)
1.图新地球网页端简介 图新地球网页端是一款操作简单、易于分享的三维GIS云平台。可快速融合影像、地形、倾斜模型、BIM模型、CAD数据、kml、shp、全景、图片等数据,构建一个交互式web地图。支持一键分享&am
7月前1120
网页知识入门-浏览器和网页生成
本文主要介绍 目录 浏览器 服务器 用户访问网站原理及流程 描述从浏览器打开http:www.baidu地址回车发送请求到看到页面的过程(面试题) DNS解析 TCP三次握手原理 HTTP请求
7月前940
Python入门01:如何在 Chrome 浏览器轻松抓包
python入门01:教你在 Chrome 浏览器轻松抓包 通过上一节我们知道了什么是爬虫,也知道了爬虫的具体流程 那么在我们要对某个网站进行爬取的时候,要对其数据进行分析 就要知道应该 怎么请求,就要知道 获取的数据是什么样的 所
7月前690
入门 基础知识点:浏览器到底是如何下载资源的
天文章来聊聊浏览器到底是如何对待下载资源的,比如说 JS、CSS、字体、图片等文件。CSS、JS 文件冤家路窄HTML 在解析的过程中遇到同步的 script 会卡住 DOM 解析这个知识点我相信读者们应该都知道。
7月前1080
前端入门技巧之浏览器调试
前端调试是用来测试前端开发代码BUG比较常用的方式,通过调试我们可以把一些BUG提前扼杀在摇篮里。今天小千就来教大家利用Chrome谷歌浏览器进行前端的调试,web前端初学者一定要好好看一下啦。 为什么要调试?程序就是函数堆砌起来的,程序
7月前1040