PHP 实现的将图片转换为TXT
PHP实现的将图片转换为TXT
<?php /* 2015年10月19日10:24:59 */ //打开一幅图像 $file_name='d:\ascii_dora.png'; $chars="$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'."; functiongetimgchars($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""; } functioncolor_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'<spanstyle="color:'.$color.'">'.$char."</span>";; } functionresize_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);