Замена цветовой модели

Есть любые вопросы, связанные со стилями/темами для phpBB 3.1.x? Задайте их здесь!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
c61
phpBB 2.0.6
Сообщения: 506
Стаж: 13 лет 10 месяцев
Благодарил (а): 42 раза
Поблагодарили: 251 раз

Замена цветовой модели

Сообщение c61 »

Предупреждение: если Вы плохо разбираетесь в phpBB и совсем плохо в php, то этот пост не для Вас, сорри...

Подборка цветов в phpBB не на мой вкус - prosilver в голубеньких тонах лично меня раздражает. Так и тянет его перекрасить, но пока нечем - В.Трушкин до этой версии ещё не добрался.

Однако, для создания зелёненьких-красненьких и прочих стилей из prosilver никто не мешает нам применить простой дедовский метод: замену цветовой модели. Вот примитивный скрипт преобразования rgb->rbg в файлике colours.css (на тему "как работает и что делает" прошу вопросов не задавать), скриптик я обозвал ccm.php:

Код: Выделить всё

<?php
// ccm: Change Color Model
// v.0.0.1 (c) 2015 c61 http://c61.su
echo "ccm: processing...<br />\n";
// ch model     r    r    g    g    b    b
$ccm = array(1=>1,2=>2,3=>5,4=>6,5=>3,6=>4); // to rrbbgg
$fs = 'colours.css';
$fd = 'colours-ccm.css';
if ( ($css = file_get_contents($fs)) === false ) {
	echo "Can't get file ".$fs;
	exit;
}
if ( !preg_match_all("/#[a-f|0-9][a-f|0-9][a-f|0-9][a-f|0-9][a-f|0-9][a-f|0-9]/isu",$css,$matches,PREG_OFFSET_CAPTURE) ) {
	echo "Can't find color matches at file ".$fs;
	exit;
}
foreach ( $matches[0] as $match ) {
	$newcolor = "#".$match[0][$ccm[1]].$match[0][$ccm[2]].$match[0][$ccm[3]].$match[0][$ccm[4]].$match[0][$ccm[5]].$match[0][$ccm[5]];
	echo "offset=".$match[1].", color=".$match[0].", new color=".$newcolor."<br />";
	for ( $i=0; $i<6; $i++ ) {
		$css[$match[1]+1+$i] = $newcolor[1+$i];
	}
}
if ( file_put_contents($fd,$css) === false ) {
	echo "Can't put ".$fs;
	exit;
}
echo "done.<br />";
?>
В результате его выполнения легко получаем colours-ccm.css в зелёненьких тонах. Осталось пеобразовать картинки, для этого разыскиваем любое средство пакетной замены цветовой модели (я использовал XnView) и применяем к styles/prosilver/theme/images/*.gif и к ...en/*.gif и .../ru/*.gif. Картинки png я не трогал - тут на Ваш вкус. Файлы для результирующего "зелёненького" стиля можно скачать здесь (только colours.css и *.gif):
prosilver-green.zip
Что с этими файлами делать - надеюсь, разберётесь самостоятельно ))

Скриншот:
prosilver-green.gif
Аналогичным способом можно получить иные раскраски, а при желании можно модифицировать скриптик и сотворить палитру в серых тонах и соответственно изменить картинки...

С subsilver2 можно проделать примерно то же самое. Вот файлы:
subsilver2-green.zip
Скриншот:
subsilver2-green.gif
Поправив приложенный выше скрипт (назвал его ccm2g.php):

Код: Выделить всё

<?php
// ccm2g: Change Color Model to Gray
// v.0.0.1 (c) 2015 c61 http://c61.su
echo "ccm2g: processing...<br />\n";
// ch model     r    r    g    g    b    b
$ccm = array(1=>1,2=>2,3=>5,4=>6,5=>3,6=>4); // to rrbbgg
$fs = 'colours.css';
$fd = 'colours-ccm2g.css';
if ( ($css = file_get_contents($fs)) === false ) {
	echo "Can't get file ".$fs;
	exit;
}
if ( !preg_match_all("/#[a-f|0-9][a-f|0-9][a-f|0-9][a-f|0-9][a-f|0-9][a-f|0-9]/isu",$css,$matches,PREG_OFFSET_CAPTURE) ) {
	echo "Can't find color matches at file ".$fs;
	exit;
}
foreach ( $matches[0] as $match ) {
	$r = base_convert($match[0][1].$match[0][2],16,10);
	$g = base_convert($match[0][3].$match[0][4],16,10);
	$b = base_convert($match[0][5].$match[0][6],16,10);
	if ( ($r != $g) || ($g != $b) ) {
		$a = round(($r+$g+$b)/3.0,0);
		$s = base_convert($a,10,16);
		$newcolor = "#".$s.$s.$s;
		echo "offset=".$match[1].", color=".$match[0].", new color=".$newcolor."<br />";
		for ( $i=0; $i<6; $i++ ) {
			$css[$match[1]+1+$i] = $newcolor[1+$i];
		}
	}
}
if ( file_put_contents($fd,$css) === false ) {
	echo "Can't put ".$fs;
	exit;
}
echo "done.<br />";
?>
и использовав большинство картинок от зелёненьких стилей можно получить стили в серо-зелёной цветовой гамме:
prosilver-gray-green.gif
subsilver2-gray-green.gif
Если кто-либо заинтересуется и займётся "перекрашиванием", прошу в этой теме сообщать о результатах.

P.S. "По просьбам трудящихся" - зелёненькие и серо-зелёненькие стили целиком (скрипты преобразования в .../theme):
prosilver-green-style.zip
subsilver2-green-style.zip
prosilver-gray-green-style.zip
subsilver2-gray-green-style.zip
P.P.S. Тема на моей тестовой площадке тынц.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Shredder
Former team member
Сообщения: 2267
Стаж: 17 лет 10 месяцев
Благодарил (а): 284 раза
Поблагодарили: 584 раза

Re: Замена цветовой модели

Сообщение Shredder »

Отлично.
Это можно использовать и для 3.0.x, и для любой другой версии, т.к. принцип замены универсален.
bozzafresco
phpBB 1.4.4
Сообщения: 127
Стаж: 12 лет 8 месяцев
Благодарил (а): 44 раза
Поблагодарили: 6 раз

Re: Замена цветовой модели

Сообщение bozzafresco »

Если честно, результат довольно скучный, особенно грязно-бирюзовый.
Будь так легко заменить дизайнера "скриптиком", дизайнеры бы уже вымерли.
Данная тема - прекрасное подтверждение того, что простота любого дизайна завершается в тот момент, когда его пытается создать неспециалист =)
Shredder
Former team member
Сообщения: 2267
Стаж: 17 лет 10 месяцев
Благодарил (а): 284 раза
Поблагодарили: 584 раза

Re: Замена цветовой модели

Сообщение Shredder »

bozzafresco
Данный скрипт не предназначен для замены дизайнера или создания высокопрофессиональных дизайнов, он предназначен для замены цветовой гаммы. И с этой задачей он справляется прекрасно.

А "грязно-бирюзовый" для th меняется двумя кликами мыши.
bozzafresco
phpBB 1.4.4
Сообщения: 127
Стаж: 12 лет 8 месяцев
Благодарил (а): 44 раза
Поблагодарили: 6 раз

Re: Замена цветовой модели

Сообщение bozzafresco »

Shredder писал(а):для замены цветовой гаммы
Зачем менять цветовую гамму, если получается хуже чем было?
Простая математика к цветовой модели веб-сайта имеет минимальное отношение
Shredder
Former team member
Сообщения: 2267
Стаж: 17 лет 10 месяцев
Благодарил (а): 284 раза
Поблагодарили: 584 раза

Re: Замена цветовой модели

Сообщение Shredder »

Почему хуже? У меня люди уже очень довольны.
bozzafresco
phpBB 1.4.4
Сообщения: 127
Стаж: 12 лет 8 месяцев
Благодарил (а): 44 раза
Поблагодарили: 6 раз

Re: Замена цветовой модели

Сообщение bozzafresco »

Окей. Миру - мир!
Если есть спрос, отчего не быть предложению ;-)
Аватара пользователя
c61
phpBB 2.0.6
Сообщения: 506
Стаж: 13 лет 10 месяцев
Благодарил (а): 42 раза
Поблагодарили: 251 раз

Re: Замена цветовой модели

Сообщение c61 »

Почти две недели тема оставалась незамеченной, и тут вдруг образовалась небольшая дискуссия ))

Итак, как верно подметил уважаемый Shredder, данные скрипты и методика опубликованы "в помощь дизайнеру". Что касаемо
bozzafresco писал(а):Если честно, результат довольно скучный, особенно грязно-бирюзовый.
то очевидно, "на вкус и цвет...", а допилить уже преобразованную заготовку намного легче, чем менять всю кучу цветов.

Вот на основной конференции Shredder'а используется тёмно-зеленая гамма, и это очень хорошо соответствует теме, которой посвящена конференция. Если на неё попадает человек, для которого тематика совершенно не интересна, то стиль ему наверняка не понравится, зато пользователям, которым тема интересна, приятен соответствующий "антураж" ))

Насчет же серых тонов, у меня такой подход: если сугубо технический форум, то чем меньше "светофорности", тем лучше, и, как неоднократно замечено, способствует восприятию. Ну а насчёт
bozzafresco писал(а):Данная тема - прекрасное подтверждение того, что простота любого дизайна завершается в тот момент, когда его пытается создать неспециалист =)
тут уж извините, на ЧМИ для серьёзных систем автоматизации съел много стай собак и практикую в качестве эксперта уже более четверти века, и кое-какие известные принципы для этих систем стараюсь переносить на форумный дизайн, который очень часто нарушает всё подряд... "Не нравится - не ешьте", как говорится ))

Ну ладно, "Миру - мир". Продолжим тему адаптации стиля под собственные нужды.

В приведенных скриптиках преобразование цветов простейшее. Никто не мешает увеличивать-уменьшать яркость, контрастность, насыщенность по любому из цветов и тд и тп. Поменяв или добавив несколько строк на php, посмотрев на результаты и выбрав подходящий, Вы можете себе в дальнейшем уменьшить объём работ по адаптации стиля.

После того, как мы заменили цветовую модель под ту гамму, которую намерены развивать, переходим к подбору конкретных цветов. Как Вы видели, скриптики выдают списочек замен цветов. Никто не мешает списочек новых цветов кинуть в файл, снабдив каждый цвет уникальным индексом (тупо - порядковым номером), а эти индексы запихать перед цветом в виде коментариев в colours.css (например, /*012*/#00abcd), чтобы в дальнейшем регуляркой можно было легко его поправить. Ну а выдачу списочка цветов легко снабдить прямоугольничками этих цветов и добавить на js какой-нибудь color picker. Допилив скриптик по части обновления списка и применением его к colors.css получаем простейший инструмент перекраски... но пока без картинок. Отмечу, что для подгонки цветов стиля на первом этапе лучше использовать картинки какой-то отличной или совершенно нейтральной серой цветовой гаммы. Когда-то делал подобный скриптик, но, честно говоря, он меня не устраивал и я его куда-то далеко закинул и уж не могу найти. Если надо, попытаюсь восстановить с улучшениями, но не скоро.

