技術(shù)頻道導(dǎo)航
HTML/CSS
.NET技術(shù)
IIS技術(shù)
PHP技術(shù)
Js/JQuery
Photoshop
Fireworks
服務(wù)器技術(shù)
操作系統(tǒng)
網(wǎng)站運營

贊助商

分類目錄

贊助商

最新文章

搜索

php改變圖片大小使用imagecopyresampled()質(zhì)量更高

作者:admin    時間:2012-11-7 16:45:34    瀏覽:

php程序中改變圖片大小的函數(shù)大多數(shù)人都想到用imagecopyresized(),不過經(jīng)過測試比較發(fā)現(xiàn),使用imagecopyresampled()改變的圖片質(zhì)量更高。

下面我們來看看兩者的比較結(jié)果。

原圖:

使用imagecopyresized()將圖片縮小一半

代碼:

<?php
// File and new size
$filename = 'test.jpg';
$percent = 0.5;
// Content type
header('Content-Type: image/jpeg');
// Get new sizes
list($width, $height) = getimagesize($filename);
$newwidth = $width * $percent;
$newheight = $height * $percent;
// Load
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($filename);
// Resize
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
// Output
imagejpeg($thumb);
?>

改變后的圖片:

使用imagecopyresampled()將圖片縮小一半

代碼:

<?php
// The file
$filename = 'test.jpg';
$percent = 0.5;
// Content type
header('Content-Type: image/jpeg');
// Get new dimensions
list($width, $height) = getimagesize($filename);
$new_width = $width * $percent;
$new_height = $height * $percent;
// Resample
$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
// Output
imagejpeg($image_p, null, 100);
?>

改變后的圖片:

可以看出,imagecopyresampled()改變圖片大小后質(zhì)量要比imagecopyresized()高。

改變圖片大小,除了上述兩種方法外,你還可以用更為好用的函數(shù),可以看看這篇文章:php實現(xiàn)的非常好用的圖片大小調(diào)整(image resize)函數(shù)。

注意:

在執(zhí)行以上代碼時,如果出現(xiàn)Cannot modify header information - headers already sent這個錯誤提示,那么需要修改下php.ini這個文件,把output_buffering設(shè)為4096就行了,output_buffering默認為off的。php.ini這個文件在php目錄下,但務(wù)必記得修改后把它拷貝到windows目錄下(如:C:\windows\)覆蓋原來的文件。之后重啟iis。(如何重啟IIS?在dos里輸入iisreset /restart 執(zhí)行一下即可)

標(biāo)簽: image  
x
  • 站長推薦
/* 左側(cè)顯示文章內(nèi)容目錄 */