Квартиры, дома, земельные участки Краснодарского края без посредников. Объявления собственников недвижимости.
Реклама здесь
Главная
Примеры PHP Примеры JavaScript Примеры Ajax Примеры CSS,HTML

Преобразование GIF-изображения в таблицу на PHP


Скрипт конвертирует Gif изображение в HTML table получается тот же рисунок, но выданый в браузере, не как графика, а как HTML таблица с ячейками разных цветов. Как пользоваться: нажимаем на кнопку Обзор указываем Гифку, которую хотим преобразовать, ширина должна быть <=100 (по дефолту, настройки меняются в файле ./config.php, но менять не советую, т.к. браузер слишком большую таблицу может не вытянуть), высота должна быть <=100 (по дефолту) выбираем CELLSPACING таблицы, выбираем CELLSPADING таблицы, жмем кнопку Генерация Таблицы и смотрим на результат... если результат вам очень сильно нравится: файл -> сохранить как и сохраняем сгенерированную HTML страничку. Зачем?: согласен что генерация table из рисука это слишком тяжело, но есть плюс: при отключенной графики в браузере клиент всегда сможет увидеть вашу картинку.

config.php:


<?php
# максимальная ширина GIF
$conf['width']        =    100;

# маскимальная высота GIF
$conf['height']        =    100;

# max размер выданой ячейки таблицы в px
$conf['size']        =    5;

# max CELLSPACING - у таблицы
$conf['cellpac']    =    5;

# max CELLPADDING - у таблицы
$conf['cellpad']    =    5;
?>
Скопировать в буфер

index.php:


<?php
require 'config.php';
?>

<html>
 <head>
  <title>Загрузите рисунок</title>
 </head>
 <body>
  <center>
   <h3>Скрипт генерирует HTML таблицу из загруженного рисунка</h3>
   <br>
     Используйте Gif файл, шириной <= <?=$conf['width']?>, высотой <= <?=$conf['height']?>
   </br>
   <form action = 'cns.php' method = 'post' enctype="multipart/form-data">
   <table align = 'center' border = '1'>
    <tr>
     <td colspan = '2'><input type = 'file' name = 'img'></td>
    </tr>
    <tr>
     <td>размер ячеек таблицы</td><td><select name = 'td_size'>
    <?
    
for ($n 1$n <= $conf['size']; $n++)
    {
    
?>
     <option value = '<?=$n?>'><?=$n?> px</option>
    ?
    }
    ?>
        </select></td>
    </tr>
    <tr>
     <td>CELLSPACING таблицы</td><td><select name = 'cellpac' >
    <?
    
for ($n 0$n <= $conf['cellpac']; $n++)
    {
    
?>
     <option value = '<?=$n?>'><?=$n?> px</option>
    <?
    
}
    
?>
        </select></td>
    
    </tr>
    <tr>
     <td>CELLSPADING таблицы</td><td><select name = 'cellpad' >
    <?
    
for ($n 0$n <= $conf['cellpad']; $n++)
    {
    
?>
     <option value = '<?=$n?>'><?=$n?> px</option>
    <?
    
}
    
?>
        </select></td>
    
    </tr>
    <tr>
     <td colspan = '2'><input type = 'submit' value = 'Генерация таблицы' style = 'width:100%'></td>
    </tr>
    </table>
   </form>
  </center>  
 </body>
</html>
<?
?>
Скопировать в буфер

cns.php:


<?php
# подключаем файл настроек
require 'config.php';

############################################
# функция для настроек REGISTER GLOBAL = OFF
# переменные берем из суперглобальных массивов
regvar('img''td_size''cellpac''cellpad');
############################################

GenerateTable($img$td_size$cellpac$cellpad);

/*
echo $img['tmp_name'].' img<br>';
echo $td_size.' size<br>';
echo $cellpac.' cellpac<br>';
echo $cellpad.' cellpad<br>';
*/