Теперь по картинкам. Если на сервере есть imagemagick, с его помощью можно перекрасить практически что угодно. Остаётся сделать список файлов и описать замены цветов, вытащив их из обсуждавшегося ранее списка.

То, что сделано Artodia, сделано очень качественно, но манипулирование цветами не обладает свойствами полноты и простоты. А перекраска картинок даёт порой весьма забавный результат. Инструмент хорош, но неплохо бы иметь получше и попроще. Почему бы не сделать инструмент от "phpbbguru" ? "Пусть расцветают сто цветов, пусть соперничают сто школ", как говаривал Мао )) Хотя нет, не думаю, что окажется возможным здесь такое организовать... все только критиковать горазды, а делать что-то - таких маловато...
Erlang
phpBB 2.0.15
Сообщения: 1033
Стаж: 22 года 3 месяца
Откуда: Москва
Благодарил (а): 293 раза
Поблагодарили: 7 раз

Re: Замена цветовой модели

Сообщение Erlang »

c61 писал(а):стили в серо-зелёной цветовой гамме
Мне понравилось.
Правда чутка нужно будет допилить.
Спасибо.
С уважением,
Сергей
Booker
phpBB 2.0.7a
Сообщения: 627
Стаж: 15 лет 4 месяца
Благодарил (а): 165 раз
Поблагодарили: 21 раз

