楼主我刚写了一个
把一个真彩图片转换成ascii图
转换算法
$t=($r*3+$g*6+$b)/10;
...........................+@BBBBB@BBBAA@9*9*,........................
.........................,9@AABB@@@B@B@@BA*+*9*,......................
........................+@99@AB@BBBBBB@@@BA9++*9;.....................
.......................*9*+*@B@@BBAAAB@@@BBA@*++9+....................
......................*9+++9ABBBBBA@ABB@@BAA@**+;**...................
.....................*9++++9@9A@@@BAABB@@BBA@*+++;*+..................
....................+@*+++*+*ABAB@BBBB@@@@BA@9++++;*;.................
....................@9*+++++@A9A@B@@@@@@@@BB@9*+++++9,................
...................*@**++++99*@BBB@@@@@BBBBBA***+++++*................
..................,A@**+++**+*@@ABB@@@BBBABBA@+++++++*+...............
..................*A@9*+**+++*99BBBBBBBBAA@A@9*+++++++9,..............
..................@A@9*+**+++**@AABBABBBBAA999*+++++++**..............
.................+AA@9***+++++*@9@B@@AAABAA@99*++++++*+9,.............
.................9A@@9***+++++9*9@@**9@AABA@@*9*++++*++*+.............
.................AAA@99**+*++***@@*;;+*@9ABA@9**+++*****9.............
................;BAA@9@****+***9@9;,,,;*99BBAA9++;+*****9;............
................*BAA@@9*****9*99@*,,,,,;9*9BBAA++++9****9*............
................@BBA@@9*******999+,,,...;@+@BBB@+*+*9****9............
................ABAA@@********99*,,,.....+9;ABBB*+**@**9*@,...........
...............;BBBA@9*9******9*+,,.......++*BBBA+9+@9+*9@+...........
...............+BBBAA999****99**;,,.....,,.++9BBB***9@**99*...........
...............*@BAA@999**+999++,,,.....,,,,++@B@A+99@**999...........
...............9@BAA@99****9@99*;,......,,,,,+*ABB**9@9*999...........
...............@@BAAA9***+*@A@@AAA9;.....,,,,,+9A@@*9@9*99@,..........
...............A@BBBA9**+*9A++,;+9ABA+........,9A@B*9@@*99@,..........
..............,B@BBBA***+*@*+9@AA@9*AB*...,.,9ABABB99@@9@9@;..........
..............,B@BBB@9*+*9@+@@@@@@B@+++,,,,,9BAAABB@*@@9@@@;..........
..............;B@BBA9@***A*;+AAB@9,*+;;,,.,+*9B@@@@A*@A9@@@+..........
..............;@@BB@@@**9A+,,*@AB;.,;,,,.,;;+A@@9+@B*@A9@@@+..........
..............+@@BA@@9*9@@;,.;*9+,,,..,,.,;,;9AB;,BB9@B9A@@+..........
..............+@@BA@@9*9A9,,..,;;;,,..,,.,;,.,*+,*AB99B9A@A+..........
..............+@@BAAA*9@@+,,.........,,,,,;,.,,;+9@B99B@A@A+..........
..............*@@BAA@9999*,,,......,,,,,,,;,...,,,*B@*B@A@A+..........
..............*@@BAA@9@99+,,,.......,,,,,,;,,.....;BA*B@A@A;..........
..............*@@BBB@@@*9+;,,,.......,,,,,;,....,,;BA*BAA@A;..........
..............*@@BAA@@9*9+;,,,,......,,,.,;,....,,;BA*AAA@A,..........
..............*@@BAB@@9*@+;,,,,.....,,,,..;,...,,,+BA*AAA@A,..........
..............+@@BBB@@*9@;;;,,,,.....;++,;+,..,,,;*@A*ABAA@...........
..............+@@BBBA@*9@;;,,,,,,....,++**+,.,,,,;9@A*ABAA@...........
..............;@@BBAA@*@A+;,,,,,,......,;,,...,,,+A@A*ABBA9...........
..............;@@BBBA@*@@+,,,,,,..............,,;*@@A9ABAB*...........
..............,@@BBBA@*@@9;,,,,,..,;,,;,,,,,,,,,;@@@@9ABAB+...........
...............B@BBBB@*A@B+,,,,,,.,+++++**++,,,;*B@@@9ABAB;...........
...............A@BBBBA*ABA@;;,,,,...,,,,,;;,,,,;@@@@@@BBAB............
...............A@BBBBA*AB@A9;,,,,,,,,,;;;;,.,,;9@@@B@@BBB@............
...............9@@BBBA9AA9*@*,,,,,..,,;;;,,,,,+B@@@B@@BBB9............
...............*@@@BBA9A@*++@*,,,,........,,,;A@@@@B@@@BB+............
...............;@@@BBA@B@*+;;@*,,,,.......,,;A@@@@@A@A@BA,............
................B@@BBB@B@*+;;;99;,,,.....,,;A@@@@@@A@ABB@.............
................@@@@BA@B9++;;,,*@*,,.....,;A@@@@@@BA@A@B*.............
................+@@@BBAB@++;;,,,+9@*;,,,;*B@@@@@@@BA@B@A+.............
.................A@@BBABB*+;,,,,,,*@@@@@AAB@@@@@@@BA@B@9,.............
.................9@@@BAB@A+;,,..,,,,;+*999B@@@@@@@BBA@A+..............
................+B@@@BBB@@@+,,,...,,,,,;+*B@@@@@@@BBA@@;..............
.............;*ABA@@@BBB@@@B*;....,.,,,;;*B@@@@@@@BBAB*,..............
..........;9@AAA9*@@@BBB@@@@@A*;......,,,*B@@@@@@@@BBA;...............
.....,;*@ABA9****+*A@@BB@@@@@BA99*+,,.,,,9@@@@@@@@@AB9,...............
.;+9AABA@9*++++++++*B@@@@@@B@@B@**999999ABB@@@@@@@@AB+................
AAAA@99**+*+++++++++@@@@@@@@B@@B@**@AAB@@@@@@@@@@@@B@,................
***********+++++++++*B@@@@@@@AB99@AB@@@@@@B@@@@@@@BB+.................
++;++*****+++++++++++A@@@@@@@B@B*,++9@@A@@+*B@@@@@@B;.................
BA9+;++**++++++++++++9@@@@@@@@BA@@,......;;+B@@B@B@BB+................
@@@A*;+++++++++++++++*B@@@@@@@@A@@B+....,+++A@@A@@@BAB9,..............
A@@B@@;;++++++++++++++A@@@@@@@@@**B@@,..,;++9@@@B@AAA@AA*.............
99*9@@@+;++++++++++++;9@@@@@@@@A@AA@@A+,,;;;9@@AA@@@@999A@+...........
++***@@@++++++++++++++*B@@@@@@@BB@@@@@@*,,,,*@@BA@B999***9A@+.........
+++***9B@;+++++++++++++A@@@@@@@A@9@@@@@@+,,,*@@@@B@@*******9@@+.......
++++***9B@;+++++++++++;@@@@@@B@**++*A@@@B,,,9@@@AB@B*******++*@9+,....
++++****@B9;+++++++++++9@@@@A*+++++++@B@@*,,@@@A9@@@@+*+******+*9@9;..
+++++*+**A@*;+++++++++++B@@A*++++++*++*A@B@9B@@99@A@@*++++++++++++9@9;

