熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> PHP編程 >> 正文

php圖像處理函數大全

2013-11-15 12:37:44  來源: PHP編程 
php圖片處理代碼分享包括縮放剪裁縮放翻轉旋轉透明銳化等需要的朋友可以參考下  

  創建圖片資源
imagecreatetruecolor(widthheight);
imagecreatefromgif(圖片名稱);
imagecreatefrompng(圖片名稱);
imagecreatefromjpeg(圖片名稱);畫出各種圖像 imagegif(圖片資源保存路徑);
imagepng()
imagejpeg();

  獲取圖片屬性
imagesx(res//寬度
imagesy(res//高度
getimagesize(文件路徑)
返 回一個具有四個單元的數組索引 包含圖像寬度的像素值索引 包含圖像高度的像素值索引 是圖像類型的標記 = GIF = JPG = PNG = SWF = PSD = BMP = TIFF(intel byte order) = TIFF(motorola byte order) = JPC = JP = JPX = JB = SWC = IFF = WBMP = XBM這些標記與 PHP 新加的 IMAGETYPE 常量對應索引 是文本字符串內容為“height="yyy" width="xxx"”可直接用於 IMG 標記
銷毀圖像資源
imagedestroy(圖片資源);

  透明處理
PNGjpeg透明色都正常只有gif不正常
imagecolortransparent(resource image [int color])//將某個顏色設置成透明色
imagecolorstotal()
imagecolorforindex();

  圖片的裁剪
imagecopyresized()
imagecopyresampled();

  加水印(文字圖片)
字符串編碼轉換string iconv ( string $in_charset string $out_charset string $str )

  圖片旋轉
imagerotate();//制定角度的圖片翻轉

  圖片的翻轉
沿X軸 沿Y軸翻轉

  銳化
imagecolorsforindex()
imagecolorat()
在圖片上畫圖形 $img=imagecreatefromgif("/images/mapgif");

復制代碼 代碼如下:
<?PHP
 /**
 * 圖片銳化處理
 */
 $red= imagecolorallocate($img );

 imageline($img $red);
 imageellipse($img $red);
 imagegif($img "/images/mapgif");
 imagedestroy($img);
 圖片普通縮放
 代碼如下:

 $filename="/images/heejpg";
 $per=;
 list($width $height)=getimagesize($filename);
 $n_w=$width*$per;
 $n_h=$width*$per;
 $new=imagecreatetruecolor($n_w $n_h);
 $img=imagecreatefromjpeg($filename);
 //拷貝部分圖像並調整
 imagecopyresized($new $img $n_w $n_h $width $height);
 //圖像輸出新圖片另存為
 imagejpeg($new "/images/heejpg");
 imagedestroy($new);
 imagedestroy($img);

 圖片等比例縮放沒處理透明色
 代碼如下:
 function thumn($background $width $height $newfile) {
 list($s_w $s_h)=getimagesize($background);//獲取原圖片高度寬度
 if ($width && ($s_w < $s_h)) {
 $width = ($height / $s_h) * $s_w;
 } else {
 $height = ($width / $s_w) * $s_h;
 }
 $new=imagecreatetruecolor($width $height);
 $img=imagecreatefromjpeg($background);
 imagecopyresampled($new $img $width $height $s_w $s_h);
 imagejpeg($new $newfile);
 imagedestroy($new);
 imagedestroy($img);
 }
 thumn("images/heejpg" "/images/heejpg");

 gif透明色處理
 代碼如下:
 function thumn($background $width $height $newfile) {
 list($s_w $s_h)=getimagesize($background);
 if ($width && ($s_w < $s_h)) {
 $width = ($height / $s_h) * $s_w;
 } else {
 $height = ($width / $s_w) * $s_h;
 }
 $new=imagecreatetruecolor($width $height);
 $img=imagecreatefromgif($background);
 $otsc=imagecolortransparent($img);
 if($otsc >= && $otst < imagecolorstotal($img)){//判斷索引色
 $tran=imagecolorsforindex($img $otsc);//索引顏色值
 $newt=imagecolorallocate($new $tran["red"] $tran["green"] $tran["blue"]);
 imagefill($new $newt);
 imagecolortransparent($new $newt);
 }
 imagecopyresized($new $img $width $height $s_w $s_h);
 imagegif($new $newfile);
 imagedestroy($new);
 imagedestroy($img);
 }
 thumn("images/mapgif" "/images/mapgif");

  
圖片裁剪

復制代碼 代碼如下:
<?php
/**
* 圖片裁剪處理
* edit by wwwjbxuecom
*/
function cut($background $cut_x $cut_y $cut_width $cut_height $location){
$back=imagecreatefromjpeg($background);
$new=imagecreatetruecolor($cut_width $cut_height);
imagecopyresampled($new $back $cut_x $cut_y $cut_width $cut_height$cut_width$cut_height);
imagejpeg($new $location);
imagedestroy($new);
imagedestroy($back);
}
cut("/images/heejpg" "/images/heejpg");
?>

  
圖片加水印 文字水印

復制代碼 代碼如下:
<?PHP
 /**
 *
 * 圖片添加文字水印
 */

 function mark_text($background $text $x $y){
 $back=imagecreatefromjpeg($background);
 $color=imagecolorallocate($back );
 imagettftext($back $x $y $color "simkaittf" $text);
 imagejpeg($back "/images/heejpg");
 imagedestroy($back);
 }
 mark_text("/images/heejpg" "細說PHP" );
 //圖片水印
 function mark_pic($background $waterpic $x $y){
 $back=imagecreatefromjpeg($background);
 $water=imagecreatefromgif($waterpic);
 $w_w=imagesx($water);
 $w_h=imagesy($water);
 imagecopy($back $water $x $y $w_w $w_h);
 imagejpeg($back"/images/heejpg");
 imagedestroy($back);
 imagedestroy($water);
 }
 mark_pic("/images/heejpg" "/images/gaolfgif" );

  
圖片旋轉

復制代碼 代碼如下:
<?PHP
 /**
 * 圖片旋轉
 */
 $back=imagecreatefromjpeg("/images/heejpg");

 $new=imagerotate($back );
 imagejpeg($new "/images/heejpg");
 ?>

  
圖片水平翻轉垂直翻轉

復制代碼 代碼如下:

  
<?php
 /**
 * 圖片水平翻轉 垂直翻轉
 */
 function turn_y($background $newfile){
 $back=imagecreatefromjpeg($background);
 $width=imagesx($back);
 $height=imagesy($back);
 $new=imagecreatetruecolor($width $height);
 for($x=; $x < $width; $x++){
 imagecopy($new $back $width$x $x $height);
 }
 imagejpeg($new $newfile);
 imagedestroy($back);
 imagedestroy($new);
 }
 function turn_x($background $newfile){
 $back=imagecreatefromjpeg($background);
 $width=imagesx($back);
 $height=imagesy($back);
 $new=imagecreatetruecolor($width $height);
 for($y=; $y < $height; $y++){
 imagecopy($new $back $height$y $y $width );
 }
 imagejpeg($new $newfile);
 imagedestroy($back);
 imagedestroy($new);
 }
 turn_y("/images/heejpg" "/images/heejpg");
 turn_x("/images/heejpg" "/images/heejpg");
 ?>


From:http://tw.wingwit.com/Article/program/PHP/201311/21309.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.