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 相关文章推荐
基于mysql的论坛(2)
Oct 09 PHP
PHP函数常用用法小结
Feb 08 PHP
PHP中获取内网用户MAC地址(WINDOWS/linux)的实现代码
Aug 11 PHP
深入PHP内存相关的功能特性详解
Jun 08 PHP
Destoon模板制作简明教程
Jun 20 PHP
php中unserialize返回false的解决方法
Sep 22 PHP
分享10段PHP常用代码
Nov 11 PHP
如何在旧的PHP系统中使用PHP 5.3之后的库
Dec 02 PHP
PHP设计模式之工厂模式与单例模式
Sep 28 PHP
php实时倒计时功能实现方法详解
Feb 27 PHP
PHP执行普通shell命令流程解析
Aug 24 PHP
php框架知识点的整理和补充
Mar 01 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制作的意见反馈表源码
2007/03/11 PHP
php 正则 过滤html 的超链接
2009/06/02 PHP
浅析PHP中的UNICODE 编码与解码
2013/06/29 PHP
xss文件页面内容读取(解决)
2010/11/28 Javascript
js编写三级联动简单案例
2016/12/21 Javascript
JS正则表达式验证中文字符
2017/05/08 Javascript
Bootstrap fileinput文件上传预览插件使用详解
2017/05/16 Javascript
vue实现验证码输入框组件
2017/12/14 Javascript
Vue中父子组件通讯之todolist组件功能开发
2018/05/21 Javascript
在Create React App中使用CSS Modules的方法示例
2019/01/15 Javascript
写一个Vue Popup组件
2019/02/25 Javascript
Vue父子传递实例讲解
2020/02/14 Javascript
Vue(定时器)解决mounted不能获取到data中的数据问题
2020/07/30 Javascript
[51:17]完美世界DOTA2联赛循环赛Inki vs DeMonsTer 第二场 10月30日
2020/10/31 DOTA
python实现电子词典
2020/04/23 Python
python回溯法实现数组全排列输出实例分析
2015/03/17 Python
九步学会Python装饰器
2015/05/09 Python
Python中的descriptor描述器简明使用指南
2016/06/02 Python
spark dataframe 将一列展开,把该列所有值都变成新列的方法
2019/01/29 Python
python 判断文件还是文件夹的简单实例
2019/06/10 Python
Python实现12306火车票抢票系统
2019/07/04 Python
Python查找不限层级Json数据中某个key或者value的路径方式
2020/02/27 Python
django rest framework 过滤时间操作
2020/07/12 Python
Python爬虫爬取微信朋友圈
2020/08/06 Python
如何用css3实现switch组件开关的方法
2018/02/09 HTML / CSS
美国婴儿和儿童家具网上商店:ABaby.com
2018/07/02 全球购物
俄罗斯马克西多姆家居用品网上商店:Максидом
2020/02/06 全球购物
什么是makefile? 如何编写makefile?
2013/01/02 面试题
毕业生的自我鉴定该怎么写
2013/12/02 职场文书
应届生简历中的自我评价
2014/01/13 职场文书
爱国口号
2014/06/19 职场文书
授权委托书(公民个人适用)
2014/09/19 职场文书
国际贸易实训总结
2015/08/03 职场文书
2016入党培训心得体会范文
2016/01/08 职场文书
DIV CSS实现网页背景半透明效果
2021/12/06 HTML / CSS
SQL Server中锁的用法
2022/05/20 SQL Server