解决方案 »

  1.   

    $imgHeight=70;//图片高
    $imgWidth=70;//图片宽
    $im =imagecreatefrompng("7.png");for($i=0;$i<$imgHeight;$i++)
    for($j=0;$j<$imgWidth;$j++)
    {
        $rgb = ImageColorAt($im, $j,$i);
        $r=($rgb>>16);        //取得红色分量
        $g=($rgb&0x00ff00)>>8; //取得绿色分量
        $b=$rgb&0x0000ff;      //取得蓝色分量
    $t=($r*3+$g*6+$b)/10;//转成灰度
    $t=floor($t); 
    if($t<25)                 //输出ascii
    {
      echo "@";
    }else if($t<50)
    {
      echo "B";
    }else if($t<75)
    {
      echo "A";
    }else if($t<100)
    {
      echo "@";
    }else if($t<125)
    {
      echo "9";
    }else if($t<150)
    {
      echo "*";
    }else if($t<175)
    {
      echo "+";
    }else if($t<200)
    {
      echo ";";
    }else if($t<=225)
    {
      echo ",";
    }else{
      echo ".";
    }
    if($j>$imgWidth-2)       //跟着图片换行
    echo "\r\n";         
    }
      

  2.   

    $rgb = ImageColorAt($im, $j,$i);
    $r=($rgb>>16);         //取得红色分量
    $g=($rgb&0x00ff00)>>8; //取得绿色分量
    $b=$rgb&0x0000ff;      //取得蓝色分量
    $t=($r*3+$g*6+$b)/10;  //转成灰度
    这是转换灰度算法。当然你也可以不输出ascii
    把这个灰度写回图片。就变成灰度级图像了。
    现在我用的是75*75图片转成ascii
    ...........................................................................
    ...........................................................................
    .....................................;+**99**++,...........................
    .................................,*@ABB@ABAABABBA@+,.......................
    ...............................;@B@A@9999*****9@AB@@@;.....................
    .............................,9@@AAA@@AAAAA@9****9@B@@@;...................
    ............................;B@B@@@@@@@@@@AAAAA@@*9ABB@@*..................
    ...........................*BA@9@9@@99@999@@@@@AAA99@AB@@@.................
    ..........................@@@@ABBBBBBBAAA@999@@@@A@@99@B@@A,...............
    ........................,B@BB@@@@@@@@@@@@@BBA@@9@@@AA@@AB@@A,..............
    .......................+AA@9@AAAB@@@@@@@@@@@@@BA@9@@@AAAB@@@A..............
    .....................+99*+**9*9ABB@ABBAB@BB@@@@@@A@@@@ABB@@@@A.............
    ...................+99*+++***@99BA*9@9*9@9@AB@B@@@B@@@@AAB@@@@9............
    ..................@A*+*+**++@9*9@9*999++***99@AA@@@@@@@@BBB@@@@;...........
    .................@B@+**+**+@@*@@B9**9*++****+99*@B@@@@@@ABB@@@@A...........
    ................9BB@*@*99*@A*9@@A@*9@**+******@**9A@@@@@@BBB@@@@;..........
    ...............;9BB@A@9@*9BA9@@99A9@@9*******+9***9AB@B@@@@AB@@@9..........
    ...............+9@BAA@@@@BB@@@9**@@@@@**9**9*+99***@BA@A@@BBA@@@B..........
    ..............,,A@@BB@BABBB@@9*;+9@AAA9999+@@+9@9999ABBB@@ABAB@@@+.........
    ..............,;A@@@@ABB@BA999+,;9AAAA99@9*9@**@9999ABABA@@BAA@@@9.........
    ..............,+@B@@@B@@@A@***;;,+@AAA@AAA9@A*9@9@@@@BBBA@+AB@B@@A.........
    ..............,*9B@@@@@@B@9**+;,,;9@@AAABA@@B@9@@AA@ABBBBA,*@9@@@B.........
    ...............+*B@@@@@@A*9*++;,,,*@9AABABA@B@9A@BBAABBB@B,,@A@@@@;........
    ...............;*B@@@@@B@*+;;+;,,,;@9@A@BBBAA@@BABBBBAB@@A,.++9B@@+........
    ................*B@@@@@@BB*,;;+,,,,9@9A@ABBBA@ABABBBBAB@;,,,,;@AB@*........
    ................;A@@@@@B@@A*,,;,.,,+9*@B@BBBA@BBA@@BBABA+;+;;*@AB@@........
    .................*B@@@@*,,;9*,,,,..,***B@ABBB@BBB@@@@AAB@9,.;+@AB@@........
    .................,@BABB+;;,,++,,,,.,+++@9@@ABABBB@@@BAAA@A.,;.9AA@A........
    ..................*B@BB*ABA*,;,,,,,,+99A@@AA9AAAB@BBBBAB@A.+9.+AA@A........
    ..................+A@@A@@@@@@;;,,,;*@@@@@@ABAAA9A@AABBBB@@,A@B*@A@B........
    ..................,;*@@9@@B+@9;,,,,;;;;;;;;+*9A@@A@@AAB@@@@@@@@@B@B,.......
    ....................+@9;9@@.,9;,,,,;;;++;;,,,,+****9@AB@@@A9@@@9B@@,.......
    ....................;@9;;9+..;,,..,;+*AA@*;,,,,;;;++9AB@@9,.;@@9AB@,.......
    ....................+@*,+;,;,.,,.,,,;@@ABBA*;,,,,;;;*A@B9,,++*99BB@,.......
    ....................*@*,,;,,,.,,.,,,;;;,;*9@9;,,,,;;+AB*;,+;,*9*BBB,.......
    ....................9@+......,,......,;;,,,;+,,,,,,;+@A;,+*;;*9*BBB,.......
    ....................@@+.....,,,.......,,,,,,,,,,,,,;+@*,;*;;,**9BBB........
    ....................A@+.....,,,.,,......,,...,,,,,,;+9;+9;,,;A*9BBB........
    ...................,B@*.....,,..,,,...........,,,,,;+*,;,.,,*B*9BBB........
    ...................;@@*.,..,,,..,,,,..........,,,,;;++,;..;;BB*@@@B........
    ...................+@@9,,,,,;,.,,,,,,.........,,,,;;+;;,,;;A@@9A@@A........
    ...................9@@A,,,,,;;;+;,,,,......,,,,,,;;;++,,;;@@@@*A@@A........
    ...................A@@@;,,,,,,+*+;,,,,..,,,,,,,,;;;++;,,;A@@@@9B@@@........
    ...................B@@B*,,,,,,,,,,,,,,,,,,,,,,,,;;;+9,;9B@@@B9@B@@@........
    ..................;@@B*@,,,;;;,.....,,,,,,,,,,,,;;;*A@9@@@@@B9@@B@@........
    ,.................9B@B,@+,,@*++++;;,..,,,,,,,,,;;;+@B@+@@@@@A@A@@@9........
    @*................@A@@@A*,.+9..,,;+**,.,,,,,,,,;;+*@BB@@@@@@A@@@@@9........
    @AA*,............;*A@@@@@,.,A@+...,;B@,.,,,,,,;;;*99@9;B@@@@AA@@@@9........
    @@@AA*;...........,A@@@@B;..9B@AAABBA;.,,,,,,,;;;99A@;.@@@@B@B@@@@*........
    @@@@@AA9,..........;;@B@@9..+*;*9*9@+..,,,,,,,;;99+B@;.9@@@AA@@@@@;........
    @@@@@@@AA*............;B@B;.;*,,;;+;..,,,,,,;;;99+*BB,.*@@@AB@@@@B.........
    @@@@@@@@@A9,...........,A@*,,+*+++;,.,,,,,,,;;*9++9@@*,A@@@B@@@@@@.........
    @@@@@@@@@@AA;............*@;,;;;;;,,,,,,,,,;;99+++@@@@@@@@@B@@@@B+.........
    @@@@@@@@@@@@A+............+*.;;;;;,,,,,,,;,;99+;;+A@@@@@@@@@@@B@*..........
    @@@@@@@@@@@@@A*,.,;;,......9;,;;;,,,,,,,;,+9*;;;+*A@@@@@@@@@AA@@,..........
    @@@@@@@@@@@@@@AAA*+*@@;..,+A9.,,,,,,,,,,;*9+;;;;+*B@@@BBBB@@9*+,...........
    @@@@@@@@@@@@@@@AA@+..9B9+**+@*....,,,,+*9+;;,,,;;*AA@9+;**,,+..............
    @@@@@@@@@@@@@@@@@@[email protected]*..,;@9;;;;++*9+;,,,,,,;;9+........................
    @@@@@@@@@@@@@@@@@@@BA..@A;...,@B@@99*+,,,,,,,,,;;99........................
    @@@@@@@@@@@@@@@@@@@@B9.,@9,...,@A*+;,,,,,,,,,,,;;*@*;......................
    @@@@@@@@@@@@@@@@@@@@@B;.*A+....,@9;,,,,,,,,,,,,;;+@+++.....................
    @@@@@@@@@@@@@@@@@@@@@AA.,@@,....;A*,,,,,,,,,,,,;;;@@+;+....................
    @@@@@@@@@@@@@@@@@@@@@@B;.+A+...,.+A;,,,,,,,,,,;;;,+B@;;+...................
    @@@@@@@@@@@@@@@@@@@@@@A@.,@@,.....@9,,,,,,,,,,,;;,,*@A.++..................
    @@@@@@@@@@@@@@@@@@@@@@@B;.*A+.....,A+,,,,,,,,,,;;;,;*B+.9;.................
    @@@@@@@@@@@@@@@@@@@@@@@A@..@@,.....+A;;;,,,,,,,,;,,;;9@.,9+................
    @@@@@@@@@@@@@@@@@@@@@@@@B;.+A+.,....@*;;;;,,,,,,,,,,;;9;.,9*,..............
    @@@@@@@@@@@@@@@@@@@@@@@@[email protected]@,.,...;@;,,;;;,,,,,;;,;;*+..,+9+.............
    @@@@@@@@@@@@@@@@@@@@@@@@@B+.;A9......9*,,,;;,,,,;++;;;*+....;*9;...........
    @@@@@@@@@@@@@@@@@@@@@@@@@AA..*A+.,,..,@;,,;;+;;,;;++++9*...,,,;**;.........
    @@@@@@@@@@@@@@@@@@@@@@@@@@A*.,@@,..,..*9,,,;+;;,,,;;++*9........;**,.......
    @@@@@@@@@@@@@@@@@@@@@@@@@@@B;.;A9..,..,@+,,;;;;;,,,,,,+9........,,;9*......
    @@@@@@@@@@@@@@@@@@@@@@@@@@@AA..+A9..,..+9,,,,;;;,,,,;;+9..........,9A9;....
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@B@..*@*..,..9+,,,,,;;,,,;;+9..........*A+,@;...
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@B+..9A*....;@,,,,;;;;;,;,+*.........;@9,.AA;..
      

  3.   

    在页面上直接用 CSS 就可以办到啦
      

  4.   

    imagecopymergegray
    (PHP 4 >= 4.0.6)imagecopymergegray -- 用灰度拷贝并合并图像的一部分
    说明
    int imagecopymergegray ( 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)
    将 src_im 图像中坐标从 src_x,src_y 开始,宽度为 src_w,高度为 src_h 的一部分拷贝到 dst_im 图像中坐标为 dst_x 和 dst_y 的位置上。两图像将根据 pct 来决定合并程度,其值范围从 0 到 100。当 pct = 0 时,实际上什么也没做,当为 100 时本函数和 imagecopy() 完全一样。 本函数和 imagecopymerge() 完全一样只除了合并时通过在拷贝操作前将目标像素转换为灰度级来保留了原色度。 注: 本函数添加于 PHP 4.0.6。 
    --------------------------------------------------
    PHP手册
      

  5.   

    偶像啊 uuq(杜牧) faisun(暖阳) :在页面上直接用 CSS 就可以办到啦
    因为我的图像是php生成出来在flash调用的所以css扯不到zhutimy(吃素的菜鸟) :请看了我的题目再回答好吗?不要随便拷贝一段进来,能告诉我怎么设参数可以变成灰度?俺从0-100都设过了,没看它变灰过,一片漆黑倒是有
      

  6.   

    不过 uuq(杜牧) 老兄这样执行效率太低了