仓酷云
标题:
PHP教程之php停止图片裁剪及生成缩略图法式源代码...
[打印本页]
作者:
简单生活
时间:
2015-2-3 23:53
标题:
PHP教程之php停止图片裁剪及生成缩略图法式源代码...
对于PHP的语法结构,刚开始真的很不习惯,真搞不懂为什么每个变量之前都要加个“$”符号,每个语句写完之后都必须加上“分号”来表示此句已经结束,还有,PHP对字母的大小写是敏感的,写的时候一定要注意大小写的区别。法式|源代码|缩略图 处置办法是:
1.当原图的宽或高任一比划定的尺寸小,只停止等比缩略处置,
2.当原图的宽与高都比划定尺寸大,先辈行等比缩略处置,然后算出居中地位停止裁剪
以下是源代码:
<?php
/*
* $o_photo 原图途径
* $d_photo 处置后图片途径
* $width 界说宽
* $height 界说高
* 挪用办法 cutphoto("test.jpg","temp.jpg",256,146);
*/
function cutphoto($o_photo,$d_photo,$width,$height){
$temp_img = imagecreatefromjpeg($o_photo);
$o_width = imagesx($temp_img); //获得原图宽
$o_height = imagesy($temp_img); //获得原图高
//判别处置办法
if($width>$o_width || $height>$o_height){ //原图宽或高比划定的尺寸小,停止紧缩
$newwidth=$o_width;
$newheight=$o_height;
if($o_width>$width){
$newwidth=$width;
$newheight=$o_height*$width/$o_width;
}
if($newheight>$height){
$newwidth=$newwidth*$height/$newheight;
$newheight=$height;
}
//缩略图片
$new_img = imagecreatetruecolor($newwidth, $newheight);
imagecopyresampled($new_img, $temp_img, 0, 0, 0, 0, $newwidth, $newheight, $o_width, $o_height);
imagejpeg($new_img , $d_photo);
imagedestroy($new_img);
}else{ //原图宽与高都比划定尺寸大,停止紧缩后裁剪
if($o_height*$width/$o_width>$height){ //先肯定width与划定不异,假如height比划定大,则ok
$newwidth=$width;
$newheight=$o_height*$width/$o_width;
$x=0;
$y=($newheight-$height)/2;
}else{ //不然肯定height与划定不异,width自顺应
$newwidth=$o_width*$height/$o_height;
$newheight=$height;
$x=($newwidth-$width)/2;
$y=0;
}
//缩略图片
$new_img = imagecreatetruecolor($newwidth, $newheight);
imagecopyresampled($new_img, $temp_img, 0, 0, 0, 0, $newwidth, $newheight, $o_width, $o_height);
imagejpeg($new_img , $d_photo);
imagedestroy($new_img);
$temp_img = imagecreatefromjpeg($d_photo);
$o_width = imagesx($temp_img); //获得缩略图宽
$o_height = imagesy($temp_img); //获得缩略图高
//裁剪图片
$new_imgx = imagecreatetruecolor($width,$height);
imagecopyresampled($new_imgx,$temp_img,0,0,$x,$y,$width,$height,$width,$height);
imagejpeg($new_imgx , $d_photo);
imagedestroy($new_imgx);
}
}
?>一些真正的强人总会搞出新玩意来丢给你,你不学就落后了,也印证了前人的经验,果然是学无止境啊!
作者:
老尸
时间:
2015-2-4 06:49
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
作者:
愤怒的大鸟
时间:
2015-2-5 14:43
php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)
作者:
仓酷云
时间:
2015-2-7 09:01
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
作者:
冷月葬花魂
时间:
2015-2-21 09:12
基础有没有对学习php没有太大区别,关键是兴趣。
作者:
变相怪杰
时间:
2015-2-26 08:01
如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
作者:
灵魂腐蚀
时间:
2015-3-8 12:55
本文当是我的笔记啦,遇到的问题随时填充
作者:
若相依
时间:
2015-3-15 22:58
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox 支持的不是很好,所以能少用还是少用的好。
作者:
admin
时间:
2015-3-22 04:07
在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
作者:
飘灵儿
时间:
2015-5-4 14:46
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
作者:
若天明
时间:
2015-6-7 21:57
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
作者:
第二个灵魂
时间:
2015-7-1 06:47
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
作者:
深爱那片海
时间:
2015-7-9 16:08
当然这种网站的会员费就几十块钱。
作者:
金色的骷髅
时间:
2015-7-18 20:35
写的比较杂,因为我也是个新手,不当至于大家多多指正。
作者:
分手快乐
时间:
2015-7-20 00:41
说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年 具体的记不清啦,囧。
作者:
再见西城
时间:
2015-7-24 09:57
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
作者:
活着的死人
时间:
2015-9-22 20:20
爱上php,他也会爱上你。
作者:
再现理想
时间:
2015-10-2 18:13
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
作者:
小魔女
时间:
2015-10-2 22:39
其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。
作者:
小妖女
时间:
2015-10-10 17:42
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
欢迎光临 仓酷云 (http://www.ckuyun.com/)
Powered by Discuz! X3.2