亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

圖片出現破裂 怎么回事 代碼是跟著敲的

http://img1.sycdn.imooc.com//576b5c6c0001fa4814450835.jpghttp://img1.sycdn.imooc.com//576b5c9a0001d3ab11610506.jpg


image.func.php 代碼

<?php?

require_once 'string.func.php';

//創建畫布

? ? $width = 80;

$height = 28;

$image = imagecreatetruecolor ( $width, $height );

$white = imagecolorallocate ( $image, 255, 255, 255 );

$black = imagecolorallocate ( $image, 0, 0, 0 );

//用填充矩形填充畫布

imagefilledrectangle ( $image, 1, 1, $width - 2, $height - 2, $white );

$type=1;

$length=4;

$chars = buildRandomString ( $type, $length );

$sess_name="verift";

$_SESSION [$sess_name] = $chars;

$fontfiles = array ("MSYH.TTC", "MSYHL.TTC", "SIMHEI.TTF", "SIMKAI.TTF", "SIMSUN.TTC", );

for($i = 9; $i < $length; $i ++) {

$size = mt_rand ( 14, 18 );

$angle = mt_rand ( - 15, 15 );

$x = 5 + $i * $size;

$y = mt_rand ( 20, 26 );

$fontfile = "../fonts/" . $fontfiles [mt_rand ( 0, count ( $fontfiles ) - 1 )];

$color = imagecolorallocate ( $image, mt_rand ( 50, 90 ), mt_rand ( 80, 200 ), mt_rand ( 90, 180 ) );

$text = substr ( $chars, $i, 1 );

imagettftext ( $image, $size, $angle, $x, $y, $color, $fontfile, $text );

}

header ( "content-type:image/gif" );

imagegif ( $image );

imagedestroy ( $image );


string.func.php ?代碼

<?php


function buildRandomString($type = 1, $length = 4){

? ? if ($type == 1) {

? ? ? ? $chars = join("", range(0, 9));

? ? } elseif ($type == 2) {

? ? ? ? $chars = join("", array_merge(range("a", "z"), range("A", "Z")));

? ? } elseif ($type == 3) {

? ? ? ? $chars = join("", array_merge(range("a", "z"), range("A", "Z"), range(0, 9)));

? ? }

? ? if ($length > strlen($chars)) {

? ? ? ? exit("長度不夠");

? ? }

? ? $chars = str_shuffle($chars);

? ? return substr($chars, 0, $length);

}


正在回答

2 回答

不明白你的說的破裂是什么意思,你是指你在前端的img標簽那里輸出的圖片是破裂的嗎?如果是這樣的話,一你沒有封裝函數,二你沒有調用它,你可以試一下我這個

<?php
/***?驗證碼?***/
require_once'string.func.php';
//通過GD庫做驗證碼
function?verifyImage($type=1,?$length=4,?$pixel=50,?$line=0,?$sess_name="verify"){
????
????//1.?創建畫布
????$width?=?80;
????$height?=?28;
????$type?=?1;
????$length?=?4;
????$image?=?imagecreatetruecolor($width,?$height);
????$white?=?imagecolorallocate($image,255,255,255);
????$black?=?imagecolorallocate($image,0,0,0);

????//2.?用填充矩形填充畫布
????imagefilledrectangle($image,?1,?1,?$width-2,?$height-2,?$white);

????//3.?獲取隨機驗證碼
????$chars?=?buildRandomString($type,?$length);

????//4.?保存到session
????$sess_name?=?"verify";
????$_SESSION[$sess_name]?=?$chars;

????$fontfiles?=?array(
????????????????????"CONSTANI.TTF",
????????????????????"simfang.ttf",
????????????????????"simhei.ttf",
????????????????????"simkai.ttf",
????????????????????"simsun.ttc",
????????????????????"FZLTCXHJW.TTF",????????????????
????????????????);
????//5.?生成驗證碼
????for($i=0;?$i<$length;?$i++){
????????$size?=?mt_rand(14,18);//?字體大小變化
????????$angle?=?mt_rand(-15,15);//?傾斜角度變化
????????$x?=?5?+?$i?*?$size;//?位置變化
????????$y?=?mt_rand(20,26);
????????//?隨機字體
????????$fontfile?=?"../fonts/".$fontfiles[mt_rand(0,count($fontfiles)-1)];
????????//?隨機字體顏色
????????$color?=?imagecolorallocate($image,?mt_rand(10,90),?mt_rand(20,180),?mt_rand(30,130));
????????$text?=?substr($chars,?$i,?1);//?每次取一個字符
????????imagettftext($image,?$size,?$angle,?$x,?$y,?$color,?$fontfile,?$text);
????}

????//6.?干擾點
????if($pixel){
????????for($i=0;?$i<$pixel;?$i++){
????????????imagesetpixel($image,?mt_rand(0,$width-1),?mt_rand(0,$height-1),?$black);
????????}
????}

????//7.?干擾線
????if($line){
????????for($i=0;?$i<$line;?$i++){
????????????$color?=?imagecolorallocate($image,?mt_rand(0,255),?mt_rand(0,255),?mt_rand(0,255));
????????????imageline($image,?mt_rand(0,$width-1),?mt_rand(0,$height-1),?mt_rand(0,$width-1),?mt_rand(0,$height-1),?$color);
????????}
????}
????ob_clean();
????//8.?輸出到服務端
????header("content-type:image/gif");//?輸出圖片類型
????imagegif($image);
????imagedestroy($Aimage);//?銷毀圖片內存
????
}
//verifyImage();


1 回復 有任何疑惑可以回復我~
#1

張洪3347695 提問者

非常感謝! 我試試
2016-06-24 回復 有任何疑惑可以回復我~

我試試 ? 謝啦


0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
手把手教你實現電商網站后臺開發
  • 參與學習       117254    人
  • 解答問題       2101    個

手把手教你用PHP搭建電子商務平臺,由淺入深教你搭建電商系統

進入課程

圖片出現破裂 怎么回事 代碼是跟著敲的

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號