首页 > 开发 > PHP > 正文

PHP 实现的将图片转换为TXT

2024-05-04 23:39:41
字体:
来源:转载
供稿:网友

今天在用PHP写一个小插件的时候,遇到了一个小小的问题,就是需要将图片转换为TXT文本的内容。简单的说就是将图片转换为ASCII码,下面把代码分享给大家。

PHP 实现的将图片转换为TXT

 

 
  1. <?php 
  2. /* 
  3. 2015年10月19日10:24:59 
  4.  
  5. */ 
  6. // 打开一幅图像 
  7.  
  8. $file_name='d:/ascii_dora.png'
  9. $chars = "$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft//|()1{}[]?-_+~<>i!lI;:,/"^`'. "
  10. function getimgchars($color_tran,$chars){ 
  11. $length = strlen($chars); 
  12. $alpha=$color_tran['alpha']; 
  13. $r=$color_tran['red']; 
  14. $g=$color_tran['green']; 
  15. $b=$color_tran['blue']; 
  16. $gray = intval(0.2126 * $r + 0.7152 * $g + 0.0722 * $b); 
  17.  
  18. if($gray==0){ 
  19. return '.'
  20.  
  21. if($gray<196){ 
  22. $unit = (256.0 + 1)/$length; 
  23. return $chars[intval($gray/$unit)]; 
  24.  
  25. return " "
  26.  
  27.  
  28. function color_img($color_tran,$chars){ 
  29. $length = strlen($chars); 
  30. $alpha=$color_tran['alpha']; 
  31.  
  32. $r=$color_tran['red']; 
  33. $g=$color_tran['green']; 
  34. $b=$color_tran['blue']; 
  35. $gray = intval(0.2126 * $r + 0.7152 * $g + 0.0722 * $b); 
  36. $rand=rand (0, $length-1); 
  37. $color="rgb(".$r.",".$g.",".$b.")"
  38. $char=$chars[$rand]; 
  39. return '<span style="color:'.$color.'" >'.$char."</span>";; 
  40.  
  41.  
  42. function resize_img($file_name,$chars,$flage=true){ 
  43. //header('Content-Type: image/jpeg'); 
  44. list($width, $height,$type) = getimagesize($file_name); 
  45. $fun='imagecreatefrom' . image_type_to_extension($type, false); 
  46. if($type==3){ 
  47. $flage=false
  48. $fun($file_name); 
  49. $new_height =100; 
  50. $percent=$height/$new_height; 
  51. $new_width=$width/$percent; 
  52. $image_p = imagecreatetruecolor($new_width, $new_height); 
  53. $image = $fun($file_name); 
  54. imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); 
  55. if($flage){ 
  56. return $image_p; 
  57. }else
  58. return $image; 
  59.  
  60.  
  61. $im=resize_img($file_name,$chars); 
  62.  
  63. $width=imagesx($im); 
  64. $height=imagesy($im); 
  65.  
  66. $back_text=""
  67.  
  68. for($i=1;$i<=$height;$i++){ 
  69. for($j=1;$j<=$width;$j++){ 
  70. $color_index = imagecolorat($im, $j-1, $i-1); 
  71. $color_tran = imagecolorsforindex($im, $color_index); 
  72. $back_text.=color_img($color_tran,$chars,false); 
  73. $back_text.="<br/>"
  74.  
  75. echo "<pre>"
  76. echo $back_text; 
  77. echo "</pre>"
  78. //file_put_contents('1.txt',$back_text); 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表