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>

  • 相关阅读:
    hdu1316
    MVC中的ViewData、ViewBag和TempData
    linux下性能监控工具
    【翻译自mos文章】执行utlpwdmg.sql之后报ORA-28003, ORA-20001, ORA-20002, ORA-20003, ORA-20004 错误
    HTTP协议的消息头:Content-Type和Accept的作用 转载https://www.cnblogs.com/lexiaofei/p/7289436.html
    HTTP协议的消息头:Content-Type和Accept的作用
    JWT(JSON Web Token) 多网站的单点登录,放弃session 转载https://www.cnblogs.com/lexiaofei/p/7409846.html
    Http协议中get和post的区别
    常用的HTTP请求头与响应头
    浏览器获取自定义响应头response-headers
  • 原文地址:https://www.cnblogs.com/cbryge/p/5950424.html
Copyright © 2011-2022 走看看