1. 有时候我们查看一些网站的源代码的时候,总会发现一些调皮的程序员,不仅代码写的好,连注释都如此的吊炸天。。如下图:

在这里插入图片描述

  1. 如此好玩的东西,那就用世界上最好的语言PHP来实现一下,需要用到GD库,代码如下:
<?php

// 打开一幅图,黑白效果会比较好
$file_name = '1.jpg';
$chars = "$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ";

function getimgchars($color_tran, $chars)
{
    // 计算chars的长度
    $length = strlen($chars);

    // 计算灰度
    $r=$color_tran['red'];
    $g=$color_tran['green'];
    $b=$color_tran['blue'];
    $gray = intval(0.2126 * $r + 0.7152 * $g + 0.0722 * $b);

    if($gray==0){
        return '.';
    }

    if($gray<196){
        $unit = (256.0 + 1)/$length;
        return $chars[intval($gray/$unit)];
    }

    return " ";
}

// weight与width越大图像会越精细
function resize_img($file_name, $new_height = 100, $new_width = 100, $flage = true)
{
    list($width, $height, $type) = getimagesize($file_name);
    $fun = 'imagecreatefrom' . image_type_to_extension($type, false);
    if ($type == 3) {
        $flage = false;
    }
    $fun($file_name);
    // 新建一个图层
    $image_p = imagecreatetruecolor($new_width, $new_height);
    $image = $fun($file_name);
    // 将图像拷贝到图层图层
    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
    if ($flage) {
        return $image_p;
    } else {
        return $image;
    }
}

$im = resize_img($file_name);
 原图大小生成
//$im = imagecreatefromjpeg($file_name);

$width = imagesx($im);
$height = imagesy($im);

$back_text = "";

for ($i = 1; $i <= $height; $i++) {
    for ($j = 1; $j <= $width; $j++) {
        $color_index = imagecolorat($im, $j - 1, $i - 1);
        $color_tran = imagecolorsforindex($im, $color_index);
        $back_text .= getimgchars($color_tran, $chars);
    }
    $back_text .= PHP_EOL;
}

file_put_contents('img.txt',$back_text);

  1. 效果图如下:
    在这里插入图片描述
Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