Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Таблицу в png 
V
    Опции темы
SharedNoob
Дата 16.9.2009, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 25.6.2007
Где: UA

Репутация: нет
Всего: 5



добрый день.
Вопрос в следующем. 
Имею скрипт который формирует на основании строки в базе данных таблицу, 8х8.
Ширина и высота ячейки 3px. Это некая иконка. Теперь стоит задача сохранить это цветное чудо в png. 
Так вот собственно вопрос, каким самым безболезненным способом можно сохранить эту цветную табличку в png.

Код

<table cellspacing="0" cellpadding="0" border="0" style="width: 24px; height: 24px;">
    <tbody>
        <tr>
            <td height="3" width="3" style="background-color: rgb(254, 0, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(254, 0, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(254, 0, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(254, 0, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(254, 0, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(254, 0, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(254, 0, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(254, 0, 0);"></td>
        </tr>
        <tr>
            <td height="3" width="3" style="background-color: rgb(254, 0, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(140, 0, 255);"></td>
            <td height="3" width="3" style="background-color: rgb(0, 0, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(0, 138, 255);"></td>
            <td height="3" width="3" style="background-color: rgb(0, 138, 255);"></td>
            <td height="3" width="3" style="background-color: rgb(0, 0, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(140, 0, 255);"></td>
            <td height="3" width="3" style="background-color: rgb(254, 0, 0);"></td>
        </tr>
        <tr>
            <td height="3" width="3" style="background-color: rgb(254, 0, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(140, 0, 255);"></td>
            <td height="3" width="3" style="background-color: rgb(0, 0, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(0, 138, 255);"></td>
            <td height="3" width="3" style="background-color: rgb(0, 138, 255);"></td>
            <td height="3" width="3" style="background-color: rgb(0, 0, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(140, 0, 255);"></td>
            <td height="3" width="3" style="background-color: rgb(254, 0, 0);"></td>
        </tr>
        <tr>
            <td height="3" width="3" style="background-color: rgb(254, 0, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(140, 0, 255);"></td>
            <td height="3" width="3" style="background-color: rgb(0, 0, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(255, 138, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(255, 138, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(0, 0, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(140, 0, 255);"></td>
            <td height="3" width="3" style="background-color: rgb(254, 0, 0);"></td>
        </tr>
        <tr>
            <td height="3" width="3" style="background-color: rgb(254, 0, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(0, 0, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(0, 0, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(255, 138, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(255, 138, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(0, 0, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(0, 0, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(254, 0, 0);"></td>
        </tr>
        <tr>
            <td height="3" width="3" style="background-color: rgb(254, 0, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(0, 0, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(255, 138, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(255, 138, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(255, 138, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(255, 138, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(0, 0, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(254, 0, 0);"></td>
        </tr>
        <tr>
            <td height="3" width="3" style="background-color: rgb(254, 0, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(0, 0, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(0, 0, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(0, 0, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(0, 0, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(0, 0, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(0, 0, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(254, 0, 0);"></td>
        </tr>
        <tr>
            <td height="3" width="3" style="background-color: rgb(254, 0, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(254, 0, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(254, 0, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(254, 0, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(254, 0, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(254, 0, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(254, 0, 0);"></td>
            <td height="3" width="3" style="background-color: rgb(254, 0, 0);"></td>
        </tr>
    </tbody>
</table>

PM MAIL ICQ Skype   Вверх
solenko
Дата 16.9.2009, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 34
Всего: 67



Не понятно в чем вопрос. Вам подсказать линк на GD функции? Или что-то мешает отрисовать прямоугольники 3х3 так же как и таблицу?


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
SharedNoob
Дата 17.9.2009, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 25.6.2007
Где: UA

Репутация: нет
Всего: 5



задача была такова, отрисовать таблицу в картинке. 
было заданое количество цветов. сделал заготовки png в этих цветах и использовал imagecopy.

Код

function gmark($gmark, $size, $gname) 
    {
        $gmark=urlencode(bin2hex($gmark));

        if ($size>10) {$size=10;};
        $Imgsize=$size*8;
        
        $image = imagecreate($Imgsize,$Imgsize);
        $green = imagecolorallocate($image,136,203,44);
        imagealphablending($image, true);     
        imagesavealpha($image, true);
        
/*
        $ipath='Images/guildmarks/'.$gmark{0}.'.png';
        $img = imagecreatefrompng($ipath);
        imagecopy ($image,$img,0,0,0,0,$size,$size);
        imagedestroy($img);
*/        

        $y=0;
        $x=0;
        $i=-1;
        While ($y<8)
            {
                $y++;
                $x=0;
                While ($x<8)
                    {
                        $i++;
                        $x++;
                        //$img = imagecreatefrompng($gmark{}.'.png');
                        $des_x=(($x-1)*$size);
                        $des_y=(($y-1)*$size);
                        $ipath='Images/guildmarks/source/'.$gmark{$i}.'.png';
                        $img = imagecreatefrompng($ipath);
                        imagecopy ($image,$img,$des_x,$des_y,0,0,$size,$size);
                        imagedestroy($img);
                    };
            };
        
        imagepng($image, 'Images/guildmarks/'.$gname.'.png');
        imagedestroy($image);
    };


вопрос решен smile
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0430 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.