За последние 24 часа нас посетили 59264 программиста и 1841 робот. Сейчас ищут 911 программистов ...

hex картинки

Тема в разделе "PHP для новичков", создана пользователем xak2, 24 апр 2007.

  1. xak2

    xak2 Guest

    Доброе утро.

    У меня в базе хранятся логотипы 8x8 (Маштаб 1 = 10px) в bin виде.
    $logo = urlencode(bin2hex($row['Logo']));
    Получаю:
    cc4444cccc43234ccc42324ccc4444cccc4444cccc43234ccc42324ccc4444cc

    Как мне отобразить это изображение в 8x8 клеточек?
     
  2. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    1
    Адрес:
    леноград
    рисуешь 64 дива и каждому задаёшь нужный цвет :)
     
  3. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    dark-demon
    +1. Пойду попробую

    xak2
    а как ты это делаешь сейчас?
     
  4. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    1
    Адрес:
    леноград
  5. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    :shock: руль!!! правда почему-то открылось только лисичкой а ИЕ и Опера показали белый лист....
     
  6. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    1
    Адрес:
    леноград
  7. xak2

    xak2 Guest

    Нет мне надо именно изображение сгенерировать, я этого добился:

    PHP:
    1.  
    2. <?php
    3.  
    4. $size = 100;
    5. $pixelSize = $size / 8;
    6. $hex = $_GET['hex'];
    7.  
    8. function color($mark) {
    9.     if($mark == 1){$color = "#000000";}
    10.     if($mark == 2){$color = "#8c8a8d";}
    11.     if($mark == 3){$color = "#ffffff";}
    12.     if($mark == 4){$color = "#fe0000";}
    13.     if($mark == 5){$color = "#ff8a00";}
    14.     if($mark == 6){$color = "#ffff00";}
    15.     if($mark == 7){$color = "#8cff01";}
    16.     if($mark == 8){$color = "#00ff00";}
    17.     if($mark == 9){$color = "#01ff8d";}
    18.     if($mark == 'a'){$color = "#00ffff";}
    19.     if($mark == 'b'){$color = "#008aff";}
    20.     if($mark == 'c'){$color = "#0000fe";}
    21.     if($mark == 'd'){$color = "#8c00ff";}
    22.     if($mark == 'e'){$color = "#ff00fe";}
    23.     if($mark == 'f'){$color = "#ff008c";}
    24.     return $color;
    25. }
    26.  
    27. for($y = 0; $y < 8; $y++) {
    28.     for ($x = 0; $x < 8; $x++) {
    29.         $offset = ($y * 8) + $x;
    30.         $Cuadrilla8x8[$y][$x] = substr($hex, $offset, 1);
    31.     }
    32. }
    33.  
    34. $SuperCuadrilla = array();
    35. for($y = 1; $y <= 8; $y++) {
    36.     for($x = 1; $x <= 8; $x++) {
    37.         $bit = $Cuadrilla8x8[$y-1][$x-1];
    38.         for($repiteY = 0; $repiteY < $pixelSize; $repiteY++) {
    39.             for ($repite = 0; $repite < $pixelSize; $repite++) {
    40.                 $translatedY = ((($y - 1) * $pixelSize) + $repiteY);
    41.                 $translatedX = ((($x - 1) * $pixelSize) + $repite);
    42.                 $SuperCuadrilla[$translatedY][$translatedX] = $bit;
    43.             }
    44.         }
    45.     }
    46. }
    47.  
    48. $img = ImageCreate($size, $size);
    49. for($y = 0; $y < $size; $y++) {
    50.     for ($x = 0; $x < $size; $x++) {
    51.         $bit = $SuperCuadrilla[$y][$x];
    52.         $color = substr(color($bit), 1);
    53.         $r = substr($color, 0, 2);
    54.         $g = substr($color, 2, 2);
    55.         $b = substr($color, 4, 2);
    56.         $superPixel = imagecreate(1, 1);
    57.         $cl = imagecolorallocatealpha($superPixel, hexdec($r), hexdec($g), hexdec($b), 0);
    58.         imagefilledrectangle($superPixel, 0, 0, 1, 1, $cl);
    59.         imagecopy($img, $superPixel, $x, $y, 0, 0, 1, 1);
    60.         imagedestroy($superPixel);
    61.     }
    62. }
    63.  
    64. header("Content-type: image/jpeg");
    65.  
    66. imagerectangle($img, 0, 0, $size - 1, $size - 1, imagecolorallocate($img, 0, 0, 0));
    67.  
    68. imagecolortransparent($img, '000000');
    69.  
    70. imagejpeg($img, NULL, 100);
    71.  
    72. ?>
    73.  
     
  8. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    1
    Адрес:
    леноград
    xak2, а почему бы в базе и не хранить уже сгенерированное изображение? да и почему бы это сгенерированное изображение не положить в файл?