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 相关文章推荐
session 的生命周期是多长
Oct 09 PHP
在线短消息收发的程序,不用数据库
Oct 09 PHP
php 函数使用方法与函数定义方法
May 09 PHP
PHP isset()与empty()的使用区别详解
Aug 29 PHP
php基础学习之变量的使用
Jun 09 PHP
php切割页面div内容的实现代码分享
Jul 31 PHP
PHP闭包(Closure)使用详解
May 02 PHP
解析php框架codeigniter中如何使用框架的session
Jun 24 PHP
php下拉选项的批量操作的实现代码
Oct 14 PHP
php图片上传类 附调用方法
May 15 PHP
php实现的中秋博饼游戏之绘制骰子图案功能示例
Nov 06 PHP
laravel通过a标签从视图向控制器实现传值
Oct 15 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中使用Oracle数据库(2)
2006/10/09 PHP
php源码分析之DZX1.5加密解密函数authcode用法
2015/06/17 PHP
php去掉文件前几行的方法
2015/07/29 PHP
PHP的RSA加密解密方法以及开发接口使用
2018/02/11 PHP
php实现断点续传大文件示例代码
2020/06/19 PHP
javascript中的parseInt和parseFloat区别
2013/07/12 Javascript
node.js中的events.emitter.removeAllListeners方法使用说明
2014/12/10 Javascript
纯JavaScript实现的兼容各浏览器的添加和移除事件封装
2015/03/28 Javascript
如何使用HTML5地理位置定位功能
2015/04/27 Javascript
动态生成的DOM不会触发onclick事件的原因及解决方法
2016/08/06 Javascript
轻松实现js弹框显示选项
2016/09/13 Javascript
聊一聊JS中的prototype
2016/09/29 Javascript
javascript简单进制转换实现方法
2016/11/24 Javascript
Vue路由跳转问题记录详解
2017/06/15 Javascript
vue使用中的内存泄漏【推荐】
2018/07/10 Javascript
JavaScript实现简单轮播图效果
2018/12/01 Javascript
Vue源码解析之数据响应系统的使用
2019/04/24 Javascript
JS原型和原型链原理与用法实例详解
2020/02/05 Javascript
小程序卡片切换效果组件wxCardSwiper的实现
2020/02/13 Javascript
js实现文字头像的生成代码
2020/03/07 Javascript
JS实现可控制的进度条
2020/03/25 Javascript
python 不同方式读取文件速度不同的实例
2018/11/09 Python
python对于requests的封装方法详解
2019/01/03 Python
python能做哪方面的工作
2020/06/15 Python
python中字符串的编码与解码详析
2020/12/03 Python
美国知名奢侈美容品牌零售商:Cos Bar
2017/04/21 全球购物
Book Depository澳大利亚:世界领先的专业在线书店之一
2018/12/27 全球购物
英国景点门票网站:attractiontix
2019/08/27 全球购物
党员群众路线剖析材料
2014/10/08 职场文书
2015年五四青年节演讲稿
2015/03/18 职场文书
学校推普周活动总结
2015/05/07 职场文书
SQLServer2019 数据库的基本使用之图形化界面操作的实现
2021/04/08 SQL Server
python引入其他文件夹下的py文件具体方法
2021/05/23 Python
教你使用Python pypinyin库实现汉字转拼音
2021/05/27 Python
opencv检测动态物体的实现
2021/07/21 Python
解决MySQL添加新用户-ERROR 1045 (28000)的问题
2022/03/03 MySQL