Вниз  PHP и мелкие вопросы
- 11.11.2011 / 14:35
elkol
  Пользователь

elkol 
Сейчас: Offline
Alsawin, хз $steps думаю
- 11.11.2011 / 14:56
kiriman
  Пользователь

kiriman 
Сейчас: Offline
elkol (11.11.2011/13:35)
Alsawin, хз $steps думаю
step == шаг :-D
- 11.11.2011 / 15:10
elkol
  Пользователь

elkol 
Сейчас: Offline
kiriman, я тоже переводил :-D
- 11.11.2011 / 16:51
kiriman
  Пользователь

kiriman 
Сейчас: Offline
elkol, Я знаю англ. на уровне документации, тут переводчик не нужен :hack:
- 11.11.2011 / 16:57
Alsawin
  Пользователь

Alsawin 
Сейчас: Offline
kiriman, все знают(кто учит программирование)
- 11.11.2011 / 18:36
elkol
  Пользователь

elkol 
Сейчас: Offline
Вот ещё одна
  1. * Преобразовывает строку $text в строку-градиент
  2. * начиная с цвета $from и заканчивая цветом $to
  3. * Поддерживает работу как и с rgb режимом так и с hex
  4. *
  5. * @param    string  $text - сама строка
  6. * @param    string  $from - начальный цвет
  7. * @param    string  $to   - Конечный цвет
  8. * @param    string  $mode - Режим, по умолчанию hex
  9. */
  10. function str2gradient($text,$from='',$to='', $mode="hex")
  11. {
  12.     if($mode=="hex")
  13.     {
  14.         $to  = hexdec($to[0].$to[1]).",".hexdec($to[2].$to[3]).",".hexdec($to[4].$to[5]);
  15.         $from= hexdec($from[0].$from[1]).",".hexdec($from[2].$from[3]).",".hexdec($from[4].$from[5]);
  16.     }
  17.  
  18.     if( empty($text) )
  19.         return '';
  20.     else
  21.         $levels=strlen($text);
  22.  
  23.     if (empty($from))
  24.                 $from = array(0,0,255);
  25.     else
  26.                 $from = explode(",", $from);
  27.  
  28.     if (empty($to))
  29.  
  30.                 $to = array(255,0,0);
  31.     else
  32.                 $to = explode(",", $to);
  33.  
  34.         $output = "";
  35.  
  36.         for ($i=1;$i<=$levels;$i  )
  37.         {
  38.                 for ($ii=0;$ii<3;$ii  )
  39.                 {
  40.                         $tmp[$ii] = $from[$ii] - $to[$ii];
  41.                         $tmp[$ii] = floor($tmp[$ii] / $levels);
  42.                         $rgb[$ii] = $from[$ii] - ($tmp[$ii] * $i);
  43.  
  44.                         if ($rgb[$ii] > 255) $rgb[$ii] = 255;
  45.  
  46.                         $rgb[$ii] = dechex($rgb[$ii]);
  47.                         $rgb[$ii] = strtoupper($rgb[$ii]);
  48.  
  49.                         if (strlen($rgb[$ii]) < 2) $rgb[$ii] = "0$rgb[$ii]";
  50.                 }
  51.             $output .= "<font color=\"#".$rgb[0].$rgb[1].$rgb[2]."\">" . $text[$i -1 ] . "</font>";
  52.         }
  53.         return $output."\n";
  54. }
  55.  
  56. //Пример использования
  57. include("str2gradient.php");
  58. echo str2gradient("Привет, я Градиент!", "FF0000", "FFCC00");
  59. echo "<hr />\n";
  60. echo str2gradient("Привет, я Градиент в режиме rgb!", "255,255,0", "150,150,0", "rgb");
У меня с ней страница негрузится :-(
- 11.11.2011 / 21:42
Koenig
  Модератор форума

Koenig 
Сейчас: Offline
elkol, ++ в циклах добавь в строках 36 и 38
__________________
 Магистр Мёда
- 11.11.2011 / 21:53
Koenig
  Модератор форума

Koenig 
Сейчас: Offline
  1. /*
  2. * Преобразовывает строку $text в строку-градиент
  3. * начиная с цвета $from и заканчивая цветом $to
  4. * Поддерживает работу как и с rgb режимом так и с hex
  5. *
  6. * @param    string  $text - сама строка
  7. * @param    string  $from - начальный цвет
  8. * @param    string  $to   - Конечный цвет
  9. * @param    string  $mode - Режим, по умолчанию hex
  10. */
  11. function str2gradient($text,$from='',$to='', $mode="hex")
  12. {
  13.     if($mode=="hex")
  14.     {
  15.         $to  = hexdec($to[0].$to[1]).",".hexdec($to[2].$to[3]).",".hexdec($to[4].$to[5]);
  16.         $from= hexdec($from[0].$from[1]).",".hexdec($from[2].$from[3]).",".hexdec($from[4].$from[5]);
  17.     }
  18.  
  19.     if( empty($text) )
  20.         return '';
  21.     else
  22.         $levels=strlen($text);
  23.  
  24.     if (empty($from))
  25.                 $from = array(0,0,255);
  26.     else
  27.                 $from = explode(",", $from);
  28.  
  29.     if (empty($to))
  30.  
  31.                 $to = array(255,0,0);
  32.     else
  33.                 $to = explode(",", $to);
  34.  
  35.         $output = "";
  36.  
  37.         for ($i=1;$i<=$levels;$i++)
  38.         {
  39.                 for ($ii=0;$ii<3;$ii++)
  40.                 {
  41.                         $tmp[$ii] = $from[$ii] - $to[$ii];
  42.                         $tmp[$ii] = floor($tmp[$ii] / $levels);
  43.                         $rgb[$ii] = $from[$ii] - ($tmp[$ii] * $i);
  44.  
  45.                         if ($rgb[$ii] > 255) $rgb[$ii] = 255;
  46.  
  47.                         $rgb[$ii] = dechex($rgb[$ii]);
  48.                         $rgb[$ii] = strtoupper($rgb[$ii]);
  49.  
  50.                         if (strlen($rgb[$ii]) < 2) $rgb[$ii] = "0$rgb[$ii]";
  51.                 }
  52.             $output .= "<font color=\"#".$rgb[0].$rgb[1].$rgb[2]."\">" . $text[$i -1 ] . "</font>";
  53.         }
  54.         return $output."\n";
  55. }
  56.  
  57. //Пример использования
  58. #include("str2gradient.php");
  59. echo str2gradient("Привет, я Градиент!", "FF0000", "FFCC00");
  60. echo "<hr />\n";
  61. echo str2gradient("Привет, я Градиент в режиме rgb!", "255,255,0", "150,150,0", "rgb");

__________________
 Магистр Мёда
- 11.11.2011 / 22:38
elkol
  Пользователь

elkol 
Сейчас: Offline
Koenig, без str2 использовать можно?
- 11.11.2011 / 23:20
elkol
  Пользователь

elkol 
Сейчас: Offline
Koenig, Таже херня с кодировкой. Вернусь на старую
Наверх  Всего сообщений: 4740
Фильтровать сообщения
Поиск по теме
Файлы топика (129)