仓酷云

标题: PHP教程之php停止图片裁剪及生成缩略图法式源代码... [打印本页]

作者: 简单生活    时间: 2015-2-3 23:53
标题: PHP教程之php停止图片裁剪及生成缩略图法式源代码...
对于PHP的语法结构,刚开始真的很不习惯,真搞不懂为什么每个变量之前都要加个“$”符号,每个语句写完之后都必须加上“分号”来表示此句已经结束,还有,PHP对字母的大小写是敏感的,写的时候一定要注意大小写的区别。法式|源代码|缩略图   处置办法是:
1.当原图的宽或高任一比划定的尺寸小,只停止等比缩略处置,
2.当原图的宽与高都比划定尺寸大,先辈行等比缩略处置,然后算出居中地位停止裁剪

以下是源代码:
<?php
/*
*        &#36;o_photo 原图途径
*        &#36;d_photo 处置后图片途径
*        &#36;width   界说宽
*        &#36;height  界说高
*        挪用办法  cutphoto("test.jpg","temp.jpg",256,146);
*/

function cutphoto(&#36;o_photo,&#36;d_photo,&#36;width,&#36;height){

&#36;temp_img = imagecreatefromjpeg(&#36;o_photo);
&#36;o_width  = imagesx(&#36;temp_img);                                //获得原图宽
&#36;o_height = imagesy(&#36;temp_img);                                //获得原图高

//判别处置办法
if(&#36;width>&#36;o_width || &#36;height>&#36;o_height){        //原图宽或高比划定的尺寸小,停止紧缩

        &#36;newwidth=&#36;o_width;
        &#36;newheight=&#36;o_height;

        if(&#36;o_width>&#36;width){
                &#36;newwidth=&#36;width;
                &#36;newheight=&#36;o_height*&#36;width/&#36;o_width;
        }

        if(&#36;newheight>&#36;height){
                &#36;newwidth=&#36;newwidth*&#36;height/&#36;newheight;
                &#36;newheight=&#36;height;
        }

        //缩略图片
        &#36;new_img = imagecreatetruecolor(&#36;newwidth, &#36;newheight);  
        imagecopyresampled(&#36;new_img, &#36;temp_img, 0, 0, 0, 0, &#36;newwidth, &#36;newheight, &#36;o_width, &#36;o_height);  
        imagejpeg(&#36;new_img , &#36;d_photo);                 
        imagedestroy(&#36;new_img);


}else{                                                                                //原图宽与高都比划定尺寸大,停止紧缩后裁剪

        if(&#36;o_height*&#36;width/&#36;o_width>&#36;height){        //先肯定width与划定不异,假如height比划定大,则ok
                &#36;newwidth=&#36;width;
                &#36;newheight=&#36;o_height*&#36;width/&#36;o_width;
                &#36;x=0;
                &#36;y=(&#36;newheight-&#36;height)/2;
        }else{                                                                        //不然肯定height与划定不异,width自顺应
                &#36;newwidth=&#36;o_width*&#36;height/&#36;o_height;
                &#36;newheight=&#36;height;
                &#36;x=(&#36;newwidth-&#36;width)/2;
                &#36;y=0;
        }

        //缩略图片
        &#36;new_img = imagecreatetruecolor(&#36;newwidth, &#36;newheight);  
        imagecopyresampled(&#36;new_img, &#36;temp_img, 0, 0, 0, 0, &#36;newwidth, &#36;newheight, &#36;o_width, &#36;o_height);  
        imagejpeg(&#36;new_img , &#36;d_photo);                 
        imagedestroy(&#36;new_img);
         
        &#36;temp_img = imagecreatefromjpeg(&#36;d_photo);
        &#36;o_width  = imagesx(&#36;temp_img);                                //获得缩略图宽
        &#36;o_height = imagesy(&#36;temp_img);                                //获得缩略图高

        //裁剪图片
        &#36;new_imgx = imagecreatetruecolor(&#36;width,&#36;height);
        imagecopyresampled(&#36;new_imgx,&#36;temp_img,0,0,&#36;x,&#36;y,&#36;width,&#36;height,&#36;width,&#36;height);
        imagejpeg(&#36;new_imgx , &#36;d_photo);
        imagedestroy(&#36;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