JPG & PNG to TEXT

Discussion in 'PHP' started by NOmeR1, 10 Jan 2007.

  1. NOmeR1

    NOmeR1 Everybody lies

    Joined:
    2 Jun 2006
    Messages:
    1,068
    Likes Received:
    783
    Reputations:
    213
    Вот нашёл у себя в свалке скриптов интересный скрипт :cool: Вообщем, из сабжа всё ясно!
    PHP:
    <?php 
    define 
    ('TITLE''Картинки и Джорж Буль'); 
    # http://www-gap.dcs.st-and.ac.uk/~history/Mathematicians/Boole.html 
    # http//www.boutell.com/gd/ 
    ?> 
    <b>Картинки, PHP, GD и Джорж Буль.</b> 
    <br /> 
    <u>Превращаем растровое изображение в нолики и единички.</u> 
    <!--2--><!-- preamble --> 
    <br /> 
    <br /> 
    <br /> 
    <?php 
    // created by Oleg Puzanov ([email protected]
    // special thanks to Andrei Pohilko ([email protected]

    if (isset ($_FILES['pic'])) 

       
    $file=$_FILES['pic']['tmp_name']; 
       if (
    strtolower (end (explode ('.'$_FILES['pic']['name']))) == 'jpg'$i     ImageCreateFromJpeg($file); 
       elseif (
    strtolower (end (explode ('.'$_FILES['pic']['name']))) == 'png'$i ImageCreateFromPNG($file); 
       else die (
    "Невозможно обработать изображение в формате GIF"); 
       
    $o ImageCreate(imagesx($i), imagesy($i)); 

       for (
    $n 0$n 256$n++)  
       { 
          
    imagecolorallocate($o$n$n$n); 
       } 

       
    imagecopy ($o$i0000imagesx ($i), imagesy ($i)); 

       
    $lim 256/2

       echo 
    '<pre style="font-size: 8px; letter-spacing: 0px; line-height: 80%;">'
        
       for (
    $y 0$y imagesy ($o); $y++) 
       { 
          for (
    $x 0$x imagesx ($o); $x++) 
          { 
             if ((
    imagecolorat($o$x$y) & 0xFF)>$lim) echo _; else echo 0
          }  
          echo 
    "\n"
       } 

       echo 
    '</pre>'

    else 

       
    ?> 
       <form enctype='multipart/form-data' method='POST'> 
       Картинки форматов JPG и PNG успешно превратятся в "двоичный" текст 
       <br /> 
       <br /> 
       Можно нарисовать чего-нибудь прикольное, "отдвоичить" и пихать как подпись к e-mail 
       <br /> 
       <br /> 
       Учтите, что чем больше картинка, тем дольше будете ждать. Оптимальный размер 100 на 100 пикселей 
       <br /> 
       <input type='file' name='pic'> 
       <br /> 
       <input type='submit' value=' Превратить! '> 
       </form> 
       <br /> 
       <br /> 
       Идея и разработка программы: Олег Пузанов<br /> 
       Отдельное спасибо Андрею Похилько 
       <? 

    ?> 
    Если у кого есть новее или лучше, то выкладываем здесь!
     
    #1 NOmeR1, 10 Jan 2007
    Last edited: 12 Jan 2007
    14 people like this.
  2. devil2007

    devil2007 Banned

    Joined:
    18 May 2006
    Messages:
    184
    Likes Received:
    73
    Reputations:
    -14
    Отлично +
     
  3. fucker"ok

    fucker"ok Elder - Старейшина

    Joined:
    21 Nov 2004
    Messages:
    580
    Likes Received:
    279
    Reputations:
    91
    Улыбнуло) Я нечто на паскале делал в детстве (правда из bmp)
     
  4. NOmeR1

    NOmeR1 Everybody lies

    Joined:
    2 Jun 2006
    Messages:
    1,068
    Likes Received:
    783
    Reputations:
    213
    Поправил скрипт, теперь он превращает картинку в нолики и символы "_". Смотрится лучше.
     
  5. blaga

    blaga Elder - Старейшина

    Joined:
    23 Mar 2006
    Messages:
    884
    Likes Received:
    273
    Reputations:
    106
    Раз так, то вот теперь с цветом, черно-зеленый. Правда вследствии таких изменений, выходной код вырос примерно в 20 раз(в весе)
    PHP:
    <?php
    Error_Reporting
    (7);
    define ('TITLE''Картинки и Джорж Буль');
    # http://www-gap.dcs.st-and.ac.uk/~history/Mathematicians/Boole.html
    # http//www.boutell.com/gd/
    ?>
    <b>Картинки, PHP, GD и Джорж Буль.</b>
    <br />
    <u>Превращаем растровое изображение в нолики и единички.</u>
    <!--2--><!-- preamble -->
    <br />
    <br />
    <br />
    <?php
    // created by Oleg Puzanov ([email protected])
    // special thanks to Andrei Pohilko ([email protected])

    if (isset ($_FILES['pic']))
    {
       
    $file=$_FILES['pic']['tmp_name'];
       if (
    strtolower (end (explode ('.'$_FILES['pic']['name']))) == 'jpg'$i     ImageCreateFromJpeg($file);
       elseif (
    strtolower (end (explode ('.'$_FILES['pic']['name']))) == 'png'$i ImageCreateFromPNG($file);
       else die (
    "Невозможно обработать изображение в формате GIF");
       
    $o ImageCreate(imagesx($i), imagesy($i));

       for (
    $n 0$n 256$n++)
       {
          
    imagecolorallocate($o$n$n$n);
       }

       
    imagecopy ($o$i0000imagesx ($i), imagesy ($i));

       
    $lim 256/2;

       echo 
    '<pre style="font-size: 6px; letter-spacing: 0px; line-height: 80%;">';

       for (
    $y 0$y imagesy ($o); $y++)
       {
          for (
    $x 0$x imagesx ($o); $x++)
          {
             if ((
    imagecolorat($o$x$y) & 0xFF)>$lim) echo 1; else echo "<span style=\"color: green\">0</span>";
          }
          echo 
    "\n";
       }

       echo 
    '</pre>';
    }
    else
    {
       
    ?>
       <form enctype='multipart/form-data' method='POST'>
       Картинки форматов JPG и PNG успешно превратятся в "двоичный" текст
       <br />
       <br />
       Можно нарисовать чего-нибудь прикольное, "отдвоичить" и пихать как подпись к e-mail
       <br />
       <br />
       Учтите, что чем больше картинка, тем дольше будете ждать. Оптимальный размер 100 на 100 пикселей
       <br />
       <input type='file' name='pic'>
       <br />
       <input type='submit' value=' Превратить! '>
       </form>
       <br />
       <br />
       Идея и разработка программы: Олег Пузанов<br />
       Отдельное спасибо Андрею Похилько
       <?
    }
    ?>
     
    1 person likes this.
  6. NOmeR1

    NOmeR1 Everybody lies

    Joined:
    2 Jun 2006
    Messages:
    1,068
    Likes Received:
    783
    Reputations:
    213
    Глупо, потому что каждый символ будет теперь не просто 0, а :
    <span style="color: green">0</span>
    Имхо, это не нужно.
     
    2 people like this.
  7. blaga

    blaga Elder - Старейшина

    Joined:
    23 Mar 2006
    Messages:
    884
    Likes Received:
    273
    Reputations:
    106
    Именно поэтому я и сказал что он раз в двадцать увеличился.
     
  8. TTyck

    TTyck Elder - Старейшина

    Joined:
    12 Nov 2005
    Messages:
    91
    Likes Received:
    41
    Reputations:
    11
    Прикольно
     
    1 person likes this.
  9. j0ze

    j0ze New Member

    Joined:
    6 Oct 2006
    Messages:
    7
    Likes Received:
    1
    Reputations:
    0
    не работаит

    Fatal error: Call to undefined function ImageCreateFromJpeg() in D:\www\t.php on line 20
     
  10. TANZWUT

    TANZWUT Крёстный отец :)

    Joined:
    22 Jun 2005
    Messages:
    1,474
    Likes Received:
    716
    Reputations:
    744
    _http://keepers-klan.org/
    вот как надо делать, чисто JS ;)
     
    _________________________
  11. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    У тебя должна быть установлена GD библиотека
     
  12. j0ze

    j0ze New Member

    Joined:
    6 Oct 2006
    Messages:
    7
    Likes Received:
    1
    Reputations:
    0
    а где скачать?
     
    #12 j0ze, 22 May 2007
    Last edited: 22 May 2007
  13. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    http://php.net/gd
     
  14. NOmeR1

    NOmeR1 Everybody lies

    Joined:
    2 Jun 2006
    Messages:
    1,068
    Likes Received:
    783
    Reputations:
    213
    Хы. Темка старая, но полезная. Добавил античатовский стиль.
    PHP:
      <meta Content-type: text/plain; charset=windows-1251>
       <html>
       <head>
       <style> 
       body{ 
         padding:10px; 
         background:#2A2E33; 
         font-family:tahoma, verdana, arial; 
         font-size:11px; 
         text-align:center; 
         color:#B9B9BD; 
       } 
       form{ 
         padding:10px; 
         border:1px solid #666; 
         width:300px; 
         margin:0 auto; 
       } 
       input{ 
         vertical-align:middle; 
         margin:1px 0; 
         padding-right:10px; 
         border:1px solid #336600; 
         padding:2px; 
         background:#363940; 
         color:#B9B9BD; 
       } 
       </style>
    <?php  
    define 
    ('TITLE''JPG & PNG to TEXT');  
    ?>
       <title>JPG & PNG to TEXT</title>
       </head>
       <center><h1>JPG & PNG to TEXT</h1></center>
    <?php  

    if (isset ($_FILES['pic']))  
    {  
       
    $file=$_FILES['pic']['tmp_name'];  
       if (
    strtolower (end (explode ('.'$_FILES['pic']['name']))) == 'jpg'$i     ImageCreateFromJpeg($file);  
       elseif (
    strtolower (end (explode ('.'$_FILES['pic']['name']))) == 'png'$i ImageCreateFromPNG($file);  
       else die (
    "Формат может быть только JPG и PNG. <img src='http://forum.antichat.ru/images/smilies/wink.gif'>");  
       
    $o ImageCreate(imagesx($i), imagesy($i));  

       for (
    $n 0$n 256$n++)   
       {  
          
    imagecolorallocate($o$n$n$n);  
       }  

       
    imagecopy ($o$i0000imagesx ($i), imagesy ($i));  

       
    $lim 256/2;  

       echo 
    '<pre style="font-size: 8px; letter-spacing: 0px; line-height: 80%;">';  
         
       for (
    $y 0$y imagesy ($o); $y++)  
       {  
          for (
    $x 0$x imagesx ($o); $x++)  
          {  
             if ((
    imagecolorat($o$x$y) & 0xFF)>$lim) echo _; else echo 0;  
          }   
          echo 
    "\n";  
       }  

       echo(
    '<br><img src="http://forum.antichat.ru/images/smilies/rolleyes.gif"></pre>');  
    }  
    else  
    {  
    ?>  
       <form enctype='multipart/form-data' method='POST'>
       <input type='file' name='pic'><br><br>
       <input type='submit' value='Compile to TEXT'>
       </form>
    <?
    }
    ?>
    :rolleyes:
     
    3 people like this.