|
有兩種改變圖像大小的方法.
(1):ImageCopyResized() 函數(shù)在所有GD版本中有效,但其縮放圖像的算法比較粗糙.
(2):ImageCopyResampled(),其像素插值算法得到的圖像邊緣比較平滑.質(zhì)量較好(但該函數(shù)的速度比 ImageCopyResized() 慢).
兩個(gè)函數(shù)的參數(shù)是一樣的.如下:
ImageCopyResampled(dest,src,dx,dy,sx,sy,dw,dh,sw,sh);
ImageCopyResized(dest,src,dx,dy,sx,sy,dw,dh,sw,sh);
它們兩個(gè)都是從原圖像(source)中抓取特定位置(sx,sy)復(fù)制圖像qu區(qū)域到目標(biāo)t 圖像(destination)的特定位置(dx,dy)。另外dw,dh指定復(fù)制的圖像區(qū)域在目標(biāo)圖像上的大小,sw,sh指定從原圖像復(fù)制的圖像區(qū)域 的大小。如果有ps經(jīng)驗(yàn)的話,就相當(dāng)于在原圖像選擇一塊區(qū)域,剪切移動(dòng)到目的圖像上,同時(shí)有拉伸或縮小的操作。
例一:
(本例子是將圖片按原大小的4/1的大小顯示)
復(fù)制代碼 代碼如下:
<?php
// 指定文件路徑和縮放比例
$filename = 'test.jpg';
$percent = 0.5;
// 指定頭文件Content typezhi值
header('Content-type: image/jpeg');
// 獲取圖片的寬高
list($width, $height) = getimagesize($filename);
$newwidth = $width * $percent;
$newheight = $height * $percent;
// 創(chuàng)建一個(gè)圖片。接收參數(shù)分別為寬高,返回生成的資源句柄
$thumb = imagecreatetruecolor($newwidth, $newheight);
//獲取源文件資源句柄。接收參數(shù)為圖片路徑,返回句柄
$source = imagecreatefromjpeg($filename);
// 將源文件剪切全部域并縮小放到目標(biāo)圖片上。前兩個(gè)為資源句柄
imagecopyresampled($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
// 輸出給瀏覽器
imagejpeg($thumb);
?>
推薦一個(gè)簡(jiǎn)單實(shí)用的縮放圖片工具 SimpleImage,參考http://www.white-hat-web-design.co.uk/blog/resizing-images-with-php/
使用方法:
復(fù)制代碼 代碼如下:
<?php
include('SimpleImage.php');
$image = new SimpleImage();
$image->load('picture.jpg');
$image->resize(250,400);
$image->save('picture2.jpg');?>
設(shè)定寬度,等比例縮放
<?php
include('SimpleImage.php');
$image = new SimpleImage();
$image->load('picture.jpg');
$image->resizeToWidth(250);
$image->save('picture2.jpg');?>
設(shè)定高度,等比例縮放
<?php
include('SimpleImage.php');
$image = new SimpleImage();
$image->load('picture.jpg');
$image->resizeToHeight(500);
$image->save('picture2.jpg');
$image->resizeToHeight(200);
$image->save('picture3.jpg');?>
按比例,縮放至50%
<?php
include('SimpleImage.php');
$image = new SimpleImage();
$image->load('picture.jpg');
$image->scale(50);
$image->save('picture2.jpg');?>
縮放后直接輸出到屏幕
<?php
header('Content-Type: image/jpeg');
include('SimpleImage.php');
$image = new SimpleImage();
$image->load('picture.jpg');
$image->resizeToWidth(150);
$image->output();?>
SimpleImage.php 源碼請(qǐng)輕點(diǎn)文章開(kāi)頭鏈接,到那下載
--------------------------------------------------------------------------------
為圖片加上水印
復(fù)制代碼 代碼如下:
<?php
$source=imagecreatefromjpeg('E:/image/guide_pic.jpg');
$thumb=imagecreatefromjpeg('E:/image/l.JPG');
//取得圖片的寬度,高度,類(lèi)型
list($width,$height,$mine)=getimagesize('E:/image/guide_pic.jpg');
imagecopymerge ($source,$thumb,$width-124,$height-150,0,0,88,73,70);
//生成圖片
imagejpeg($source,'E:/image/logo.jpg');
?>
php技術(shù):解析php中兩種縮放圖片的函數(shù),為圖片添加水印,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。