文档章节

PHP IMG2TXT

乱世刀客
 乱世刀客
发布于 2015/10/19 10:30
字数 249
阅读 65
收藏 1
<?php
/*
2015年10月19日10:24:59
by zxlong
*/
// 打开一幅图像

$file_name='d:\ascii_dora.png';
$chars = "$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ";
function getimgchars($color_tran,$chars){
    $length = strlen($chars);
    $alpha=$color_tran['alpha'];
    $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 " ";

}

function color_img($color_tran,$chars){
	$length = strlen($chars);
    $alpha=$color_tran['alpha'];
	
    $r=$color_tran['red'];
    $g=$color_tran['green'];
    $b=$color_tran['blue'];
	$gray = intval(0.2126 * $r + 0.7152 * $g + 0.0722 * $b);
	$rand=rand (0,  $length-1);
	$color="rgb(".$r.",".$g.",".$b.")";
	$char=$chars[$rand];
   return '<span style="color:'.$color.'" >'.$char."</span>";;
	
}



function resize_img($file_name,$chars,$flage=true){
	//header('Content-Type: image/jpeg');
	list($width, $height,$type) = getimagesize($file_name);
	$fun='imagecreatefrom' . image_type_to_extension($type, false);
	if($type==3){
		$flage=false;
	}
	$fun($file_name);
	$new_height =100;
	$percent=$height/$new_height;
	$new_width=$width/$percent;
	$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,$chars);

$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.=color_img($color_tran,$chars,false);
    }
    $back_text.="<br/>";
}

echo "<pre>";
echo $back_text;
echo "</pre>";
//file_put_contents('1.txt',$back_text);


© 著作权归作者所有

共有 人打赏支持
乱世刀客

乱世刀客

粉丝 3
博文 7
码字总数 1550
作品 0
济南
程序员
私信 提问
图像学习-验证码识别

这是去年博主心血来潮实现的一个小模型,现在把它总结一下。由于楼主比较懒,网上许多方法都需要切割图片,但是楼主思索了一下感觉让模型有多个输出就可以了呀,没必要一定要切割的吧?切不好...

Slyne_D
2017/06/12
0
0
SQL注入点搜索关键字

注入点关键字 个人从网上和一些教程钟归纳了一些批量搜索注入点的关键字,分享给大家使用, 有些关键字还可以扩展,寻找注入点靠的不是其他,就是自己的想象力!下面的关键字可以随意组合。 ...

元婴期
2017/03/15
0
0
osCommerce目录文件说明

例: lslist20135865 |-publichtml |-attached //附属文件夹 images |-download //下载文件夹 |-errpage //错误显示文件夹 400.html //请求出错 401.html //未授权:登录失败 403.html //禁止...

qq58ce5fb360ab6
2018/01/08
0
0
在CentOS/RHEL 6.5上使用YUM安装PHP5.4或PHP5.5

安装PHP5.4 rpm -Uvh http://repo.webtatic.com/yum/el6/latest.rpm yum install php54w php5.4于2012年5月8号发布,从php5.4.0开始php加入了一些新特色如: Traits支持 内置了一个简单的Web...

万里虎
2014/11/29
0
1
PHP扩展库的详细清单概览

PHP扩展库的说明和解释: phpbz2.dll bzip2 压缩函数库 无 phpcalendar.dll 历法转换函数库 自 PHP 4.0.3 起内置 phpcpdf.dll ClibPDF 函数库 无 phpcrack.dll 密码破解函数库 无 phpctype.d...

51213988
2014/06/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

乱入Linux界的我是如何学习的

欢迎来到建哥学Linux,咳!咳!咳!开个玩笑哈,我是一个IT男,IT界的入门选手,正在学习Linux。 在之前,一直想进军IT界,学习IT技术,但是苦于没有人指导,也不知道学什么,最开始我自己在...

linuxCool
44分钟前
1
0
携程Apollo统一配置中心的搭建和使用(java)

一.Apollo配置中心介绍 1、What is Apollo 1.1 Apollo简介 Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到...

morpheusWB
今天
1
0
远程获得的有趣的linux命令

使用这些工具从远程了解天气、阅读资料等。 我们即将结束为期 24 天的 Linux 命令行玩具日历。希望你有一直在看,如果没有,请回到开始,从头看过来。你会发现 Linux 终端有很多游戏、消遣和...

Linux就该这么学
今天
6
0
聊聊flink的AsyncWaitOperator

序 本文主要研究一下flink的AsyncWaitOperator AsyncWaitOperator flink-streaming-java_2.11-1.7.0-sources.jar!/org/apache/flink/streaming/api/operators/async/AsyncWaitOperator.java ......

go4it
今天
5
0
Java并发编程基础(四)

ThreadGroup 在主线程创建得线程,如果没有给他指定线程组,那么创建的线程,默认和主线程同一个线程组。线程组可以底下可以是线程,也可以实线程组。 构建线程组的方法: private ThreadGr...

chendom
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部