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 相关文章推荐
动态网站web开发 PHP、ASP还是ASP.NET
Oct 09 PHP
php mssql 日期出现中文字符的解决方法
Mar 10 PHP
黑夜路人出的几道php笔试题
Aug 04 PHP
Ajax+PHP 边学边练之四 表单
Nov 27 PHP
ThinkPHP CURD方法之order方法详解
Jun 18 PHP
ThinkPHP提示错误Fatal error: Allowed memory size的解决方法
Feb 12 PHP
PHP中把对象数组转换成普通数组的方法
Jul 10 PHP
yii2.0实现验证用户名与邮箱功能
Dec 22 PHP
分享php多功能图片处理类
May 15 PHP
详解PHP文件的自动加载(autoloading)
Feb 04 PHP
实例讲解PHP页面静态化
Feb 05 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
Jun 13 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
php5中类的学习
2008/03/28 PHP
PHP7 mongoDB扩展使用的方法分享
2019/05/02 PHP
Javascript中Array用法实例分析
2015/06/13 Javascript
js中class的点击事件没有效果的解决方法
2016/10/13 Javascript
利用JS实现一个同Excel表现的智能填充算法
2018/08/13 Javascript
Vue.js中 v-model 指令的修饰符详解
2018/12/03 Javascript
详解微信小程序网络请求接口封装实例
2019/05/02 Javascript
thinkjs微信中控之微信鉴权登陆的实现代码
2019/08/08 Javascript
微信小程序页面滚动到指定位置代码实例
2019/09/07 Javascript
微信小程序转化为uni-app项目的方法示例
2020/05/22 Javascript
js实现贪吃蛇小游戏(加墙)
2020/07/31 Javascript
重命名批处理python脚本
2013/04/05 Python
python网络爬虫之如何伪装逃过反爬虫程序的方法
2017/11/23 Python
Python实现矩阵相乘的三种方法小结
2018/07/26 Python
用Python和WordCloud绘制词云的实现方法(内附让字体清晰的秘笈)
2019/01/08 Python
Python实现KNN(K-近邻)算法的示例代码
2019/03/05 Python
Python Process多进程实现过程
2019/10/22 Python
Python pandas自定义函数的使用方法示例
2019/11/20 Python
通过 Python 和 OpenCV 实现目标数量监控
2020/01/05 Python
快速查找Python安装路径方法
2020/02/06 Python
Python unittest装饰器实现原理及代码
2020/09/08 Python
python pip如何手动安装二进制包
2020/09/30 Python
Python 删除List元素的三种方法remove、pop、del
2020/11/16 Python
ziaja齐叶雅官方海外旗舰店:来自波兰的天然护肤品牌
2017/01/02 全球购物
印度尼西亚电子产品购物网站:Kliknklik
2018/06/05 全球购物
C++:memset ,memcpy和strcpy的根本区别
2013/04/27 面试题
商务英语本科生的自我评价分享
2013/11/15 职场文书
工程业务员岗位职责
2013/12/31 职场文书
敬老院活动总结
2014/04/28 职场文书
市级优秀班主任事迹材料
2014/05/13 职场文书
求职信范文大全
2014/05/26 职场文书
个人租房协议书(范本)
2014/10/14 职场文书
学习心理学的体会
2014/11/07 职场文书
2015年护士工作总结范文
2015/03/31 职场文书
人民调解协议书
2016/03/21 职场文书
Java SSH 秘钥连接mysql数据库的方法
2021/06/28 Java/Android