php初學(xué)者教程之圖片縮放和裁剪
php程序中改變圖片大小的函數(shù)大多數(shù)人都想到用imagecopyresized(),不過(guò)經(jīng)過(guò)測(cè)試比較發(fā)現(xiàn),使用imagecopyresampled()改變的圖片質(zhì)量更高。
1、imagecopyresampled的使用
1、目標(biāo)函數(shù)資源
2、源圖像資源<要采樣的圖片資源>
3、x(0,0指圖左上角)
4、y(x,y確定一個(gè)坐標(biāo),坐標(biāo)確定了把采樣的部分放到目標(biāo)圖像資源的位置)
5、源x(0,0指圖右上角)
6、源y(源x與源y確定一個(gè)坐標(biāo),你要采用的原圖像資源的某個(gè)部分的起始位置)
7、w
8、h(weight與height確定了放到目標(biāo)圖像資源上面的尺寸)
9、源w
10、源h(源w與源h確定了采樣原圖像資源的某個(gè)部分)
2、$height=$width/($imgWidth/$imgHeight);使得圖片整體不會(huì)被裁剪,縮放代碼只需控制width即可
<?php
header('Content-type:image/jpeg');
$width=300;
$img=imagecreatefromjpeg('1/php1.jpg');
$imgWidth=imagesx($img);
$imgHeight=imagesy($img);
$height=$width/($imgWidth/$imgHeight);
$img1=imagecreatetruecolor(500,500);
imagecopyresampled($img1,$img,100,100,100,100,$width,$height,$imgWidth,$imgHeight);
imagejpeg($img1);
imagedestroy($img1);
imagedestroy($img);

<?php
header('Content-type:image/jpeg');
$width=200;
$img=imagecreatefromjpeg('1/php1.jpg');
$imgWidth=imagesx($img);
$imgHeight=imagesy($img);
$height=$width/($imgWidth/$imgHeight);
$img1=imagecreatetruecolor(500,500);
imagecopyresampled($img1,$img,100,100,100,100,$width,$height,$imgWidth,$imgHeight);
imagejpeg($img1);
imagedestroy($img1);
imagedestroy($img);

3、控制x、y與源x、源y可以進(jìn)行裁剪
<?php
header('Content-type:image/jpeg');
$width=500;
$img=imagecreatefromjpeg('1/php1.jpg');
$imgWidth=imagesx($img);
$imgHeight=imagesy($img);
$height=$width/($imgWidth/$imgHeight);
$img1=imagecreatetruecolor(500,500);
imagecopyresampled($img1,$img,0,0,300,300,$width,$height,$imgWidth,$imgHeight);
imagejpeg($img1);
imagedestroy($img1);
imagedestroy($img);

<?php
header('Content-type:image/jpeg');
$width=500;
$img=imagecreatefromjpeg('1/php1.jpg');
$imgWidth=imagesx($img);
$imgHeight=imagesy($img);
$height=$width/($imgWidth/$imgHeight);
$img1=imagecreatetruecolor(500,500);
imagecopyresampled($img1,$img,330,330,0,0,$width,$height,$imgWidth,$imgHeight);
imagejpeg($img1);
imagedestroy($img1);
imagedestroy($img);

總結(jié)
到此這篇關(guān)于php圖片縮放和裁剪的文章就介紹到這了,更多相關(guān)php圖片縮放和裁剪內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PHP實(shí)現(xiàn)繪制3D扇形統(tǒng)計(jì)圖及圖片縮放實(shí)例
這篇文章主要介紹了PHP實(shí)現(xiàn)繪制3D扇形統(tǒng)計(jì)圖及圖片縮放實(shí)例,本文給出代碼示例,代碼中包含一些說(shuō)明注釋,需要的朋友可以參考下2014-10-10
Yii編程開(kāi)發(fā)常見(jiàn)調(diào)用技巧集錦
這篇文章主要介紹了Yii編程開(kāi)發(fā)常見(jiàn)調(diào)用技巧,涉及Yii針對(duì)cookie、數(shù)據(jù)庫(kù)、URL、項(xiàng)目等相關(guān)操作技巧,需要的朋友可以參考下2016-07-07
phpcms實(shí)現(xiàn)驗(yàn)證碼替換及phpcms實(shí)現(xiàn)全站搜索功能教程詳解
這篇文章主要介紹了phpcms的驗(yàn)證碼替換 及 phpcms實(shí)現(xiàn)全站搜索功能,需要的朋友可以參考下2017-12-12
PHP依賴倒置(Dependency Injection)代碼實(shí)例
這篇文章主要介紹了PHP依賴倒置(Dependency Injection)代碼實(shí)例本文只提供實(shí)現(xiàn)代碼,需要的朋友可以參考下2014-10-10
Laravel 5.4中migrate報(bào)錯(cuò): Specified key was too long error的解決
今天在執(zhí)行l(wèi)aravel migrate時(shí)出現(xiàn)異常,找了好半天才找到問(wèn)題所在,所以這篇文章主要給大家介紹了關(guān)于Laravel 5.4中migrate報(bào)錯(cuò): Specified key was too long error的解決方法,需要的朋友可以參考下。2017-11-11
workerman結(jié)合laravel開(kāi)發(fā)在線聊天應(yīng)用的示例代碼
聊天功能是很常見(jiàn)的一種功能,Workerman是一款開(kāi)源高性能異步PHP socket即時(shí)通訊框架。這篇文章主要介紹了workerman結(jié)合laravel開(kāi)發(fā)在線聊天應(yīng)用,感興趣的小伙伴們可以參考一下2018-10-10
PHP讓網(wǎng)站移動(dòng)訪問(wèn)更加友好方法
在本文里我們給大家整理了關(guān)于PHP讓網(wǎng)站移動(dòng)訪問(wèn)更加友好的相關(guān)實(shí)例代碼以及相關(guān)知識(shí)點(diǎn),有需要的朋友們學(xué)習(xí)下。2019-02-02
php file_get_contents抓取Gzip網(wǎng)頁(yè)亂碼的三種解決方法
用 file_get_contents() 函數(shù)抓取網(wǎng)頁(yè)會(huì)發(fā)生亂碼現(xiàn)象。有兩個(gè)原因會(huì)導(dǎo)致亂碼,一個(gè)是編碼問(wèn)題,一個(gè)是目標(biāo)頁(yè)面開(kāi)了Gzip,下面說(shuō)的就是開(kāi)了Gzip功能如何才能不亂碼的方法2013-11-11
實(shí)例介紹PHP刪除數(shù)組中的重復(fù)元素
在本文里小編給大家分享了關(guān)于PHP如何刪除數(shù)組中的重復(fù)元素的相關(guān)知識(shí)點(diǎn)和步驟,需要的朋友們學(xué)習(xí)下。2019-03-03

