php對圖像的各種處理函數代碼小結_PHP教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:PHP 關于訪問控制的和運算符優先級介紹
      這篇文章主要介紹了PHP中關于訪問控制的和運算符優先級介紹,需要的朋友可以參考下 復制代碼 代碼如下: class Foo { private $name = 'hdj'; public function getName(){ return $this-name; } } class Bar extends Foo { public $name = 'deeka'; } $bar = new Bar; va

      一、創建圖片資源

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

      二、獲取圖片屬性

      imagesx(res//寬度
      imagesy(res//高度
      getimagesize(文件路徑)
      返回一個具有四個單 元的數組。索引 0 包含圖像寬度的像素值,索引 1 包含圖像高度的像素值。索引 2 是圖像類型的標記:1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 = PSD,6 = BMP,7 = TIFF(intel byte order),8 = TIFF(motorola byte order),9 = JPC,10 = JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM。這些標記與 PHP 4.3.0 新加的 IMAGETYPE 常量對應。索引 3 是文本字符串,內容為“height="yyy" width="xxx"”,可直接用于 IMG 標記。
      銷毀圖像資源
      imagedestroy(圖片資源);

      三、透明處理

      PNG、jpeg透明色都正常,只有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/map.gif");

      復制代碼 代碼如下:
       $red= imagecolorallocate($img, 255, 0, 0);
       imageline($img, 0, 0, 100, 100, $red);
       imageellipse($img, 200, 100, 100, 100, $red);
       imagegif($img, "./images/map2.gif");
       imagedestroy($img);

      圖片普通縮放

      復制代碼 代碼如下:
      $filename="./images/hee.jpg";
       $per=0.3;
       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,0, 0,0, 0,$n_w, $n_h, $width, $height);
      //圖像輸出新圖片、另存為

       imagejpeg($new, "./images/hee2.jpg");

       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, 0, 0, 0, 0, $width, $height, $s_w, $s_h);

       imagejpeg($new, $newfile);

       imagedestroy($new);
       imagedestroy($img);
      }

      thumn("images/hee.jpg", 200, 200, "./images/hee3.jpg");


      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 >=0 && $otst < imagecolorstotal($img)){//判斷索引色
        $tran=imagecolorsforindex($img, $otsc);//索引顏色值

        $newt=imagecolorallocate($new, $tran["red"], $tran["green"], $tran["blue"]);

        imagefill($new, 0, 0, $newt);

        imagecolortransparent($new, $newt);
       }

       imagecopyresized($new, $img, 0, 0, 0, 0, $width, $height, $s_w, $s_h);

       imagegif($new, $newfile);

       imagedestroy($new);
       imagedestroy($img);
      }

      thumn("images/map.gif", 200, 200, "./images/map3.gif");


      圖片裁剪

      復制代碼 代碼如下:
      function cut($background, $cut_x, $cut_y, $cut_width, $cut_height, $location){

       $back=imagecreatefromjpeg($background);

       $new=imagecreatetruecolor($cut_width, $cut_height);

       imagecopyresampled($new, $back, 0, 0, $cut_x, $cut_y, $cut_width, $cut_height,$cut_width,$cut_height);

       imagejpeg($new, $location);

       imagedestroy($new);
       imagedestroy($back);
      }

      cut("./images/hee.jpg", 440, 140, 117, 112, "./images/hee5.jpg");


      圖片加水印

      文字水印

      復制代碼 代碼如下:
      function mark_text($background, $text, $x, $y){
        $back=imagecreatefromjpeg($background);

        $color=imagecolorallocate($back, 0, 255, 0);

        imagettftext($back, 20, 0, $x, $y, $color, "simkai.ttf", $text);

        imagejpeg($back, "./images/hee7.jpg");

        imagedestroy($back);
       }

       mark_text("./images/hee.jpg", "細說PHP", 150, 250);

      分享:關于PHP語言構造器介紹
      PHP里有echo、print、die、require等幾個特殊的關鍵字,雖然它們用起來像是函數,但實際上更類似于if、while這樣控制語句,而不是一個函數。也就是說,當解釋器遇到: 復制代碼 代碼如下: print 'Hello world'; 這樣的一個表達式的時候,并不會把它轉換成函數調用,而

      共2頁上一頁12下一頁
      來源:模板無憂//所屬分類:PHP教程/更新時間:2013-07-09
      相關PHP教程