PHP 实现的将图片转换为TXT


Posted in PHP onOctober 21, 2015

PHP 实现的将图片转换为TXT

<?php
/*
2015年10月19日10:24:59

*/
// 打开一幅图像

$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);
PHP 相关文章推荐
用在PHP里的JS打印函数
Oct 09 PHP
一个PHP模板,主要想体现一下思路
Dec 25 PHP
win7+apache+php+mysql环境配置操作详解
Jun 10 PHP
测试PHP连接MYSQL成功与否的代码
Aug 16 PHP
php后门URL的防范
Nov 12 PHP
配置php.ini实现PHP文件上传功能
Nov 27 PHP
PHP弹出对话框技巧详细解读
Sep 26 PHP
php使用APC实现实时上传进度条功能
Oct 26 PHP
深入浅析yii2-gii自定义模板的方法
Apr 26 PHP
PHP fopen函数用法实例讲解
Feb 15 PHP
Laravel第三方包报class not found的解决方法
Oct 13 PHP
如何在Mac上通过docker配置PHP开发环境
May 29 PHP
PHP实现清除wordpress里恶意代码
Oct 21 #PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
Oct 20 #PHP
php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法
Oct 20 #PHP
PHP页面转UTF-8中文编码乱码的解决办法
Oct 20 #PHP
php限制文件下载速度的代码
Oct 20 #PHP
php获取远程文件大小
Oct 20 #PHP
php根据日期或时间戳获取星座信息和生肖等信息
Oct 20 #PHP
You might like
PHP面向对象编程快速入门
2006/12/14 PHP
php实现压缩多个CSS与JS文件的方法
2014/11/11 PHP
php is_executable判断给定文件名是否可执行实例
2016/09/26 PHP
javascript中验证大写字母、数字和中文
2014/01/15 Javascript
JavaScript通过join函数连接数组里所有元素的方法
2015/03/20 Javascript
简介JavaScript中substring()方法的使用
2015/06/06 Javascript
jquery实现通用的内容渐显Tab选项卡效果
2015/09/07 Javascript
JavaScript判断DIV内容是否为空的方法
2016/01/29 Javascript
js贪吃蛇游戏实现思路和源码
2016/04/14 Javascript
BootStrap无限级分类(无限极分类封装版)
2016/08/26 Javascript
JS失效 提示HTML1114: (UNICODE 字节顺序标记)的代码页 utf-8 覆盖(META 标记)的冲突的代码页 utf-8
2017/06/23 Javascript
layui(1.0.9)文件上传upload,前后端的实例代码
2019/09/26 Javascript
vue.config.js常用配置详解
2019/11/14 Javascript
Vue extend的基本用法(实例详解)
2019/12/09 Javascript
JS三级联动代码格式实例详解
2019/12/30 Javascript
Python的Flask框架中实现简单的登录功能的教程
2015/04/20 Python
浅谈Python中函数的参数传递
2016/06/21 Python
ubuntu系统下 python链接mysql数据库的方法
2017/01/09 Python
利用python模拟sql语句对员工表格进行增删改查
2017/07/05 Python
利用python获取当前日期前后N天或N月日期的方法示例
2017/07/30 Python
使用python对excle和json互相转换的示例
2018/10/23 Python
Pycharm 设置默认头的图文教程
2019/01/17 Python
一步步教你用python的scrapy编写一个爬虫
2019/04/17 Python
python画图的函数用法以及技巧
2019/06/28 Python
Django使用中间键实现csrf认证详解
2019/07/22 Python
在python下实现word2vec词向量训练与加载实例
2020/06/09 Python
详解如何解决使用JSON.stringify时遇到的循环引用问题
2021/03/23 Javascript
乡镇干部先进性教育活动个人整改措施
2014/09/16 职场文书
开展批评与自我批评发言稿
2014/10/16 职场文书
2014年煤矿工作总结
2014/11/24 职场文书
高中生个性发展自我评价
2015/03/09 职场文书
离婚答辩状怎么写
2015/05/22 职场文书
小学2016年“我们的节日·重阳节”活动总结
2016/04/01 职场文书
竞聘开场白方式有哪些?
2019/08/28 职场文书
Python预测分词的实现
2021/06/18 Python
Linux安装Docker详细教程
2022/07/07 Servers