############################################
# Функция генерации таблицы из изображения
function GenerateTable($img$td_size$cellpac$cellpad)
{
 global 
$conf;


 
$err '';

 if (!(
$image = @imagecreatefromGif($img['tmp_name'])))
 {
    
$err 'Неудача при попытки открыть файл, возможно неверный тип,<br> разрешена обработка только GIF файлов<br>';
 }

 
# константы размера GIF-ки
 
define('WID'0);
 
define('HEI'1);

 
$size getimagesize($img['tmp_name']);

 
#echo $size[WID].':'.$size[HEI].'<br>';


 
if ($size[WID] > $conf['width'])
 {
     
$err .= 'Ширина > '.$conf['width'].'<br>';
 }
 if (
$size[HEI] > $conf['height'])
 {
     
$err .= 'Высота > '.$conf['width'].'<br>';
 }
 if (
$td_size $conf['size'] || $td_size 1)
 {
     
$err .= 'Неверное значение размера ячеек таблицы<br>';
 }
 if (
$cellpac $conf['cellpac'] || $cellpac 0)
 {
     
$err .= 'Неверное значение CELLSPACING таблицы<br>';
 }
 if (
$cellpad $conf['cellpad'] || $cellpad 0)
 {
     
$err .= 'Неверное значение CELLSPADING таблицы<br>';
 }


 if (
strlen($err) == 0)
 {

  echo 
"<table align=center border=0 CELLSPACING=".$cellpac." CELLPADDING=".$cellpad.">\n";

  for (
$y $y $size[HEI] ; $y++)
  {
   echo 
"<tr>\n";
      for (
$x $x $size[WID] ; $x++)
      {
        
$rgb imagecolorat($image$x$y);
        list(
$r,$g,$b)=array_values(imageColorsForIndex($image$rgb));

       echo 
"<td bgcolor=#".RGB_HEX($r).RGB_HEX($g).RGB_HEX($b)." width=".$td_size." height=".$td_size."></td>\n";
      }
   echo 
"</tr>\n";
  }

  echo 
"</table>\n";

#  echo "R=$r, g=$g, b=$b<br>";
#  echo '#'.RGB_HEX($r).RGB_HEX($g).RGB_HEX($b);

 
}
 else
 {
  echo 
"<center>Ошибка!:<br><font color = 'red'>".$err."</font><br>Вернитесь <a href = 'index.php'>&lt;&lt;Назад</a> и повторите попытку</center>";
 }

}
############################################
# функция перевода из RGB - HEX

function RGB_HEX($n)
{
    
$n dechex($n);
    if (
strlen($n) == 1) {$n '0'.$n;}

    return 
$n;
}

############################################
# функция для настроек REGISTER GLOBAL = OFF
# переменные берем из суперглобальных массивов

function regvar()
{
    
$cnt=func_num_args();
    for(
$i=0$i<$cnt$i++) {
        
$varname=func_get_arg($i);
        global $
$varname;
        if(isset(
$_GET[$varname]))
            $
$varname=$_GET[$varname];
        elseif(isset(
$_POST[$varname]))
            $
$varname=$_POST[$varname];
        elseif(isset(
$_COOKIE[$varname]))
            $
$varname=$_COOKIE[$varname];
        elseif(isset(
$_FILES[$varname]))
            $
$varname=$_FILES[$varname];
        else
            unset($
$varname);

        if(isset($
$varname)&&get_magic_quotes_gpc() && !isset($_FILES[$varname]))
            $
$varname=stripslashes($$varname);
    }
}
?>
Скопировать в буфер

Источник: http://cns.shadrinsk.net

Скачать архив с примером.

Частотный преобразователь MICROMASTER 420
-  Купить надежные паллетные стеллажи со склада. Узнать контакты
-  Клипы DJ Remo и других исполнителей на music.ivi.ru - слушать музыку.
авто из рук в руки

© Copyright 2008-2012 by KDG