php gd库函数生成高清缩略图程序
gd库是php教程中一个处理图像的专用库,他可以方便快捷的处理大多数据处理,它提供了大量的图片处理函数,下面我们就利用gd库的函数来生成缩略图.
测试代码如下:
<?php
include ('resizeimage.php');
if (!emptyempty($_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>
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);
}
}
?>本文链接:http://www.phprm.com/tuxiang/fs4438.html
收藏随意^^请保留教程地址.