仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3359|回复: 19
打印 上一主题 下一主题

[学习教程] PHP教程之php停止图片裁剪及生成缩略图法式源代码...

[复制链接]
简单生活 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:53:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
对于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:30 | 只看该作者
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
愤怒的大鸟 该用户已被删除
板凳
发表于 2015-2-5 14:43:07 | 只看该作者
php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)
地板
发表于 2015-2-7 09:01:11 | 只看该作者
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
冷月葬花魂 该用户已被删除
5#
发表于 2015-2-21 09:12:00 | 只看该作者
基础有没有对学习php没有太大区别,关键是兴趣。
变相怪杰 该用户已被删除
6#
发表于 2015-2-26 08:01:00 | 只看该作者
如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
灵魂腐蚀 该用户已被删除
7#
发表于 2015-3-8 12:55:19 | 只看该作者
本文当是我的笔记啦,遇到的问题随时填充
若相依 该用户已被删除
8#
发表于 2015-3-15 22:58:07 | 只看该作者
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox  支持的不是很好,所以能少用还是少用的好。
admin 该用户已被删除
9#
发表于 2015-3-22 04:07:51 | 只看该作者
在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
飘灵儿 该用户已被删除
10#
发表于 2015-5-4 14:46:16 | 只看该作者
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
若天明 该用户已被删除
11#
发表于 2015-6-7 21:57:37 | 只看该作者
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
第二个灵魂 该用户已被删除
12#
发表于 2015-7-1 06:47:06 | 只看该作者
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
深爱那片海 该用户已被删除
13#
发表于 2015-7-9 16:08:41 | 只看该作者
当然这种网站的会员费就几十块钱。
金色的骷髅 该用户已被删除
14#
发表于 2015-7-18 20:35:01 | 只看该作者
写的比较杂,因为我也是个新手,不当至于大家多多指正。
分手快乐 该用户已被删除
15#
发表于 2015-7-20 00:41:48 | 只看该作者
说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年  具体的记不清啦,囧。
再见西城 该用户已被删除
16#
发表于 2015-7-24 09:57:29 | 只看该作者
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
活着的死人 该用户已被删除
17#
发表于 2015-9-22 20:20:32 | 只看该作者
爱上php,他也会爱上你。
再现理想 该用户已被删除
18#
发表于 2015-10-2 18:13:46 | 只看该作者
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
小魔女 该用户已被删除
19#
发表于 2015-10-2 22:39:40 | 只看该作者
其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。
小妖女 该用户已被删除
20#
发表于 2015-10-10 17:42:42 | 只看该作者
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 09:06

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表