学习日记-2016.3.31

昨晚编写上传部分有部分报错,已经修改,详情请看2016.3.30笔记

今天学习了上传后在,对上传的图像进行剪裁,处理写入到数据库,这个操作是再上传之前完成的

<?php
/**
* Created by PhpStorm.
* User: 兰小宇
* Date: 2016/3/30
* Time: 23:08
*/
//图像处理类
class Image{
private $file; //图像地址
private $width; //获取图像的宽度
private $height; //获取图像的高度
private $type; //获取图像的类型
private $img; //原来图像的资源句柄
private $new; //新的资源句柄
//构造方法
public function __construct($file){
$this->file = $_SERVER[‘DOCUMENT_ROOT‘].$file;
list($this->width,$this->height,$this->type) = getimagesize($this->file);
$this->img = $this->getType($this->file,$this->type);
}

/* 图像剪裁一:按照百分比
* @param $pre ,设定百分比的参数,除以100 再乘以原来的宽度,得到新的宽度,
* 结果图片容易失真
*
*/
// public function thumb($pre){
// $new_width = $this->width * ( $pre / 100);
// $new_height = $this->height * ( $pre / 100);
// /**
// *创建一个背景图
// * 使用函数imagecreatetruecolor();两个参数高度和宽度
// *
// */
// $this->new = imagecreatetruecolor($new_width,$new_height);
// //创建剪裁后的图像
// imagecopyresampled($this->new,$this->img,0,0,0,0,$new_width,$new_height,$this->width,$this->height);
// }

//判断图像类型,然后加载图像资源
private function getType($file,$type){
$img = ‘‘;
switch($type){
case 1:
$img = imagecreatefromgif($file);
break;
case 2:
$img = imagecreatefromjpeg($file);
break;
case 3:
$img = imagecreatefrompng($file);
break;
default:
Tool::alertBack(‘请上传图片类型为gif,jpg,png的文件!‘);
}
return $img;
}
//图像输出
public function out(){
imagepng($this->new,$this->file);//输出
imagedestroy($this->img);//销毁资源
imagedestroy($this->new);//销毁
}
}

//备注:今天更新第一种处理图像的方法,是按照百分比进行处理,由于时间太晚,明天还要上班,暂不更新,明天更新,等比例处理图像和,完美处理图像两种方法!晚安!

时间: 2024-08-10 06:06:13

学习日记-2016.3.31的相关文章

关于html基础学习总结-2016.8.31

学习要点总结:PS导出图片(PNG JPG) 导出后为PNG格式 PS导出图层等比例调节大小 按住SHFIT键(PS)ctrl+或者- 放大缩小图片测试html浏览器 谷歌 火狐 欧鹏 IE 解析模式:标准模式 混乱模式 非标准模式UTF-8 :支持中文HTML别名 根元素/:关闭标签TAB 标签快捷键HTML+CSS+JS=结构 + 表现 + 行为注释:ctrl+/ 务必熟练使用webstorm 拓展了解ps cutterman markman

学习日记--2016.3.30

编写文档表单 html <form action="###" method="post" id="main"> <table cellspacing="0" class="content"> <tr><th><strong>发布一条新文档</strong></th></tr> <tr><td&g

2016年31期老男孩运维班学员决心书

2016年31期老男孩运维班学员决心书 张孟鑫 一.我为什么来这学习 在这个经济.政治.科技发展迅速的当代社会,掌握一门甚至多门技术已成为生活.工作必不可少的一部分,而在今天我听了老男孩教育创始人的讲课以及学长们的学习经验.体会,我感觉我好想找到我想要的那种感觉(可以让我奋斗让我拼搏),所以我决定了一定要将老男孩的部分东西变成我的,不然我愧对父母以及浪费的时间,所以我来到了这里,来奋斗. 二.我的学习方法.安排 我要用我可以利用的时间去学习,课前预习,上课跟随老师的步骤,课后总结.复习.实践.

学习日记-----各种问题

用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层? 答: 从下至上分别为:数据访问层.业务逻辑层(又或成为领域层).表示层 数据访问层:有时候也称为是持久层,其功能主要是负责数据库的访问 业务逻辑层:是整个系统的核心,它与这个系统的业务(领域)有关 表示层:是系统的UI部分,负责使用者与整个系统的交互.  优点:  分工明确,条理清晰,易于调试,而且具有可扩展性. 缺点:  增加成本. 分层式结构究竟其优势何在? 1.开发人员可以只关注整个结构中的其中某一

学习日记之状态模式和Effective C++

状态模式(State):当一个对象内在状态改变时,允许改变其行为,这个对象看起来像是改变了其类. (1),状态模式主要负责解决的是当控制一个对象转换的条件表达式过于复杂时的情况.把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化. (2),状态模式的好处是将与特定状态相关的行为局部化,并且将不同状态的行为分割开来. (3),将特定的状态相关的行为都放入一个对象中,由于所有与状态相关的代码都存在于某个ConcreteState中,所以通过定义新的子类可以很容易地增加新的状态和

学习日记

五一耍了三天,自己的计划有泡汤,那种制止力哪里去了,不过我认真起来还有有废寝忘食的时候,不过希望这种时候多一点,回家妈妈告诉我,她给老师打电话了的,老师说了我的一些情况,不过我没有老师说的那么好,学习在班上算中等.我觉得还算不上吧!任重而道远吧. Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件,配置文件中很多变量是经常改变的,这样做也是为了方便用户,让用户能够脱离程序本身去修改相关的变量

学习日记之解释器模式和Effective C++

解释器模式(interpreter):给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子. (1),如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言的句子.这样可以构建一个解释器,该解释器通过解释这些句子来解决该问题. (2),当一个语言需要解释执行,并且你可将该语言中的句子表示为一个抽象的语法树时,可使用解释器模式. (3),容易改变和扩展文法,因为该模式使用类来表示文法规则,你可以使用继承来改变和扩展该文法

学习日记之中介者模式和Effective C++

中介者模式(Mediator):用一个中介对象来封装一系列的对象交互.中介者使各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变他们之间的交互. (1),中介者模式很容易在系统中应用,也很容易在系统中误用.当系统出现多对多交互复杂的对象群时,不要急于使用中介者模式,而要反思你在系统的设计上是不是合理. (2),中介者的出现减少了各个对象的耦合,使得可以独立地改变和复用各个对象和中介者. (3),由于把对象如何协作进行了抽象,将中介者作为一个独立的概念并将其封装在一个对象中,这样关注

学习日记之职责链模式和Effective C++

职责链模式(Chain of Responsibility):使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系.将这个对象连成一条链,并沿着该条链传递该请求,直到有一个对象处理它为止. (1),当客户提交一个请求时,请求时沿着链传递直到有一个 ConcreteHandler 对象负责处理它. (2),接收者和发送者都没有对方的明确信息,切链中的对象自己也不知道链的结构.结果是职责链可简化为对象之间的连接,它们仅需保留一个指向其后继者的引用.而不惜保留它所有的候选接收者的引用