PHP中的图像调整大小问题 - gd会创建丑陋的调整大小的图像 [英] Image resize issue in PHP - gd creates ugly resized images

查看:129
本文介绍了PHP中的图像调整大小问题 - gd会创建丑陋的调整大小的图像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用以下函数从我的PHP脚本创建固定高度和宽度的缩略图

I am creating thumbnails of fixed height and width from my PHP script using the following function

/*creates thumbnail of required dimensions*/
function createThumbnailofSize($sourcefilepath,$destdir,$reqwidth,$reqheight,$aspectratio=false)
{
    /*
     * $sourcefilepath =  absolute source file path of jpeg
     * $destdir =  absolute path of destination directory of thumbnail ending with "/"
     */
    $thumbWidth = $reqwidth; /*pixels*/
    $filename = split("[/\\]",$sourcefilepath);
    $filename = $filename[count($filename)-1];
    $thumbnail_path = $destdir.$filename;
    $image_file = $sourcefilepath;

    $img = imagecreatefromjpeg($image_file);
    $width = imagesx( $img );
    $height = imagesy( $img );

    // calculate thumbnail size
    $new_width = $thumbWidth;
    if($aspectratio==true)
    {
        $new_height = floor( $height * ( $thumbWidth / $width ) );
    }
    else
    {
        $new_height = $reqheight;
    }

    // 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 );

    // save thumbnail into a file

    $returnvalue = imagejpeg($tmp_img,$thumbnail_path);
    imagedestroy($img);
    return $returnvalue;
}

我用以下参数调用此函数

and I call this function with following parameters

createThumbnailofSize($sourcefilepath,$destdir,48,48,false);

但问题是当我用Adobe执行相​​同的操作时,生成的图像质量很差照相馆,它进行了很好的转换..为什么会如此?我无法找到任何质量参数,通过它我可以改变输出图像的质量。

but the problem is the resulting image is of very poor quality, when I perform the same operation with Adobe Photo shop, it performs a good conversion.. why it is so? I am unable to find any quality parameter, through which I change the quality of output image..

推荐答案

使用 imagecopyresampled() 而不是 imagecopyresized()

这篇关于PHP中的图像调整大小问题 - gd会创建丑陋的调整大小的图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