您好,登錄后才能下訂單哦!
01.php
<?php
/*
用windows畫圖板畫圖
1:創建一張畫布,設定大小
2:創建顏料.(紅,r 綠g 藍b,三原色組成的. 三原色由弱到強各可以選0-255之間).
3:畫線,寫字,畫圖形,填充等.
4:保存成圖片
5:銷毀畫布
用gd庫來畫圖,仍是以上5個步驟.
*/
// 1:造畫布,以資源形式返回
$im = p_w_picpathcreatetruecolor(300,200);
// 2: 創建顏料
$gray = p_w_picpathcolorallocate($im,100,100,100);
// 3: 填充畫布
p_w_picpathfill($im,0,0,$gray);
// 4: 保存成圖片
p_w_picpathpng($im,'./01.png');
// 5: 銷毀畫布
p_w_picpathdestroy($im);
echo 'ok';
-------------------
02.php
<?php
// gd庫默認不開啟,需要打開相關選項
// 如何檢測gd庫是否已開啟?
print_r(gd_info());
//看到如下類似數組,可以判斷gd庫是否已開啟
Array
(
[GD Version] => bundled (2.0.34 compatible) // gd庫版本
[FreeType Support] => 1
[FreeType Linkage] => with freetype
[T1Lib Support] =>
[GIF Read Support] => 1
[GIF Create Support] => 1
[JPEG Support] => 1
[PNG Support] => 1
[WBMP Support] => 1
[XPM Support] =>
[XBM Support] => 1
[JIS-mapped Japanese Font Support] =>
)
-------------------
03.php
<?php
// 第一步:創建畫布
// 1: 直接創建空白畫布,指定寬和高兩個參數
// 300*200的空白畫布,返回值是資源類型
// 新建的畫布,默認底色是純黑色.
/*
$im = p_w_picpathcreatetruecolor(300,200);
p_w_picpathpng($im,'./02.png');
*/
$im=p_w_picpathcreatefromjpeg('./he.jpg');
$blue=p_w_picpathcolorallocate($im,0,0,255);
p_w_picpathline($im,0,0,800,600,$blue);
if(p_w_picpathjpeg($im,'./03.jpg')){
echo 'ok';
}
?>
-------------------
04.php
<?php
$im1=p_w_picpathcreatetruecolor(300,200);
$im2=p_w_picpathcreatetruecolor(600,400);
$blue=p_w_picpathcolorallocate($im1,0,0,255);
$red=p_w_picpathcolorallocate($im2,255,0,0);
?>
-------------------
05.php
<?php
$im=p_w_picpathcreatetruecolor(600,400);
$red=p_w_picpathcolorallocate($im,255,0,0);
p_w_picpathfill($im,0,0,$red);
header('content-type:p_w_picpath/jpeg');
p_w_picpathjpeg($im);
p_w_picpathdestroy($im);
?>
-------------------
06.php
<?php
// 第五步: 銷毀畫布
$im = p_w_picpathcreatetruecolor(300,200);
p_w_picpathdestroy($im);
?>
-------------------
07.php
<?php
/*
p_w_picpathline : 畫線
p_w_picpathstring,p_w_picpathttftext: 寫字
p_w_picpathfill — 區域填充
p_w_picpathfilledarc — 畫一橢圓弧且填充
p_w_picpathfilledellipse — 畫一橢圓并填充
p_w_picpathfilledpolygon — 畫一多邊形并填充
p_w_picpathfilledrectangle — 畫一矩形并填充
p_w_picpathrectangle :畫一個矩形
p_w_picpathcopy : 復制圖片
p_w_picpathcopymerge :復制圖片并合并(可以設透明度.)
p_w_picpathcopyresampled:合并并調整大小
*/
?>
-------------------
08.php
<?php
// 畫線的學習
/*
bool p_w_picpathline ( resource $p_w_picpath , int $x1 , int $y1 , int $x2 , int $y2 , int $color )
*/
// 1:創建畫布
$im = p_w_picpathcreatefromjpeg('./home.jpg');
// 2:造顏料
$red = p_w_picpathcolorallocate($im,255,0,0);
$blue = p_w_picpathcolorallocate($im,0,0,255);
// 3: 畫線
p_w_picpathline($im,0,0,670,503,$red);
p_w_picpathline($im,0,503,670,0,$blue);
// 4: 輸出
header('content-type: p_w_picpath/jpeg');
p_w_picpathjpeg($im);
// 5: 銷毀
p_w_picpathdestroy($im);
?>
-------------------
09.php
<?php
/*
寫字
bool p_w_picpathstring ( resource $p_w_picpath , int $font , int $x , int $y , string $s , int $col )
resource $p_w_picpath :畫布資源
int $font: 大小(1-5),字體是系統默認的,改變不了.
int $x , int $y : 代表寫的第一個字符的左上角點的坐標.
string $s: 要寫的內容
int $color:顏色
問:能否換行
答:不能.
問:能否寫中文
答:不能.
問:能否指定字體
答:不能
*/
$im = p_w_picpathcreatefromjpeg('./home.jpg');
$blue = p_w_picpathcolorallocate($im,0,0,255);
p_w_picpathstring($im,5,100,100,'welcome to shahe',$blue);
header('content-type: p_w_picpath/jpeg');
p_w_picpathjpeg($im);
-------------------
10.php
<?php
function randName($n = 6) {
if($n <= 0) {
return '';
}
$str = 'abcdefghijkmnpqrstuvwxyzABCDEFGHIJKMNPQRSTUVWXYZ0123456789';
$str = substr(str_shuffle($str),0,$n);
return $str;
}
// 做驗證碼
$im = p_w_picpathcreatetruecolor(80,30);
$gray = p_w_picpathcolorallocate($im,30,30,30);
$red = p_w_picpathcolorallocate($im,255,0,0);
p_w_picpathfill($im,0,0,$gray);
p_w_picpathstring($im,5,5,5,randName(4),$red);
// 輸出
header('content-type: p_w_picpath/jpeg');
p_w_picpathjpeg($im);
-------------------
11.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN">
<head>
<title>新建網頁</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="description" content="" />
<meta name="keywords" content="" />
<script type="text/javascript">
function chn() {
var img0 = document.getElementsByTagName('img')[0];
img0.src = '10.php?id=' + Math.random();
}
</script>
<style type="text/css">
</style>
</head>
<body>
<form>
驗證碼:<input type="text" name="code" /><img src="10.php" />
</form>
</body>
</html>
-------------------
12.php
<?php
/*
寫中文
p_w_picpathttftext
需要先提供一個ttf字體庫
array p_w_picpathttftext ( resource $p_w_picpath , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text )
*/
$im = p_w_picpathcreatefromjpeg('./home.jpg');
$blue = p_w_picpathcolorallocate($im,0,0,255);
p_w_picpathttftext($im,36,0,100,100,$blue,'./msyh.ttf','昌平水郡,遠離城鎮喧囂');
header('content-type: p_w_picpath/jpeg');
p_w_picpathjpeg($im);
?>
-------------------
13.php
<?php
/*
// 畫橢圓
在一張畫布定一個橢圓,需要4個數據
bool p_w_picpathellipse ( resource $p_w_picpath , int $cx , int $cy , int $w , int $h , int $color )
圓心: cx,cy
寬度: w
高度: h
// 畫矩形
bool p_w_picpathrectangle ( resource $p_w_picpath , int $x1 , int $y1 , int $x2 , int $y2 , int $col )
*/
$im = p_w_picpathcreatetruecolor(400,800);
$gray = p_w_picpathcolorallocate($im,100,100,100);
$blue = p_w_picpathcolorallocate($im,0,0,255);
p_w_picpathfill($im,0,0,$gray);
// 畫橢圓
p_w_picpathellipse($im,200,50,200,100,$blue);
// 畫矩形
p_w_picpathrectangle($im,100,100,300,200,$blue);
// 畫圓形
p_w_picpathellipse($im,200,300,200,200,$blue);
// 輸出
header('content-type: p_w_picpath/jpeg');
p_w_picpathjpeg($im);
-------------------
14.php
<?php
// 圖片的復制
/*
案例:做一個底版照片的效果
如下:[x]是一張小圖
[x]
利用小圖作一張大圖
{[x] [x]}
*/
/*
獲取圖片的寬度
p_w_picpathsx()
獲取圖片的高度
p_w_picpathsy()
*/
// 讀取圖片作為畫布資源
$small = p_w_picpathcreatefrompng('./feng.png');
// 判斷大小
$sx = p_w_picpathsx($small); // 小圖的寬
$sy = p_w_picpathsy($small); // 小圖的寬
// 造大圖畫布
$big = p_w_picpathcreatetruecolor(2*$sx + 20,$sy);
$gray = p_w_picpathcolorallocate($big,100,100,100);// 造灰色
// 鋪大圖
p_w_picpathfill($big,0,0,$gray);
// 復制小圖到大圖上.
/*
bool p_w_picpathcopy ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h )
*/
p_w_picpathcopy($big,$small,0,0,0,0,$sx,$sy);
p_w_picpathcopy($big,$small,$sx+20,0,0,0,$sx,$sy);
// 輸出
header('content-type: p_w_picpath/jpeg');
p_w_picpathjpeg($big);
?>
-------------------
15.php
<?php
// 填充
$im = p_w_picpathcreatetruecolor(400,400);
$gray = p_w_picpathcolorallocate($im,100,100,100);
$blue = p_w_picpathcolorallocate($im,0,0,255);
$red = p_w_picpathcolorallocate($im,255,0,0);
$orange = p_w_picpathcolorallocate($im,248,224,143);
p_w_picpathfill($im,100,100,$gray);
// 畫一個橢圓
p_w_picpathellipse($im,200,200,200,200,$blue);
// 填充橢圓
p_w_picpathfill($im,200,200,$red);
// 畫一個矩形并直接填充.
p_w_picpathfilledrectangle($im,0,100,200,200,$blue);
// 畫一個橢圓并直接填充
p_w_picpathfilledellipse($im,100,80,200,100,$orange);
// 輸出
header('content-type: p_w_picpath/jpeg');
p_w_picpathjpeg($im);
?>
-------------------
16.php
<?php
// 畫一段圓弧并且填充
/*
bool p_w_picpathfilledarc ( resource $p_w_picpath , int $cx , int $cy , int $w , int $h , int $s , int $e , int $color , int $style )
style的說明
PIE: 餅
CHORD: 弦
NOFILL:不填充
EDGED: 有邊的
0 IMG_ARC_PIE
1 IMG_ARC_CHORD
2 IMG_ARC_NOFILL
4 IMG_ARC_EDGED
0000 (餅/弧)
0100 (填充)
-----
0100 = 4 -->扇形+填充
0001 (弦)
0010 (不填充)
--------
0011 = 3 (直線)
0001 (弦)
0100 (填) --->三角+填充效果
-----
0101 = 5
0000 (弧)
0010 (不填)
-----
0010 -> 2->一段弧線,但不填.
*/
$im = p_w_picpathcreatetruecolor(400,400);
$gray = p_w_picpathcolorallocate($im,100,100,100);
$blue = p_w_picpathcolorallocate($im,0,0,255);
p_w_picpathfill($im,0,0,$gray);
p_w_picpathfilledarc($im,200,200,200,200,45,135,$blue,2);
header('content-type: p_w_picpath/jpeg');
p_w_picpathjpeg($im);
?>
-------------------
17.php
<?php
// 圖片的復制
/*
案例:做一個底版照片的效果
如下:[x]是一張小圖
[x]
利用小圖作一張大圖
{[x] [x]}
*/
/*
獲取圖片的寬度
p_w_picpathsx()
獲取圖片的高度
p_w_picpathsy()
*/
// 讀取圖片作為畫布資源
$small = p_w_picpathcreatefrompng('./feng.png');
// 判斷大小
$sx = p_w_picpathsx($small); // 小圖的寬
$sy = p_w_picpathsy($small); // 小圖的寬
// 造大圖畫布
$big = p_w_picpathcreatetruecolor(2*$sx + 20,$sy);
$gray = p_w_picpathcolorallocate($big,100,100,100);// 造灰色
// 鋪大圖
p_w_picpathfill($big,0,0,$gray);
// 復制小圖到大圖上.
/*
bool p_w_picpathcopy ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h )
*/
p_w_picpathcopy($big,$small,0,0,0,0,$sx,$sy);
p_w_picpathcopy($big,$small,$sx+20,0,0,0,$sx,$sy);
// 輸出
header('content-type: p_w_picpath/jpeg');
p_w_picpathjpeg($big);
?>
-------------------
18.php
<?php
// 來點水印效果.
/*
函數的參數和p_w_picpathcopy一樣,
差在最后一個參數: $pct 代表透明度.
bool p_w_picpathcopymerge ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h , int $pct )
*/
$big = p_w_picpathcreatefromjpeg('./home.jpg');
$bx = p_w_picpathsx($big);
$by = p_w_picpathsy($big);
$small = p_w_picpathcreatefrompng('./feng.png');
$sx = p_w_picpathsx($small);
$sy = p_w_picpathsy($small);
// 加文字
$blue = p_w_picpathcolorallocate($big,0,0,255);
p_w_picpathttftext($big,16,0,100,100,$blue,'./msyh.ttf','昌平水郡,鳳姐叫你來買房');
p_w_picpathcopymerge($big,$small,$bx-$sx,0,0,0,$sx,$sy,37);
// 輸出
header('content-type: p_w_picpath/jpeg');
p_w_picpathjpeg($big);
?>
-------------------
19.php
<?php
// 生成縮略圖
/*
bool p_w_picpathcopyresampled ( resource $dst_p_w_picpath , resource $src_p_w_picpath , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h )
*/
$feng = p_w_picpathcreatefrompng('./feng.png');
$fx = p_w_picpathsx($feng); // 獲取寬度
$fy = p_w_picpathsy($feng); // 獲取高度
// 造一塊小畫布
$sx = $fx/2;
$sy = $fy/2;
$small = p_w_picpathcreatetruecolor($sx,$sy);
// 把大畫布粘過來,同時縮略粘過來
p_w_picpathcopyresampled($small,$feng,0,0,0,0,$sx,$sy,$fx,$fy);
if(p_w_picpathpng($small,'./xiaofeng.png')) {
echo '保存成功';
} else {
echo '保存失敗';
}
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。