php圖形處理教程-php生成圖片

來源:互聯網
上載者:User
關鍵字 網路程式設計 PHP教程

在web應用中經常會用到生成圖片這一功能,在php教程 中創建圖片需要gd庫的支援才能創建圖形,有了這個圖形功能,我們就可以方便的生成縮圖,驗證碼,給圖片加浮水印等。

在php中要安裝gd庫才能正常運行創建圖片功能,方法如下,在win系統,找到php.ini把

;extension=php_gd2.dll前面的";" 去了,重起apache就OK了。

下面我們一看實例

php的gd庫可以生成多種影像檔,如gif,png,jpg,wbmp,xpm等,下面來看一個生成正方形的檔。

<?php
$height = 300;
$width = 300;
創建背景圖
$im = ImageCreateTrueColor($width, $height);
分配顏色
$white = ImageColorAllocate ($im, 255, 255, 255);
$blue = ImageColorAllocate ($im, 0, 0, 64);
繪製顏色至圖像中
ImageFill($im, 0, 0, $blue);
繪製字串:Hello,PHP
ImageString($im, 10, 100, 120, 'Hello,PHP', $white);
輸出圖像,定義頭
Header ('Content-type: image/png');
將圖像發送至瀏覽器
ImagePng($im);
清除資源
ImageDestroy($im);
?>
查看結果只要流覽php檔就可以了,如果要圖像調用<img src=a.php />

實例二,使用基本函數創建圖片imagecreate()

resource imagescreate(int x,inty)imagedestroy 是放圖片所占記憶體空間

int ingaedestroy( image)imagecopy()

int imagecopy( dst_im,sr_im,int x,int y,int x,int y,)

下面來看實例

<?php
header("Content-type: image/jpeg");
載入圖像
$imagen1 = imagecreatefromjpeg("imagen1.jpg");
$imagen2 = imagecreatefromjpeg("imagen2.jpg");

複製圖像
imagecopy($imagen1,$imagen2,0,0,0,0,200,150);

輸出jpeg圖像
imagejpeg($imagen1);

釋放記憶體
imagedestroy($imagen2);
imagedestroy($imagen1);

?>
實例三在圖片上圖片文字

在這個功能上我們會用到imageCreateFromJpeg這個函數是,把來自檔或者form的圖片重新創建一次,

resource imageCrrateFromJpge(string,imageName);

imageCrateFromPng();

resource imageCrrateFromJpge(string,imageName);
看實例

&lt;?php


//PNG格式影像處理函數


function Loadpng ($imgname) {


    $im = @ImageCreateFromPNG ($imgname);


if (!$im) {    //載入圖像失敗                     


        $im = ImageCreate (400, 30);     


        $bgc = ImageColorAllocate ($im, 255, 255, 255);


        $tc  = ImageColorAllocate ($im, 0, 0, 0);


       ImageFilledRectangle ($im, 0, 0, 150, 30, $bgc);


       ImageString($im, 4, 5, 5, "Error loading: $imgname", $tc);


    }


    return $im;


 }


 $imgPng=Loadpng("./karte.png");


   /* 輸出圖像到瀏覽器 */


 header("Content-type: image/png");


 imagePng($imgPng);


 ?&gt;


 


 &lt;?php


$img = imageCreate(100, 100);


$black = imageColorAllocate($img, 0, 0, 0);


$white = imageColorAllocate($img, 255, 255, 255);


$orange = imageColorAllocate($img, 255, 128, 64);


$lightorange = imageColorAllocate($img, 255, 220, 164);


imageFilledRectangle($img, 0, 0, 100, 100, $white);


imageRectangle($img, 0, 0, 99, 99, $black);


imageRectangle($img, 5, 5, 94, 94, $black);


$points = Array(12,10, 20,15,15,20);


$nump = (int) count($points)/2;


imagePolygon($img, $points, $nump, $orange);


imageLine($img, 17, 18, 27, 33, $orange);


imageLine($img, 18, 18, 28, 33, $lightorange);


imageLine($img, 19, 18, 29, 33, $orange);


imageRectangle($img, 15, 33, 80, 75, $orange);


imageFill($img, 14, 14, $lightorange);


imageFill($img, 20, 40, $lightorange);


imageString ($img, 2, 20, 40, "I'm a PHP", $black);


imageString ($img, 2, 30, 55, "image", $black);


imagePNG($img);


?&gt;

在圖像上寫文字imagechar imageloadfont imagefontheight, imagefontwidth函數

<?php
$imagen = imagecreate(350,76);
$bg = imagecolorallocate($imagen,255,255,255);
$negro = imagecolorallocate($imagen,0,0,0);
/*
獲取內置字體寬度和高度
*/
$w1 = imagefontwidth(1); 字體1字體寬度
$h1 = imagefontheight(1); 字體1字體高度

$w2 = imagefontwidth(2); 字體2字體寬度
$h2 = imagefontheight(2); 字體2字體高度

$w3 = imagefontwidth(3); 字體3字體寬度
$h3 = imagefontheight(3); 字體3字體高度

$w4 = imagefontwidth(4); 字體4字體寬度
$h4 = imagefontheight(4); 字體4字體高度

$w5 = imagefontwidth(5); 字體5字體寬度

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.