-
ob_clean();
header('content-type:image/jpeg');
//應該很多人遇到“明明一樣的代碼,卻顯示不出來”的問題
//在header前面加一行“ob_clean();”就可以了
查看全部 -
把range與rand弄混了
查看全部 -
imagepng, 后媽帶上文件名,則將文件保存到本地
查看全部 -
與驗證碼封裝?一樣,即在圖片里寫文字
imagettftext()使用該函數(shù)
查看全部 -
/*
*返回圖片信息
*@param????[string]????$filename????[文件名]
*@return????[array]?????包含圖片寬度、高度、創(chuàng)建和輸出的字符串及擴展名
*/
function _getImageinfo($filename){
if(@!$info=getimagesize($filename)){
????exit("文件不是圖像');
}
$fileInfo['width']=$inf[0];//得到寬高
$fileInfo['height']=$info[1];
$mime=image_type_to_mime_type($info[2]);//獲取文件類型
$createFun=str_replace('/','createfrom',$mime);//替換'/'為獲取的文件類型
$outFun=str_replace('/','',$mime);//輸出目標圖片文件'/'替換為mime
$fileIfo['createFun']=$createfun;
$fileIfo['outFun']=$outFun;
$fileIfo['ext']=strtolower(image_type_to_extension($info[2]));//獲取文件后綴
return $fileIfo;
}
//生成縮略圖函數(shù)
function thumb($filename,$dst_w=null,$dst_h=null,$dest,$pre,$scale=0.5,$delSource){
$filename='1.jpeg';
/*$scale=0.5;
$dst_w=200;
$dst_h=200;
$dest='目錄';
$pre='文件名前綴';
$delSource=false;//是否刪除源文件
*/ //于封裝函數(shù)處設置默認值
$randNum=mt_rand(100000,999999);生成隨機6位數(shù)數(shù)字為文件名
$fileInfo=_getImageinfo($filename);
$src_w=$fileInfo['width'];
$src_h=$fileInfo['height'];
//如果設置最大寬和高按等比例執(zhí)行
if(is_numeric($dst_w)&&is_numeric($dst_w)){
//前篇處理方式
}else{
//沒有指定則按照默認縮放比例執(zhí)行
$dst_w=ceil($src_w*$scale);
$dst_h=ceil($src_h*$scale);
}
$dst_image_50=imagecreatetruecolor($dst_w,$dst_h);
#src_image=$fileIfo['createFun']($filename);
imagecopyresampled($dst_image,$src_image,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h);
//檢測目標目錄是否存在,不存在則創(chuàng)建
if($dest&&!file_exists($dest)){
mkdir($dest,0777,ture)
}
$destName="{$pre}{$randNum}".$fileInfo['ext'];//生成的文件名
$destination=$dest?$dest.'/'.$destName:$destName;//生成文件若指定路徑則加上路徑,否則直接使用文件名
$fileIfo['outFun']($dst)image,$destination);//保存文件
imagedestroy($dst_image);//銷毀目標資源
imagedestroy($src_image);//銷毀源圖資源
if($delSource){
@unlink($filename);
}
return $destination;
}
查看全部 -
$filename='ipad.png';//得到原圖片資源注意填寫正確目錄
$fileInfo=getimagesize($filename);//得到圖片信息賦值于$fileInfo
if($fileInfo){//驗證圖片是否真實
list($src_w,$src_h)=$fileInfo;//得到原圖像寬高
}else{
dei('文件不是真實圖片')
}
$src_image=imagecreatefrompng($filename);得到原圖 PS:png可更換其他類型圖片,如jpeg、gif等
$dst_image_50=imagecreatetruecolor(50,50);//目標圖片50*50
$dst_image_270=imagecreatetruecolor(270,270);
imagecopyresampled($dst_image_50,$src_image,0,0,0,0,50,50,$src_w,$src_h);
imagepng($dst_image_50,'xx/xxx')//保存圖片,PS:xx/xxx為保存的文件名稱以及前綴目錄
imagedestroy($dst_image_50);//銷毀目標資源
imagedestroy($src_image);//銷毀源圖資源
$width?=?200;//?設置最大寬高
$height?=?200;
//等比例縮放圖片
$ratio_orig=$src_w/$src_h;
if?($dst_w/$dst_h >?$ratio_orig)?{//
???$$dst_w =?$dst_h*$ratio_orig;
}?else?{
???$dst_h =?$dst_w/$ratio_orig;
}
//執(zhí)行上訴流程獲取畫布資源接著創(chuàng)建即可查看全部 -
1查看全部
-
Gd庫字體,在windows里面打開方式為:開始—運行—fonts.
查看全部 -
多圖片批量處理,比GD擴展性能高得多的擴展為ImageMagick和Gmagick
查看全部 -
PHP圖片類庫 PHPThumb、Zebra
查看全部 -
//封裝一個函數(shù),用于返回圖像信息 function?getImageInfo($filename){ ???//檢測$filename是否是一個圖片 ????if?(!$info?=?getimagesize($filename)){ ???????????exit('文件不是真實圖片!');//或者直接返回false ????} ????//將得到的圖片各種信息保存在數(shù)組里面 ????//得到圖片的寬高和類型 ????$fileInfo['width']?=?$info[0]; ????$fileInfo['height']?=?$info[1]; ????$mime?=?$info['mime']; ????//自帶函數(shù)得到類型 //????$mime?=?image_type_to_mime_type($info[2]); ????//使用$mime替換成可用函數(shù) ????$create?=?str_replace('/','createfrom',$mime);//創(chuàng)建畫布資源 ????$outimage?=?str_replace('/',null,$mime);//保存圖像類型 ????$latename?=?strtolower(image_type_to_extension($info[2]));//得到圖片后綴名 ????$fileInfo['resource']?=?$create; ????$fileInfo['output']?=?$outimage; ????$fileInfo['ext']?=?$latename; ????//返回數(shù)組 ????return?$fileInfo; } //封裝成生成縮略圖的函數(shù) function?thumb($filename,$dest?=?'../thumb/',$pre?=?'thumb',$destdel?=?false, ?????????????????$dst_w?=?200,$dst_h=139){ ????//圖片路徑 ???//?$filename?=?'../Public/Image/12.jpg'; //調(diào)用函數(shù),得到圖片信息 ????$imaheInfon?=?getImageInfo($filename); ????//圖片縮放分兩種情況 ????//$scale?=?0.5;//設置比例縮放為一半,沒有設置最大寬高 //設置了最大寬高,按等比例算法來做 ????//$dst_w?=?200; ????//$dst_h?=?150; ????//得到原圖像的寬高 ????$src_w?=?$imaheInfon['width']; ????$src_h?=?$imaheInfon['height']; ????/**使用if判斷$dst_w?、$dst_h是否設置了寬高,is_numeric()?函數(shù)用于判斷 ?????*?檢測變量是否為數(shù)字或數(shù)字字符串,為真返回?TRUE,否則返回?FALSE ?????* ?????*/ ????if(is_numeric($dst_w)&&is_numeric($dst_h)){ ????????//設置了最大寬高,按等比例算法來做 ????????$ratio_orig?=?$src_w/$src_h; ????????if?($dst_w/$dst_h?>?$ratio_orig){ ????????????$dst_w?=$dst_h*$ratio_orig; ????????}else{ ????????????$dst_h?=?$dst_w/$ratio_orig; ????????} ????}else{ ????????//設置比例縮放為一半,沒有設置最大寬高 ????????$dst_w?=ceil(?$src_w*$scale);//ceil()取整 ????????$dst_h?=ceil(?$src_h*$scale); ????} //創(chuàng)建畫布資源 ????$dst_image?=?imagecreatetruecolor($dst_w,$dst_h); //$src_image?=?imagecreatetruecolor($src_w,$src_h); ????$src_image?=?$imaheInfon['resource']($filename); //生成縮略圖 ????imagecopyresampled($dst_image,$src_image,0,0,0,0, ????????$dst_w,$dst_h,$src_w,$src_h); //指定保存路徑 //????$dest?=?'../thumb/'; //判斷目錄是否存在,不存在則創(chuàng)建,file_exists()?函數(shù)檢查文件或目錄是否存在 ????if?($dest?&&?!file_exists($dest)){ ????????//mkdir()?函數(shù)創(chuàng)建目錄 ????????mkdir($dest,0777,true); ????} //防止重名產(chǎn)生覆蓋,可定義一個前綴,再拼上一個隨機數(shù) //????$pre?=?'thumb'; ????$randNum?=?mt_rand(1000,9999); ????$destname?="{$pre}_{$randNum}".$imaheInfon['ext'];//文件名 ????$destination?=?$dest???$dest.'/'.$destname:$destname;//判斷文件路徑 ????$imaheInfon['output']($dst_image,$destination);//保存文件到路徑 ????return?$destination;//返回文件路徑 ????//是否刪除源文件 //????$destdel?=?false;//設置默認為false ????if?($destdel){ ????????unlink($filename);//刪除文件 ????} //銷毀資源 ????imagedestroy($dst_image); ????imagedestroy($src_image); } $filename?=?'../Public/Image/11.jpg'; thumb($filename);
查看全部 -
header('content-type:text/html;charset=utf-8'); //定義要操作圖片的文件 $filename?=?'../Public/Image/11.jpg'; //得到圖片的信息 $fileinfo?=?getimagesize($filename);//返回值是數(shù)組 //print_r($fileinfo); //exit(); //檢測是否為真 if?($fileinfo){ ????//得到原始圖像的寬高 ????$src_w=$fileinfo[0]; ????$src_h=$fileinfo[1]; ????$mime?=?$fileinfo['mime'];//得到圖片類型 }else{ ????die('文件不是真實圖片'); } //根據(jù)圖片類型得到創(chuàng)建畫布資源的函數(shù) $filetype?=?str_replace('/','createfrom',$mime); //根據(jù)圖片類型得到保存輸出圖像的函數(shù) $outspace?=?str_replace('/',null,$mime); //根據(jù)圖片類型得到保存圖像的后綴名 $latename?=?str_replace('image/',null,$mime); //echo?$latename; //exit(); //動態(tài)創(chuàng)建原畫布資源 $src_image?=?$filetype($filename); //設置最大的寬高1000,695 $dst_w?=?450; $dst_h?=?300; $ratio_orig?=?$src_w/$src_h; if?($dst_w/$dst_h?>?$ratio_orig)?{ ????$dst_w?=?$dst_h*$ratio_orig; }?else?{ ????$dst_h?=?$dst_w/$ratio_orig; } $dst_image?=?imagecreatetruecolor($dst_w,$dst_h); //縮略圖 imagecopyresampled($dst_image,$src_image, ???????????????????0,0,0,0, ????????????????????$dst_w,$dst_h,$src_w,$src_h); $outspace($dst_image,'../Public/Image/bl.'.$latename); imagedestroy($dst_image); imagedestroy($src_image);
查看全部 -
header('content-type:text/html;charset=utf-8'); //定義要操作圖片的文件 $filename?=?'../Public/Image/11.jpg'; //得到圖片的信息 $fileinfo?=?getimagesize($filename);//返回值是數(shù)組 //檢測是否為真 if?($fileinfo){ ????//得到原始圖像的寬高 ????$src_w=$fileinfo[0]; ????$src_h=$fileinfo[1]; }else{ ????die('文件不是真實圖片'); } //設置最大的寬高1000,695 $dst_w?=?450; $dst_h?=?300; $ratio_orig?=?$src_w/$src_h; if?($dst_w/$dst_h?>?$ratio_orig)?{ ????$dst_w?=?$dst_h*$ratio_orig; }?else?{ ????$dst_h?=?$dst_w/$ratio_orig; } //創(chuàng)建原畫布資源 $src_image?=?imagecreatefromjpeg($filename); $dst_image?=?imagecreatetruecolor($dst_w,$dst_h); //縮略圖 imagecopyresampled($dst_image,$src_image, ???????????????????0,0,0,0, ????????????????????$dst_w,$dst_h,$src_w,$src_h); imagejpeg($dst_image,'../Public/Image/bl.jpg'); imagedestroy($dst_image); imagedestroy($src_image);
查看全部 -
上一節(jié)
<?php
/**
?* 為圖片生成縮略圖
?*/
//定義要操作圖片的文件
$filename = '../Public/Image/18.jpg';
//得到圖片的信息
$fileinfo = getimagesize($filename);//返回值是數(shù)組
//得到原始圖像的寬高
$src_w=$fileinfo[0];
$src_h=$fileinfo[1];
//通過圖片文件,創(chuàng)建畫布資源
$src_image = imagecreatefromjpeg($filename);
//var_dump($src_image);
//exit();
//創(chuàng)建100*100的縮略圖——目標的寬高
$dst_w = 100;
$dst_h = 100;
//通過目標的寬高,可以創(chuàng)建目標畫布資源
$dst_image = imagecreatetruecolor($dst_w,$dst_h);
imagecopyresampled($dst_image ,? $src_image ,
? ? ? ? ? ? ? ? ? ?0 , 0 , 0, 0 ,
? ? ? ? ? ? ? ? ? ?$dst_w ,? $dst_h ,? $src_w , $src_h );
imagejpeg($dst_image,'../Public/Image/thumb_100.jpg');
imagedestroy($dst_image);
imagedestroy($src_image);
//var_dump($width,$height) ;
//exit();
查看全部 -
image_type_to_extension()
image_type_to_mime_type()
查看全部 -
圖片信息的
查看全部 -
驗證碼的刷新功能
查看全部 -
GD庫操作步驟
查看全部 -
查看某個擴展庫是否被開啟
查看全部 -
圖像操作函數(shù):imagecreatefromjpeg()
查看全部 -
圖像操作:函數(shù)getimagesize()
查看全部 -
圖像操作的函數(shù)imagecopyrsampled
查看全部 -
PHP
圖像操作
查看全部 -
php image?
查看全部 -
php gd image
查看全部
舉報