zoukankan      html  css  js  c++  java
  • PHP一般情况下生成的缩略图都比较不理想

    PHP用GD库生成高质量的缩略图片,PHP一般情况下生成的缩略图都比较不理想。今天试用PHP,GD库来生成缩略图。虽然并不100%完美。可是也应该可以满足缩略图的要求了。
    <?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']); 
    } 2881064151
    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>

  • 相关阅读:
    在桌面上显示IE图标(非快捷键)
    在桌面上显示IE图标(非快捷键)
    Detours的使用准备
    Detours的使用准备
    腾讯机试题 AcWing 603 打怪兽
    牛客练习赛13D 幸运数字4
    牛客练习赛13B 幸运数字2
    牛客练习赛13E 乌龟跑步
    NOIP2016提高组复赛C 愤怒的小鸟
    Leetcode SingleNumber I & II & III 136/137/260
  • 原文地址:https://www.cnblogs.com/cbryge/p/5950424.html
Copyright © 2011-2022 走看看