PHP好玩代碼註釋

  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. 效果圖如下:
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章