學習向量圖片(驗證碼),報表的繪製,產生。希望本文能協助到大家。
步驟
建立畫布會只需要的各種圖形(圓,直線,矩形,弧線,扇形)輸出映像到網頁,也可以另存銷毀圖片(釋放記憶體)
圖片格式
gif 圖片壓縮率高,但是只能顯示256色可能造成顏色丟失,但可以顯示動畫jpg/jpeg 圖片的壓縮率高,可以用較小的檔案來顯示網頁上用的比較多png,高模擬綜合了gif和jpg的優勢,但是不能顯示動畫
快速入門
建立畫布$img = imagecreatetruecolor(100,100);取色$red = imagecolorallocate($img, 255, 0, 0);畫圖•imagefilledarc — 畫一橢圓弧且填充•imagefilledellipse — 畫一橢圓並填充•imagefilledpolygon — 畫一多邊形並填充•imagefilledrectangle — 畫一矩形並填充輸出到瀏覽器header("content-type: image/png");imagepng($img);銷毀imagedestroy($img);
圖片到畫布
$srcImage = imagecreatefromgif(filename);$srcImage_info = getimagesize(filename);imagecopy(dst_im, src_im, dst_x, dst_y, src_x, src_y, src_w, src_h);具體參數含義 不懂看文檔
寫字
imagettftext(image, size, angle, x, y, color, fontfile, text)
產生驗證碼
<?php /** * Created by PhpStorm. * User: draymonder * Date: 2018/3/1 * Time: 15:15 */ $checkcode =""; for($i=0;$i<4;$i++){ $checkcode.= dechex(rand(0,15)); } $img = imagecreatetruecolor(200,30); //背景顏色 $bgcolor = imagecolorallocate($img,0,0,0); imagefill($img,0,0,$bgcolor); //添加幹擾線 for($i=0;$i<10;$i++){ $color = imagecolorallocate($img,rand(0,255),rand(0,255),rand(0,255)); imageline($img,rand(0,200),rand(0,30),rand(0,200),rand(0,30),$color); } //白色,字型顏色 $white = imagecolorallocate($img,255,255,255); //添加字串 imagestring($img,rand(4,6),rand(0,180),rand(0,20),$checkcode,$white); header("content-type: image/png"); imagepng($img); imagedestroy($img);?>