PHP入門教程之影像處理技巧分析_php技巧

來源:互聯網
上載者:User

本文執行個體講述了PHP影像處理。分享給大家供大家參考,具體如下:

Demo1.php

<?php  //一般產生的映像可以是 png,jpg,gif,bmp  //jpeg,wbmp  //第一步,設定檔案MIME類型,輸出類型 text/html 類型是網頁類型,預設可以不寫  //將輸出類型改成映像流  header('Content-Type:image/png;');  //第二步,建立一個繪圖區域,映像背景  //有兩種建立方式,資源類型,一般要加上 @ 符號,防止出錯  //imagecreatetruecolor 返回的是一個資源控制代碼  //這個函數建立了一個映像的地區,沒有進行填充的時候,背景預設是黑色的  $im = imagecreatetruecolor(200,200);  //第三步,有空白映像地區,繪製顏色,文字叫,線條啊。。。  //填充色換掉,首先要有個顏色填充器  //imagecolorallocate -- 為一幅映像分配顏色  $blue = imagecolorallocate($im,0,102,255);  //將這個 blue 顏色填充到背景上去  //imagefill -- 地區填充  imagefill($im,0,0,$blue);  //第四部,在藍色的背景上輸入一些線條,文字等  $white = imagecolorallocate($im,255,255,255);  //imageline -- 畫一條線段  imageline($im,0,0,200,200,$white);  imageline($im,200,0,0,200,$white);  //imagestring -- 水平地畫一行字串  imagestring($im,5,80,20,'Mr.One',$white);  //第五步,輸出最終圖形  //以 PNG 格式將映像輸出到瀏覽器或檔案  imagepng($im);  //第六步,我要將所有的資源全部清空  imagedestroy($im);?>

Demo2.php

<?php  //src 可以插入各樣類型的圖片  //Demo1.php 其實就是一張 png 圖片  header('Content-Type:text/html; charset=gbk');  echo '<img src="Demo1.php" alt="圖形"/>';?>

Demo3.php

<?php  //簡單的驗證碼  //隨機數  //為什麼要迴圈 0-15 之間的數呢?  //因為要實現最簡單的字母和數字混搭  //十六進位 0-9 a-f  //dechex -- 十進位轉換為十六進位  //建立一個四位的驗證碼  for($i=0;$i<4;$i++){    $nmsg .= dechex(mt_rand(0,15));  }  //echo $nmsg;  header('Content-Type:image/png;');  $im = imagecreatetruecolor(75,25);  $blue = imagecolorallocate($im,0,102,255);  $white = imagecolorallocate($im,255,255,255);  imagefill($im,0,0,$blue);  imagestring($im,5,20,5,$nmsg,$white);  imagepng($im);  imagedestroy($im);?>

Demo4.php

<?php  define('__DIR__',dirname(__FILE__).'\\');  //載入已有的映像  header('Content-Type:image/png;');  //header('Content-Type:image/jpeg;');  //imagecreatefrompng -- 從 PNG 檔案或 URL 建立一映像  //用 image 載入映像,是可以編輯映像  //在載入的映像中,加入一個小浮水印  $im = imagecreatefrompng(__DIR__.'ss.png');  //$im = imagecreatefromjpeg('xx.jpg');  $white = imagecolorallocate($im,255,255,255);  imagestring($im,5,10,10,'http://www.oneStopWeb.cn',$white);  imagepng($im);  //imagejpeg($im);  imagedestroy($im);?>

Demo5.php

<?php  define('__DIR__',dirname(__FILE__).'\\');  //載入已有的映像  header('Content-Type:image/png;');  //header('Content-Type:image/jpeg;');  //imagecreatefrompng -- 從 PNG 檔案或 URL 建立一映像  //用 image 載入映像,是可以編輯映像  //在載入的映像中,加入一個小浮水印  $im = imagecreatefrompng(__DIR__.'ss.png');  //$im = imagecreatefromjpeg('xx.jpg');  $white = imagecolorallocate($im,255,255,255);  imagestring($im,5,10,10,'http://www.oneStopWeb.cn',$white);  //font 字型還必須支援中文  $font = 'C:\WINDOWS\Fonts\SIMHEI.TTF';  //字型檔  $text = iconv('gbk','utf-8','閱誰問君誦');  //採用系統提供的字型  //第二參數,是字型的大小,第三個參數是旋轉角度,4,5參數是座標  imagettftext($im,20,10,50,100,$white,$font,$text);  imagepng($im);  //imagejpeg($im);  imagedestroy($im);?>

Demo6.php

<?php  //微縮圖,不但表面的大小改變了,容量也改變了  //是真的改變了,不是表面的縮小  define('__DIR__',dirname(__FILE__).'\\');  header('Content-Type:image/png;');  //getimagesize -- 取得映像大小  //擷取到了原圖的長度和高度  list($width,$height) = getimagesize(__DIR__.'ss.png');  //將原圖縮放成 40%  $_width = $width * 0.4;  $_height = $height * 0.4;  //建立一個新圖  $im = imagecreatetruecolor($_width,$_height);  //下面的工作是,載入原圖,將原圖複製到新圖上去  //載入原圖  $_im = imagecreatefrompng(__DIR__.'ss.png');  //將原圖重新採樣,拷貝到新圖上,最後按 0.4 的比例輸出  //imagecopyresampled -- 重採樣拷貝部分映像並調整大小  imagecopyresampled($im,$_im,0,0,0,0,$_width,$_height,$width,$height);  //將新圖輸出  imagepng($im);  //第二個參數不需要,直接 null 過度  //第三個參數,是 0-100 來調節 JPG 的清晰度  //如果是 imagepng,那麼全部都是高清  //imagejpeg($im,null,50);  //銷毀  imagedestroy($im);  imagedestroy($_im);?>

更多關於PHP相關內容感興趣的讀者可查看本站專題:《PHP圖形與圖片操作技巧匯總》、《PHP基本文法入門教程》、《PHP運算與運算子用法總結》、《php物件導向程式設計入門教程》、《PHP網路編程技巧總結》、《PHP數組(Array)操作技巧大全》、《php字串(string)用法總結》、《php+mysql資料庫操作入門教程》及《php常見資料庫操作技巧匯總》

希望本文所述對大家PHP程式設計有所協助。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.