Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   JPG & PNG to TEXT (https://forum.antichat.xyz/showthread.php?t=30929)

NOmeR1 10.01.2007 13:44

JPG & PNG to TEXT
 
Вот нашёл у себя в свалке скриптов интересный скрипт :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 (puzanov@gmail.com) 
// special thanks to Andrei Pohilko (apc@kaf-i.kg) 

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 /> 
   Отдельное спасибо Андрею Похилько 
   <? 

?>

Если у кого есть новее или лучше, то выкладываем здесь!

devil2007 10.01.2007 22:35

Отлично +

fucker"ok 10.01.2007 23:21

Улыбнуло) Я нечто на паскале делал в детстве (правда из bmp)

NOmeR1 12.01.2007 17:22

Поправил скрипт, теперь он превращает картинку в нолики и символы "_". Смотрится лучше.

blaga 12.01.2007 17:43

Раз так, то вот теперь с цветом, черно-зеленый. Правда вследствии таких изменений, выходной код вырос примерно в 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 (puzanov@gmail.com)
// special thanks to Andrei Pohilko (apc@kaf-i.kg)

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 />
   Отдельное спасибо Андрею Похилько
   <?
}
?>


NOmeR1 12.01.2007 17:54

Глупо, потому что каждый символ будет теперь не просто 0, а :
<span style="color: green">0</span>
Имхо, это не нужно.

blaga 12.01.2007 18:21

Именно поэтому я и сказал что он раз в двадцать увеличился.

TTyck 12.01.2007 18:21

Прикольно

j0ze 22.05.2007 09:11

не работаит

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

TANZWUT 22.05.2007 09:27

_http://keepers-klan.org/
вот как надо делать, чисто JS ;)

Isis 22.05.2007 09:34

Цитата:

Сообщение от j0ze
не работаит

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

У тебя должна быть установлена GD библиотека

j0ze 22.05.2007 09:35

а где скачать?

Isis 22.05.2007 09:40

http://php.net/gd

NOmeR1 27.06.2007 00:34

Хы. Темка старая, но полезная. Добавил античатовский стиль.
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:


Время: 21:05