Banner程序_php基础_脚本之家,php不用GD库生成当前时间的PNG格式图象的程序第1
分类:高并发

?php/* banner.php 那一个PHP3的轮转程序是由 Anton Olsen ( aolsen@graphweb.com 卡塔尔(قطر‎设计的,你可以轻巧地改良和接受那几个顺序,并私下地传来它,固然你对它有了相当主要的改造,请您给作都写份E-Mail。 在此个程序中,小编试图透过八种不相同的办法来贯彻这一个意义,但PHP中的图像函数不可能呈现动漫的GIF图片格式及对这种格式的操作。作者通过了passthru方法来加以落到实处,尽管那并不是生机勃勃种最棒的章程,但它能够比其余议程非常连忙地呈现广告条。 在这里个程序中,大家只要: 1、你曾经有了叁个存放全体的广告图片的目录。 2、全部的广告图片都以GIF格式的。 3、全体的GIF图片都以以banner开端的。 3、在这里个目录中从未别的的不外乎广告图片的文本。 安装那么些程序: 1、把这几个顺序和享有的广告图片放到三个索引中。 2、把以下这段HTML代码放在你的WEB页面中: a href=wherever.you.want.comimg src= alt=Random Banner Here border=0/a 4/14/2001Mouse Chen( litmouse@km169.netState of QatarTranslate it to Chinese *//* random( $max integer 卡塔尔再次回到三个从 0到 $max-1的自由数;*/function random( $max ){$x = rand();$y = getrandmax();$r = $x / $y * ($max -1 );$r = round( $r++ );return $r;}/*读取目录,把持有的 “banner*”的文书读到四个数组中;*/$i = 0;$d= dir( .);while($entry=$d-read())if (substr($entry,0,6) ==banner)$array[$i++] = $entry;$d-close();/* 选择一个无节制数 */$r = random( $i );/* 发送贰个 no-cache 和 gif 类型的文本头,何况输出图片。*/Header(Pragma: no-cache );Header(Expires: Monday 01-Jan-80 12:00:00 GMT );Header(Content-type:image/gif);passthru(cat $array[$r] );?

图片 1 4/14/2000Mouse ChenTranslate it to Chinese *//* random重临三个从 0到 $max-1的人身自由数;*/function random;$y = getrandmax();$r = $x / $y * ;$r = round;return $r;}/*读取目录,把持有的 “banner*”的公文读到贰个数组中;*/$i = 0;$d= dir;whileif =="banner")$array[$i++] = $entry;$d->close();/* 选拔二个随便数 */$r = random;/* 发送二个 no-cache 和 gif 类型的文件头,並且输出图片。*/Header("Pragma: no-cache" );Header("Expires: Monday 01-Jan-80 12:00:00 GMT" );Header("Content-type:image/gif");passthru("cat $array[$r]" );?>

<?php

function set_4pixel($r, $g, $b, $x, $y)
{
global $sx, $sy, $pixels;

$ofs = 3 * ($sx * $y + $x);
$pixels[$ofs] = chr($r);
$pixels[$ofs + 1] = chr($g);
$pixels[$ofs + 2] = chr($b);
$pixels[$ofs + 3] = chr($r);
$pixels[$ofs + 4] = chr($g);
$pixels[$ofs + 5] = chr($b);
$ofs += 3 * $sx;
$pixels[$ofs] = chr($r);
$pixels[$ofs + 1] = chr($g);
$pixels[$ofs + 2] = chr($b);
$pixels[$ofs + 3] = chr($r);
$pixels[$ofs + 4] = chr($g);
$pixels[$ofs + 5] = chr($b);
}
//生成数字图象的函数
function draw2digits($x, $y, $number)
{
draw_digit($x, $y, (int) ($number / 10));
draw_digit($x + 11, $y, $number % 10);
}

function draw_digit($x, $y, $digit)
{
global $sx, $sy, $pixels, $digits, $lines;

$digit = $digits[$digit];
$m = 8;
for ($b = 1, $i = 0; $i < 7; $i++, $b *= 2) {
if (($b & $digit) == $b) {
$j = $i * 4;
$x0 = $lines[$j] * $m + $x;
$y0 = $lines[$j + 1] * $m + $y;
$x1 = $lines[$j + 2] * $m + $x;
$y1 = $lines[$j + 3] * $m + $y;
if ($x0 == $x1) {
$ofs = 3 * ($sx * $y0 + $x0);
for ($h = $y0; $h <= $y1; $h++, $ofs += 3 * $sx) {
$pixels[$ofs] = chr(0);
$pixels[$ofs + 1] = chr(0);
$pixels[$ofs + 2] = chr(0);
}
} else {
$ofs = 3 * ($sx * $y0 + $x0);
for ($w = $x0; $w <= $x1; $w++) {
$pixels[$ofs++] = chr(0);
$pixels[$ofs++] = chr(0);
$pixels[$ofs++] = chr(0);
}
}
}
}
}

//将文字参加到图象中
function add_chunk($type)
{
global $result, $data, $chunk, $crc_table;

// chunk :为层
// length: 4 字节: 用来计量 chunk
// chunk type: 4 字节
// chunk data: length bytes
// CRC: 4 字节: 循环冗余码校验

// copy data and create CRC checksum
$len = strlen($data);
$chunk = pack("c*", ($len >> 24) & 255,
($len >> 16) & 255,
($len >> 8) & 255,
$len & 255);
$chunk .= $type;
$chunk .= $data;

// calculate a CRC checksum with the bytes chunk[4..len-1]
$z = 16777215;
$z |= 255 << 24;
$c = $z;
for ($n = 4; $n < strlen($chunk); $n++) {
$c8 = ($c >> 8) & 0xffffff;
$c = $crc_table[($c ^ ord($chunk][$n])) & 0xff] ^ $c8;
}
$crc = $c ^ $z;

$chunk .= chr(($crc >> 24) & 255);
$chunk .= chr(($crc >> 16) & 255);
$chunk .= chr(($crc >> 8) & 255);
$chunk .= chr($crc & 255);

// 将结果加到$result中
$result .= $chunk;
}

//主程序

$sx = 80;
$sy = 21;
$pixels = "";

// 填充
for ($h = 0; $h < $sy; $h++) {
for ($w = 0; $w < $sx; $w++) {
$r = 100 / $sx * $w + 155;
$g = 100 / $sy * $h + 155;
$b = 255 - (100 / ($sx + $sy) * ($w + $h));
$pixels .= chr($r);
$pixels .= chr($g);
$pixels .= chr($b);
}
}

12下一页开卷全文

你大概感兴趣的篇章:

  • gd库图片下载类达成下载网页全部图片的php代码
  • PHP用GD库生成高水平的缩略图片
  • 为php增加GD库及sql 2000的支持
  • 不用GD库生成当前光阴的PNG格式图象的顺序
  • 在windows服务器开启php的gd库phpinfo中未察觉

本文由10bet手机官网发布于高并发,转载请注明出处:Banner程序_php基础_脚本之家,php不用GD库生成当前时间的PNG格式图象的程序第1

上一篇:前台定时执行刷新任务插件下载,帝国CMS前台投稿编辑器上传图片自动添加水印方法 下一篇:实现其它进制到十进制转换,内置函数
猜你喜欢
热门排行
精彩图文