小女巫 发表于 2015-2-3 23:39:04

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:33

说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。

愤怒的大鸟 发表于 2015-2-7 12:16:42

我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。

不帅 发表于 2015-2-9 16:13:39

建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。

冷月葬花魂 发表于 2015-2-27 04:26:16

因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax

活着的死人 发表于 2015-3-8 19:57:36

我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。

柔情似水 发表于 2015-3-11 18:07:48

,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。

谁可相欹 发表于 2015-3-12 06:57:52

写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。

第二个灵魂 发表于 2015-3-23 07:14:36

学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。

admin 发表于 2015-3-31 04:57:12

建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。

只想知道 发表于 2015-4-5 01:34:06

遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。

蒙在股里 发表于 2015-4-21 06:51:22

因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax

乐观 发表于 2015-4-26 20:54:36

至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。

再现理想 发表于 2015-4-29 02:11:20

最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。

变相怪杰 发表于 2015-5-4 20:23:34

其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎

分手快乐 发表于 2015-5-6 07:12:09

兴趣是最好的老师,百度是最好的词典。

老尸 发表于 2015-5-10 19:01:51

不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。

若相依 发表于 2015-5-12 09:05:25

使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的

精灵巫婆 发表于 2015-5-12 09:06:38

写的比较杂,因为我也是个新手,不当至于大家多多指正。
页: [1]
查看完整版本: PHP编程:PHP用GD库生成高质量的缩略图片