>php教程 >php手册 >PHP生成缩略图的实现

PHP生成缩略图的实现

WBOY
WBOY원래의
2016-06-06 19:52:201348검색

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 PHP令我们惊喜的就是在图形图象处理方面要忧于ASP,用GD库PHP就可以轻松的实现缩略图。这一篇文章我们的目的就是用GD来生成缩略图,PHP可以把缩略图直接生成输送到浏览器也可以以文件的形式把其存储

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入

    PHP令我们惊喜的就是在图形图象处理方面要忧于ASP,用GD库PHP就可以轻松的实现缩略图。这一篇文章我们的目的就是用GD来生成缩略图,PHP可以把缩略图直接生成输送到浏览器也可以以文件的形式把其存储到硬盘当中。

    在生成缩略图的过程当中我们需要用到GD库当中的几个函数:
    getimagesize(string filename [,array var])),取得图像的信息,返回值是一人array,包括几项信息$var[0]----返回图像的width,$var[1]----返回height,[2]返回图像文件的type,[4]返回的是与PHP生成缩略图的实现当中的wdith,height有关的width="",height=""信息。

    imageX(resource image)
    imageY(resource image) 返回图像的宽和高
    imagecopyresized(des img,src img,int des_x,int des_y,int src_x,int src_y,int des_w,int des_h,int src_w,int src_y) 复制并截取区域图像
    imagecreatetruecolor(int width,int height) 创建一个真彩图
    imagejpeg(resource image)
    下面就是Code:
        # Constants
    define(IMAGE_BASE, '/var/www/html/mbailey/images');
    define(MAX_WIDTH, 150);
    define(MAX_HEIGHT, 150);
    # Get image location
    $image_file = str_replace('', '', $_SERVER['QUERY_STRING']);
    $image_path = IMAGE_BASE . "/$image_file";
    # Load image
    $img = null;
    $ext = strtolower(end(explode('.', $image_path)));
    if ($ext == 'jpg' || $ext == 'jpeg') {
    $img = @imagecreatefromjpeg($image_path);
    } else if ($ext == 'png') {
    $img = @imagecreatefrompng($image_path);
    # Only if your version of GD includes GIF support
    } else if ($ext == 'gif') {
    $img = @imagecreatefrompng($image_path);
    }
    # If an image was successfully loaded, test the image for size
    if ($img) {
    # Get image size and scale ratio
    $width = imagesx($img);
    $height = imagesy($img);
    $scale = min(MAX_WIDTH/$width, MAX_HEIGHT/$height);
    # If the image is larger than the max shrink it
    if ($scale     $new_width = floor($scale*$width);
    $new_height = floor($scale*$height);
    # Create a new temporary image
    $tmp_img = imagecreatetruecolor($new_width, $new_height);
    # Copy and resize old image into new image
    imagecopyresized($tmp_img, $img, 0, 0, 0, 0,
    $new_width, $new_height, $width, $height);
    imagedestroy($img);
    $img = $tmp_img;
    }
    }
    # Create error image if necessary
    if (!$img) {
    $img = imagecreate(MAX_WIDTH, MAX_HEIGHT);
    imagecolorallocate($img,0,0,0);
    $c = imagecolorallocate($img,70,70,70);
    imageline($img,0,0,MAX_WIDTH,MAX_HEIGHT,$c2);
    imageline($img,MAX_WIDTH,0,0,MAX_HEIGHT,$c2);
    }
    # Display the image
    header("Content-type: image/jpeg");
    imagejpeg($img);
    ?>

[1] [2] 

PHP生成缩略图的实现

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.