Re: Замена цветовой модели

Сообщение Booker »

А я вот такой сайт видел: http://www.colorizeit.com/styles/phpbb- ... ilver.html
Мне показалось, что результат нагляден, правда сам не пробовал.
Аватара пользователя
angst66
phpBB 3.0.0 RC3
Сообщения: 1587
Стаж: 14 лет 9 месяцев
Благодарил (а): 90 раз
Поблагодарили: 165 раз

Re: Замена цветовой модели

Сообщение angst66 »

Booker писал(а): такой сайт видел
Это на движок 3.0, а тут мы про 3.1
Booker
phpBB 2.0.7a
Сообщения: 627
Стаж: 15 лет 4 месяца
Благодарил (а): 165 раз
Поблагодарили: 21 раз

Re: Замена цветовой модели

Сообщение Booker »

Это на 3.1.
Аватара пользователя
angst66
phpBB 3.0.0 RC3
Сообщения: 1587
Стаж: 14 лет 9 месяцев
Благодарил (а): 90 раз
Поблагодарили: 165 раз

Re: Замена цветовой модели

Сообщение angst66 »

Извиняюсь, посмотрел на скрины только. Пользовался сам
нюся
phpBB 1.4.2
Сообщения: 72
Стаж: 11 лет 8 месяцев
Благодарил (а): 1 раз

Re: Замена цветовой модели

Сообщение нюся »

Подскажите пожалуйста как перекрасит шрифт (обвела серым), но что бы не перекрасился шрифт который обведен голубым в стиле просвит
Изображение
Аватара пользователя
romaamor
phpBB 3.0.7-PL1
Сообщения: 2517
Стаж: 14 лет 6 месяцев
Откуда: Одесса
Благодарил (а): 829 раз
Поблагодарили: 214 раз

Re: Замена цветовой модели

Сообщение romaamor »

А так сделать ? -
Изображение
Там правда денюшку за расширение просят. Еврики. :(

Вернуться в «Стили для phpBB 3.1.x»