php生成縮略圖的案例分析?這個(gè)問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過這個(gè)問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!
為猇亭等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及猇亭網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)、猇亭網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!php生成縮略圖的方法:首先創(chuàng)建一個(gè)PHP示例文件;然后通過“header("content-type:image/png");”設(shè)定生成圖片格式;最后通過“image_resize”方法按指定大小生成縮略圖即可。

PHP生成圖片縮略圖的三種方法:
1、把大圖縮略到縮略圖指定的范圍內(nèi),可能有留白(原圖細(xì)節(jié)不丟失)
2、把大圖縮略到縮略圖指定的范圍內(nèi),不留白(原圖會(huì)居中縮放,把超出的部分裁剪掉)
3、把大圖縮略到縮略圖指定的范圍內(nèi),不留白(原圖會(huì)剪切掉不符合比例的右邊和下邊)
下面是代碼:
<?php
// +----------------------------------------------------------------------
// | 把大圖縮略到縮略圖指定的范圍內(nèi),可能有留白(原圖細(xì)節(jié)不丟失)
// +----------------------------------------------------------------------
$w = $_GET['w']?$_GET['w']:200;
$h = $_GET['h']?$_GET['h']:200;
$filename = "stand_test_".$w."_".$h.".jpg";
image_resize( 'test.jpg',$filename, $w, $h);
header("content-type:image/png");//設(shè)定生成圖片格式
echo file_get_contents($filename);
function image_resize($f, $t, $tw, $th){
// 按指定大小生成縮略圖,而且不變形,縮略圖函數(shù)
$temp = array(1=>'gif', 2=>'jpeg', 3=>'png');
list($fw, $fh, $tmp) = getimagesize($f);
if(!$temp[$tmp]){
return false;
}
$tmp = $temp[$tmp];
$infunc = "imagecreatefrom$tmp";
$outfunc = "image$tmp";
$fimg = $infunc($f);
// 使縮略后的圖片不變形,并且限制在 縮略圖寬高范圍內(nèi)
if($fw/$tw > $fh/$th){
$th = $tw*($fh/$fw);
}else{
$tw = $th*($fw/$fh);
}
$timg = imagecreatetruecolor($tw, $th);
imagecopyresampled($timg, $fimg, 0,0, 0,0, $tw,$th, $fw,$fh);
if($outfunc($timg, $t)){
return true;
}else{
return false;
}
}
?><?php
// +----------------------------------------------------------------------
// | 把大圖縮略到縮略圖指定的范圍內(nèi),不留白(原圖會(huì)居中縮放,把超出的部分裁剪掉)
// +----------------------------------------------------------------------
$w = $_GET['w']?$_GET['w']:200;
$h = $_GET['h']?$_GET['h']:200;
$filename = "cut_test_".$w."_".$h.".jpg";
image_resize( 'test.jpg',$filename, $w, $h);
header("content-type:image/png");//設(shè)定生成圖片格式
echo file_get_contents($filename);
// 按指定大小生成縮略圖,而且不變形,縮略圖函數(shù)
function image_resize($f, $t, $tw, $th){
$temp = array(1=>'gif', 2=>'jpeg', 3=>'png');
list($fw, $fh, $tmp) = getimagesize($f);
if(!$temp[$tmp]){
return false;
}
$tmp = $temp[$tmp];
$infunc = "imagecreatefrom$tmp";
$outfunc = "image$tmp";
$fimg = $infunc($f);
// $fw = 10;
// $fh = 4;
// $tw = 4;
// $th = 2;
// 把圖片鋪滿要縮放的區(qū)域
if($fw/$tw > $fh/$th){
$zh = $th;
$zw = $zh*($fw/$fh);
$_zw = ($zw-$tw)/2;
}else{
$zw = $tw;
$zh = $zw*($fh/$fw);
$_zh = ($zh-$th)/2;
}
// echo $zw."<br>";
// echo $zh."<br>";
// echo $_zw."<br>";
// echo $_zh."<br>";
// exit;
$zimg = imagecreatetruecolor($zw, $zh);
// 先把圖像放滿區(qū)域
imagecopyresampled($zimg, $fimg, 0,0, 0,0, $zw,$zh, $fw,$fh);
// 再截取到指定的寬高度
$timg = imagecreatetruecolor($tw, $th);
imagecopyresampled($timg, $zimg, 0,0, 0+$_zw,0+$_zh, $tw,$th, $zw-$_zw*2,$zh-$_zh*2);
//
if($outfunc($timg, $t)){
return true;
}else{
return false;
}
}
?><?php
// +----------------------------------------------------------------------
// | 把大圖縮略到縮略圖指定的范圍內(nèi),不留白(原圖會(huì)剪切掉不符合比例的右邊和下邊)
// +----------------------------------------------------------------------
$w = $_GET['w']?$_GET['w']:200;
$h = $_GET['h']?$_GET['h']:200;
$filename = "strict_test_".$w."_".$h.".jpg";
image_resize( 'test.jpg',$filename, $w, $h);
header("content-type:image/png");//設(shè)定生成圖片格式
echo file_get_contents($filename);
function image_resize($f, $t, $tw, $th){
// 按指定大小生成縮略圖,而且不變形,縮略圖函數(shù)
$temp = array(1=>'gif', 2=>'jpeg', 3=>'png');
list($fw, $fh, $tmp) = getimagesize($f);
if(!$temp[$tmp]){
return false;
}
$tmp = $temp[$tmp];
$infunc = "imagecreatefrom$tmp";
$outfunc = "image$tmp";
$fimg = $infunc($f);
if($fw/$tw > $fh/$th){
$fw = $tw * ($fh/$th);
}else{
$fh = $th * ($fw/$tw);
}
$timg = imagecreatetruecolor($tw, $th);
imagecopyresampled($timg, $fimg, 0,0, 0,0, $tw,$th, $fw,$fh);
if($outfunc($timg, $t)){
return true;
}else{
return false;
}
}
?>感謝各位的閱讀!看完上述內(nèi)容,你們對php生成縮略圖的案例分析大概了解了嗎?希望文章內(nèi)容對大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。
名稱欄目:php生成縮略圖的案例分析-創(chuàng)新互聯(lián)
網(wǎng)頁鏈接:http://chinadenli.net/article42/cogihc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、服務(wù)器托管、做網(wǎng)站、網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容