仓酷云

标题: PHP编程:PHP用GD库生成高质量的缩略图片 [打印本页]

作者: 小女巫    时间: 2015-2-3 23:39
标题: PHP编程:PHP用GD库生成高质量的缩略图片
我假设你目前已经可以完成一个静态页面了,当然,做的好看难看是另外一说,皮皮我的第一个网页也没好看到哪去,但是“孩子”再丑,咱们做“爹妈”的也不能嫌弃不是?这毕竟是咱的成果。   以下是PHP源代码(ResizeImage.php)。
复制代码 代码以下:
<?php
$FILENAME="image.thumb";
// 生成图片的宽度
$RESIZEWIDTH=400;
// 生成图片的高度
$RESIZEHEIGHT=400;

function ResizeImage($im,$maxwidth,$maxheight,$name){
$width = imagesx($im);
$height = imagesy($im);
if(($maxwidth && $width > $maxwidth) ($maxheight && $height > $maxheight)){
if($maxwidth && $width > $maxwidth){
$widthratio = $maxwidth/$width;
$RESIZEWIDTH=true;
}
if($maxheight && $height > $maxheight){
$heightratio = $maxheight/$height;
$RESIZEHEIGHT=true;
}
if($RESIZEWIDTH && $RESIZEHEIGHT){
if($widthratio < $heightratio){
$ratio = $widthratio;
}else{
$ratio = $heightratio;
}
}elseif($RESIZEWIDTH){
$ratio = $widthratio;
}elseif($RESIZEHEIGHT){
$ratio = $heightratio;
}
$newwidth = $width * $ratio;
$newheight = $height * $ratio;
if(function_exists("imagecopyresampled")){
$newim = imagecreatetruecolor($newwidth, $newheight);
imagecopyresampled($newim, $im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
}else{
$newim = imagecreate($newwidth, $newheight);
imagecopyresized($newim, $im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
}
ImageJpeg ($newim,$name . ".jpg");
ImageDestroy ($newim);
}else{
ImageJpeg ($im,$name . ".jpg");
}
}

if($_FILES['image']['size']){
if($_FILES['image']['type'] == "image/pjpeg"){
$im = imagecreatefromjpeg($_FILES['image']['tmp_name']);
}elseif($_FILES['image']['type'] == "image/x-png"){
$im = imagecreatefrompng($_FILES['image']['tmp_name']);
}elseif($_FILES['image']['type'] == "image/gif"){
$im = imagecreatefromgif($_FILES['image']['tmp_name']);
}
if($im){
if(file_exists("$FILENAME.jpg")){
unlink("$FILENAME.jpg");
}
ResizeImage($im,$RESIZEWIDTH,$RESIZEHEIGHT,$FILENAME);
ImageDestroy ($im);
}
}
?>

以下是测试代码(demo.php)
复制代码 代码以下:
<?php
include('ResizeImage.php');
if(!empty($_POST)){
echo($FILENAME.".jpg?cache=".rand(0,999999));
}
?>
<form name="test" action="?submit=true" enctype="multipart/form-data" method="post" >
<input type="file" name="image" size="50" value="阅读"><p>
<input type="submit" value="上传图片">
</form>
我想在讲述自己的学习方式前,对那些期望能从我的文章中获得有用信息的人说一句心里话:
作者: 小魔女    时间: 2015-2-4 04:48
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
作者: 愤怒的大鸟    时间: 2015-2-7 12:16
我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。
作者: 不帅    时间: 2015-2-9 16:13
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
作者: 冷月葬花魂    时间: 2015-2-27 04:26
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
作者: 活着的死人    时间: 2015-3-8 19:57
我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。
作者: 柔情似水    时间: 2015-3-11 18:07
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
作者: 谁可相欹    时间: 2015-3-12 06:57
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
作者: 第二个灵魂    时间: 2015-3-23 07:14
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
作者: admin    时间: 2015-3-31 04:57
建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
作者: 只想知道    时间: 2015-4-5 01:34
遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。
作者: 蒙在股里    时间: 2015-4-21 06:51
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
作者: 乐观    时间: 2015-4-26 20:54
至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。
作者: 再现理想    时间: 2015-4-29 02:11
最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。
作者: 变相怪杰    时间: 2015-5-4 20:23
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
作者: 分手快乐    时间: 2015-5-6 07:12
兴趣是最好的老师,百度是最好的词典。
作者: 老尸    时间: 2015-5-10 19:01
不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。
作者: 若相依    时间: 2015-5-12 09:05
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
作者: 精灵巫婆    时间: 2015-5-12 09:06
写的比较杂,因为我也是个新手,不当至于大家多多指正。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2