诡异的图片

首页 | 新闻 | 交流 | 问吧 | 文档 | 手册 | 下载 | 博客

收藏此问题 发表新评论

诡异的图片

此游戏已圆满结束, 谢谢各位!  


 

[ 本帖最后由 sztime 于 2007-11-4 21:15 编辑 ]
昵称: sztime  时间: 2007-10-28 03:08:00
:o
昵称: luzhou  时间: 2007-10-28 08:26:00
试试
昵称: bdyanan  时间: 2007-10-28 15:28:00
:lol
昵称: leehui1983  时间: 2007-10-28 15:41:00
哈哈,果然。。。。
昵称: 月黑风高  时间: 2007-10-28 16:11:00
^_^...................
昵称: liexusong  时间: 2007-10-28 16:19:00
怎么做的??
昵称: liexusong  时间: 2007-10-28 16:20:00
还有感谢呀?
;P
昵称: luzhou  时间: 2007-10-28 16:29:00
是不是真的呀.
昵称: index  时间: 2007-10-28 16:32:00
楼主可以说说思路,供大家借鉴和学习。
:)
昵称: luzhou  时间: 2007-10-28 17:20:00
回复看看。。
昵称: forest  时间: 2007-10-28 17:40:00
都比较漂亮啊!
昵称: forest  时间: 2007-10-28 17:42:00
是不是每一页第一个回复都会感谢一下,同时上色?
;P
昵称: luzhou  时间: 2007-10-28 18:34:00
底下的继续哦,不过还是希望LZ共享一下思路。
:)
昵称: luzhou  时间: 2007-10-28 18:35:00
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
昵称: likaiyou  时间: 2007-10-28 19:38:00
有我的名字?
昵称: yq314  时间: 2007-10-28 21:24:00
www.test.com.cn :)
昵称: mosee  时间: 2007-10-28 22:54:00
???看看
昵称: wukeyuan  时间: 2007-10-29 09:07:00
:L 见鬼
昵称: 逆雪寒  时间: 2007-10-29 09:07:00
昵称: softly  时间: 2007-10-29 10:52:00
:o
昵称: 虔诚少年  时间: 2007-10-29 10:54:00
:o
昵称: 虔诚少年  时间: 2007-10-29 10:55:00
xzc
昵称: wuxp  时间: 2007-10-29 10:57:00
realy
昵称: wedypei  时间: 2007-10-29 11:57:00
:Q 分享怎么做的  快点`~
昵称: 17too  时间: 2007-10-29 12:21:00
试试看看:lol
昵称: hoday  时间: 2007-10-29 12:43:00
是不是哦
昵称: lshfong  时间: 2007-10-29 16:10:00
:)
昵称: zhaofei299  时间: 2007-10-29 18:16:00
无看出来!!
昵称: zhaofei299  时间: 2007-10-29 18:16:00
嘿嘿,代码呢~~老实点交出来~
昵称: loveb  时间: 2007-10-29 19:37:00
LZ应该说说实现思路。
:)
昵称: luzhou  时间: 2007-10-29 20:33:00
呵呵,我来试试
昵称: iixin  时间: 2007-10-29 20:41:00
引用:
原帖由 iixin 于 2007-10-29 20:41 发表
呵呵,我来试试
试什么?试试解思路?
:)
昵称: luzhou  时间: 2007-10-29 21:06:00
我看看
昵称: niohe  时间: 2007-10-29 23:49:00
:)
昵称: benero  时间: 2007-10-30 00:05:00
www
昵称: heixiake  时间: 2007-10-30 00:14:00
顶你一下~
:)
昵称: luzhou  时间: 2007-10-30 07:03:00
:)
昵称: wang8070  时间: 2007-10-30 09:00:00
?
昵称: wang8070  时间: 2007-10-30 09:00:00
tyhrety
昵称: cookies  时间: 2007-10-30 09:35:00
有意思
昵称: tqjs  时间: 2007-10-30 10:10:00
为什么显示我名字的那个是黑白:L ,前面几个美女我居然没份呀:Q
昵称: tqjs  时间: 2007-10-30 10:11:00
测试
昵称: wx51wj  时间: 2007-10-30 10:50:00
真的吗??
昵称: jgcao83  时间: 2007-10-30 13:12:00
试试
昵称: viagra46  时间: 2007-10-30 13:35:00
这么神奇?呵呵,看看
昵称: 呼噜猪  时间: 2007-10-30 16:57:00
试下玩。
昵称: Edward_Sim  时间: 2007-10-30 17:23:00
:o :o :o
昵称: 无心为道  时间: 2007-10-30 18:48:00
<?php
/*
    ......
    以下是涉及到图片处理的代码.

    素材图片共25张:
    每个头像的彩色和黑白图各1张, 命名为 A_01.jpg 至 A_12.jpg,  B_01.jpg 至 B_12.jpg, 尺寸为 180 * 240.
    另1张是全部黑白图片的组合图, 即完整的背景图. 边距和间距均为5, 命名为BG.jpg.

    已初始化的变量:
    $id:  此程序设计为可同时处理多个论坛和多个帖子的数据, $id 表示当前正在处理的是哪一个.
    $names:  回复者的帐号列表(含楼主, 有重复). 如何记录下来的, 暂不公布, 大家自己思考吧.
    $pages:  可处理的头像总数. 即12.
    $pageSize:  页尺寸, 这个论坛是10帖. 这样可以将头像与每一页对应起来. 以下提到的"某一页"和"某个头像"实际上是同一个意思了.
    $path:  图片所在目录

    头像序号和页号都是从1开始的.

    by TIME Digital Studio, Oct 27, 2007.

*/

    // 帖子总数
    $total = count($names);

    // 缓存文件
    clearstatcache();
    $lastfile = file_get_contents('filename.php');

    // 读取上次缓存图片时的帖子总数
    if (preg_match("/ $id\,(\d+)\,/", $lastfile, $arr)) $last = intval($arr[1]); else $last = 1;

    // 若缓存图片丢失(事实上不会丢失的, 呵呵)
    if (!file_exists("$path/cache_$id.jpg")) {
        copy("$path/BG.jpg", "$path/cache_$id.jpg"); // 将以背景图片重建缓存图片
        $last = 1; // 将从第一个头像开始重建
    }

    // 尚无任何回帖时, 直接输出背景图并结束程序
    if ($total == 1) die(ImageJPEG(ImageCreateFromJPEG("$path/BG.jpg"), '', 90));

    // 若总帖数超出程序须处理的最大值(此论坛是:10帖*12页=120), 则忽略超出的部分
    if ($total > $pageSize * $pages) $total = $pageSize * $pages;

    // 若无新帖, 直接输出缓存图片并结束程序
    if ($last == $total) die(ImageJPEG(ImageCreateFromJPEG("$path/cache_$id.jpg"), '', 90));

    // 以下读入缓存图片.
    if ($last < $total) { // 有新帖时
        $im = ImageCreateFromJPEG("$path/cache_$id.jpg");
    }
    else { // 缓存文件中记录的帖子总数大于当前实际帖子总数的时候, 说明有人删帖, 须用背景图重建
        $im = ImageCreateFromJPEG("$path/BG.jpg");
        $last = 1;
    }

    // 文字颜色
    $white = ImageColorAllocate($im, 255, 255, 255);
    $black = ImageColorAllocate($im, 0, 0, 0);
    $yellow = ImageColorAllocate($im, 224, 224, 192);

    // 需要处理的头像的起始序号, 通常指缓存时的结束页, 注意是"通常".
    $start = intval( ( $last - 1) / $pageSize ) + 1;

    // 需要处理的头像的结束序号. 起始页和结束页通常是同一页. 注意是"通常".
    $end = intval( ( $total - 1) / $pageSize ) + 1;

    // 结束页的帖子数
    $n = $total % $pageSize;

    // 依次处理每一页
    for ($i=$start; $i<=$end; $i++) {
        // 先用彩色头像完全覆盖
        $file = ($i<=9 ? "$path/A_0$i.jpg" : "$path/A_$i.jpg");
        $x = 5 + ( $i - 1 ) % 3 * 185;
        $y = 5 + intval( ( $i - 1 ) / 3 ) * 245;
        ImageCopy($im, ImageCreateFromJPEG($file), $x, $y, 0, 0, 180, 240);

        // 若是结束页, 则在覆盖之后, 须检查它是否达到10帖, 不到的话就截取黑白头像的一部分, 覆盖到彩色头像上
        if ($n && $i == $end) {
            $file = ($end<=9 ? "$path/B_0$end.jpg" : "$path/B_$end.jpg"); // 黑白头像
            $xx = 5 + ( $end - 1 ) % 3 * 185;
            $dy = round( 120 * $n / $pageSize ); // 黑白头像上截取部分的Y坐标
            $yy = 5 + intval( ( $end - 1 ) / 3 ) * 245 + $dy; // 目标区的Y坐标
            $w = 180;
            $h = 240 - $dy - $dy; // 截取高度
            ImageCopy($im, ImageCreateFromJPEG($file), $xx, $yy, 0, $dy, $w, $h); // 覆盖
        }

        // 开始输出文字
        // 读取当前页的所有回帖者, 并去除重复值及楼主的帐号.
        $arr = array_values(array_diff(array_unique(array_slice($names, ($i-1)*$pageSize, $pageSize)), array($names[0])));
        $ctr = count($arr);

        // 起始坐标
        $left = $x + 18;
        $top = $y + 24;

        $text = mb_convert_encoding('感谢以下', 'UTF-8', 'GBK');
        // 输出文字的黑色阴影. simsun.ttf 是新宋体.
        ImageTTFText($im, 9, 0, $left+1, $top+1, $black, 'simsun.ttf', $text);
        // 白色文字
        ImageTTFText($im, 9, 0, $left, $top, $white, 'simsun.ttf', $text);
        $left += 51;

        // 当前页中帐号的数量. 使用了verdana字体, 新宋体很难看
        $text = "$ctr";
        ImageTTFText($im, 9, 0, $left+1, $top+1, $black, 'verdana.ttf', $text);
        ImageTTFText($im, 9, 0, $left, $top, $white, 'verdana.ttf', $text);
        $len = ImageTTFBBox(9, 0, 'verdana.ttf', $text); // 计算文字的宽度
        $left += $len[2] - $len[0] + 5;

        $text = mb_convert_encoding('位的回复:', 'UTF-8', 'GBK');
        ImageTTFText($im, 9, 0, $left+1, $top+1, $black, 'simsun.ttf', $text);
        ImageTTFText($im, 9, 0, $left, $top, $white, 'simsun.ttf', $text);
        $left = $x + 18;

        // 下一行的Y坐标
        $top += 22;

        // 每一页最多显示11个帐号. 有些论坛的页尺寸可能设置得远多于10.
        // 若当前页不超过11个回帖者, 就全部输出. 否则, 输出前10个帐号和一行省略号
        for($j=0; $j<$ctr && $j<10; $j++) {
            $text = mb_convert_encoding($arr[$j], 'UTF-8', 'GBK');
            ImageTTFText($im, 9, 0, $left+1, $top+1, $black, 'simsun.ttf', $text);
            ImageTTFText($im, 9, 0, $left, $top, $yellow, 'simsun.ttf', $text);
            $top += 17;
        }
        if ($ctr > 11) {
            $text = mb_convert_encoding('……', 'UTF-8', 'GBK');
            ImageTTFText($im, 9, 0, $left+1, $top+1, $black, 'simsun.ttf', $text);
            ImageTTFText($im, 9, 0, $left, $top, $white, 'simsun.ttf', $text);
        }
    }

// 以下直接向浏览器输出图片, 同时保存缓存图片和帐号缓存文件.
// ......
?>
昵称: 无心为道  时间: 2007-10-30 18:49:00
哈哈
昵称: aphper  时间: 2007-10-30 18:58:00
牛啊,看看
昵称: 风逸  时间: 2007-10-30 20:00:00
:(
昵称: liuxingyuyuni  时间: 2007-10-31 11:50:00
我的我的啦!~赶紧把第八个美女给我踩出来~~~~~~~~~~~~~~~~
昵称: liuxingyuyuni  时间: 2007-10-31 12:03:00
:o
昵称: 开心一笑  时间: 2007-10-31 13:19:00
现在回复可以看到?
昵称: only4  时间: 2007-10-31 14:44:00
不错 有想法
昵称: only4  时间: 2007-10-31 14:54:00
哦?真的?
昵称: Lilicl  时间: 2007-10-31 15:02:00
we
昵称: itnows  时间: 2007-10-31 16:25:00
牛逼啊  怎么弄的
昵称: dwp34998  时间: 2007-10-31 16:26:00
回复看看
昵称: diekiss  时间: 2007-10-31 16:29:00
神奇哦,怎么做到的
昵称: diekiss  时间: 2007-10-31 16:30:00
再试试,难道论坛会泄密?
昵称: diekiss  时间: 2007-10-31 16:31:00
:D 看看效果
昵称: crackfan  时间: 2007-10-31 17:19:00
test
昵称: 刘胜蛟  时间: 2007-10-31 17:36:00
:lol
昵称: hackercom  时间: 2007-10-31 17:57:00
有点意思
昵称: happyeddie  时间: 2007-10-31 19:02:00
昵称: lxylxy888666  时间: 2007-10-31 19:49:00
有点意思:o
昵称: pan0078  时间: 2007-10-31 20:05:00
真的吗。。。。不错哦
昵称: smallipis  时间: 2007-10-31 20:21:00
真的行哦。。。。。拿来做色色站。。。嘻嘻~~~
昵称: smallipis  时间: 2007-10-31 20:27:00
:(
昵称: zhaofei299  时间: 2007-10-31 20:34:00
为什么我什么都没看到!:Q
昵称: zhaofei299  时间: 2007-10-31 20:36:00
test it
昵称: hughrry  时间: 2007-10-31 21:27:00
牛B,我也来玩玩看。。
昵称: BillyFan  时间: 2007-10-31 21:31:00
test
昵称: fsgxyz  时间: 2007-11-01 00:15:00
哈哈...
昵称: animu  时间: 2007-11-01 00:16:00
:$
昵称: linuxroot  时间: 2007-11-01 08:35:00
我也来试试
昵称: zeebit  时间: 2007-11-01 09:01:00
难道是真的
昵称: pylong  时间: 2007-11-01 09:24:00
我来玩
昵称: sbc19861004  时间: 2007-11-01 09:31:00
�y���y��
昵称: bawbaw  时间: 2007-11-01 09:38:00
我也测试测试
昵称: 阿刁  时间: 2007-11-01 09:41:00
你们测试我也测试
昵称: 成都妮妮  时间: 2007-11-01 09:42:00
test
昵称: 网点  时间: 2007-11-01 09:51:00
try
昵称: ekey  时间: 2007-11-01 10:07:00
231312312312
昵称: wuenfeng  时间: 2007-11-01 10:27:00
试试~~
昵称: lj3362569  时间: 2007-11-01 10:28:00
哈哈

读取这个帖子的所有内容

匹配用户名

分页的写到 小图片上

合并图片

输出


很强,顶

如果这个帖子不是游客可以浏览又需要伪造header数据拉~~
昵称: lu5266  时间: 2007-11-01 10:40:00
看看效果
昵称: rinipp  时间: 2007-11-01 11:27:00
好恐怖。。。。
昵称: 13zhang  时间: 2007-11-01 11:43:00
。。。。。。:L 怀疑
昵称: 赤地之雪  时间: 2007-11-01 12:58:00
看来写这个的是一位高手:D
昵称: 赤地之雪  时间: 2007-11-01 12:59:00
昵称: 013014417  时间: 2007-11-01 14:37:00
不会是真的吧
昵称: lin_chaoqi  时间: 2007-11-01 15:12:00
楼主说下思路吧,真不错
昵称: analyzer  时间: 2007-11-01 16:20:00
真的假的
昵称: cacao  时间: 2007-11-01 18:17:00
??
昵称: bluexanadu  时间: 2007-11-01 18:24:00
是分析本页面。同时抓取页码,分析每页的内容,找到作者
昵称: bluexanadu  时间: 2007-11-01 18:28:00
昵称: anysun  时间: 2007-11-01 20:39:00
这么神奇?
昵称: CNI.F1  时间: 2007-11-01 20:55:00
我也来试一下的咯
昵称: 笨笨狼  时间: 2007-11-01 21:50:00
kan kan
昵称: linq319  时间: 2007-11-02 00:05:00
回一个试试
昵称: 小胖仔  时间: 2007-11-02 00:09:00
哇,真的啊?!!
昵称: Snake.Zero  时间: 2007-11-02 07:57:00
看不到啊。
昵称: xlmo  时间: 2007-11-02 08:58:00
色胆色素地放松地方
昵称: 奇将射天狼  时间: 2007-11-02 09:02:00
砸udhdgh
昵称: 奇将射天狼  时间: 2007-11-02 09:03:00
楼主能说一下这张图片是怎么发布出来的吗?

我在其他的论坛发布显示不正常!

服务器怎么记录识别各论坛ID的?
昵称: 奇将射天狼  时间: 2007-11-02 09:30:00
昵称: londit.cn  时间: 2007-11-02 10:21:00
er
昵称: 碧贤  时间: 2007-11-02 11:55:00
昵称: netuse  时间: 2007-11-02 12:23:00
asdffffffffff
昵称: kylingood  时间: 2007-11-02 12:41:00
asdfasdfsadf
昵称: kylingood  时间: 2007-11-02 12:41:00
asdfasdf
昵称: kylingood  时间: 2007-11-02 12:43:00
楼主说说思路
昵称: yuanjing_119  时间: 2007-11-02 12:45:00
哦 试试
昵称: 6368127  时间: 2007-11-02 12:53:00
看看先
昵称: hone033  时间: 2007-11-02 13:41:00
昵称: 真烦  时间: 2007-11-02 13:43:00
还没有来试过,测试一下!
昵称: chaizhiyong  时间: 2007-11-02 13:45:00
果然有我的name哈,把这个share一下三!
昵称: chaizhiyong  时间: 2007-11-02 13:49:00
good
昵称: leesunny  时间: 2007-11-02 13:50:00
好神奇啊!~~
昵称: szj115  时间: 2007-11-02 17:23:00
怎么没到我的名字啊????
昵称: szj115  时间: 2007-11-02 17:25:00
呵呵
昵称: phpandme  时间: 2007-11-02 17:48:00
昵称: AirCross  时间: 2007-11-02 17:59:00
昵称: qingyue  时间: 2007-11-02 18:32:00
加个试试。。
昵称: bluest  时间: 2007-11-02 19:41:00
试试。
昵称: Aoron  时间: 2007-11-03 00:09:00
gfgfgfgf
昵称: wind840619  时间: 2007-11-03 11:41:00
有趣
昵称: sunworld  时间: 2007-11-03 15:42:00
果然强悍
昵称: gently  时间: 2007-11-03 16:08:00
yes
昵称: moazhen  时间: 2007-11-03 16:31:00
昵称: Vicke  时间: 2007-11-03 18:07:00
是不是真的呀.
昵称: chenpeng8596  时间: 2007-11-03 18:09:00
再试
昵称: zhaofei299  时间: 2007-11-03 18:27:00
好神奇啊
昵称: kuraki凌  时间: 2007-11-03 18:54:00
昵称: luzhou  时间: 2007-11-03 20:16:00
啊,怎么可能啊~~~~自己研究研究~~~



[ 本帖最后由 飞翔de希望 于 2007-11-3 22:02 编辑 ]
昵称: 飞翔de希望  时间: 2007-11-03 21:50:00
考虑了一下,可能是这样的原理:

有人请求时,用fopen打开这个帖子,用正则匹配作者,如果第一页满了,找第二页,以此类推。

然后,用GD库组成图片。
昵称: 飞翔de希望  时间: 2007-11-03 21:57:00
看看再说。
昵称: yccpiao  时间: 2007-11-03 22:40:00
kankan
昵称: zhuguang  时间: 2007-11-03 23:09:00
ssssssssssssssssssssssssss
昵称: zhuguang  时间: 2007-11-03 23:10:00
试试
昵称: louwei  时间: 2007-11-04 00:37:00
回复看看。。
昵称: ttccoo  时间: 2007-11-04 04:15:00
热帖啊,呵呵。。。
昵称: luzhou  时间: 2007-11-04 08:22:00
呵呵

试试
昵称: jayeeliu  时间: 2007-11-04 19:25:00
什么东西啊?
昵称: louis75168611  时间: 2007-11-06 12:34:00
...........
昵称: liuzhu417  时间: 2007-12-14 01:20:00
???看看
昵称: liuzhu417  时间: 2007-12-14 01:23:00
是 是
昵称: 嗖嗖嗖  时间: 2010-09-24 20:13:56