Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Defrag.ru Community _ Quake3 (Defrag) _ Вывод картинки в консоль

Автор: nL-xajA 27.07.2015 - 15:37

Нам понадобятся следующие программы:

  1. Photoshop + картинки + палитра 10-ти кваковских цветов (прикреплена к посту);
  2. http://rutracker.org/forum/viewtopic.php?t=1683749;
  3. http://portableapps.com/redirect/?a=OperaPortableLegacy12&t=http%3A%2F%2Fdownloads.portableapps.com%2Fportableapps%2Foperaportable%2FOperaPortableLegacy12_12.17.paf.exe + html страничка, производящая автозамену (прикреплена к посту).
Порядок действий:

1) Поиск нужной картинки и приведение ее до размеров высотой примерно 30-32 пикселя (строки)

Подходящие картинки легко находятся по запросу в поисковике ”https://www.google.ru/search?newwindow=1&hl=ru&site=imghp&tbm=isch&source=hp&biw=1280&bih=909&q=8-bit+pictures&oq=8-bit+pictures&gs_l=img.12...2608.2608.0.3652.1.1.0.0.0.0.0.0..0.0....0...1ac.1.64.img..1.0.0.xeBrBrzhFBU#newwindow=1&hl=ru&tbm=isch&q=pixel+art”, ”https://www.google.ru/search?newwindow=1&hl=ru&site=imghp&tbm=isch&source=hp&biw=1280&bih=909&q=8-bit+pictures&oq=8-bit+pictures&gs_l=img.12...2608.2608.0.3652.1.1.0.0.0.0.0.0..0.0....0...1ac.1.64.img..1.0.0.xeBrBrzhFBU” и тому подобных. Хорошие картинки так же получаются из скринов с 8ми битных игр, что легко сделать через соответствующие эмуляторы. Т.к. разрешение выдаваемое NES было 256Ч240 (224), а большинство отдельных объектов и игровых персонажей по высоте было не более 10% размера экрана, все это добро можно «перенести» в консоль кваки без масштабирования. К слову о масштабировании, изменять масштаб надо обязательно кратно степени двойки (в 2/4/8/16 и т.д. раз) чтобы сохранить оригинальные пропорции изображения.
Изображение желательно делать высотой не более 30-32 пикселей, т.к. на всех серваках стоит защита от флуда. На самом лояльном к подобному арту российском сервере (дело в exe’шнике) опытным путем было установлено, что при использовании wait 20 после вывода каждой строки изображения, на 31 строчке вас уже «замьютит». Поэтому при большем числе строк изображения соответствующе увеличиваем wait, который, опять же, подбираем опытным путем. На других серваках wait приходится ставить от 200, поэтому для них это дело становится неактуальным).
Использование wait так же важно потому, что его использование помогает не создавать лага при «выводе изображения».

2) Преобразование палитры цветов картинки в палитру цветов кваки, т.е. надо чтобы изображение состояло только из 10ти цветов доступных в кваке.

Файлы палитр на 10 и 11 цветов прикрепляю сразу. Делаются они созданием картинки на которой изображение построено из 10 или 11 цветов, например картинка из полосок, каждая из которых определенного цвета, доступного в кваке + 1 не из кваковского диапазона – нужен для фона, чтобы после преобразования заместо него были пробелы.
В Photoshop:После этого, в идеале, должно произойти слияние разных оттенков цвета в наиболее близкие им цвета кваки и изображение будет состоять из 10 или 11 цветов. Но бывает так, что преобразование происходит не так как хотелось, и оттенки цвета могут быть заменены на совсем не близкие им, например желтый на черный. Тогда надо будет откорректировать все в ручную инструментом кисть с размером в 1 пиксель и заливкой.
После всех действий сохраняем изображение в .bmp.

3) Преобразование картинки при помощи ASCII Art Generator в формат HTML.

Устанавливаем ASCII Art Generator. Запускаем программу:4) Автозамена тегов HTML в привычные кваке коды цветов (^1, ^2 и т.д.) и обязательное добавление wait’а перед выводом каждой строки изображения.

Запускаем прикрепленный к посту html файл. Скопированный текст вставляем в верхнее поле и жмем - ПЕРЕВОД ЦВЕТОВ ИЗ ФОРМАТА HTML => В ФОРМАТ QUAKE3
То, что получилось копируем в cfg файл и запускаем его в нужный момент smile.gif.

P.S.: Нужна помощь в допиливании автозамены. Во-первых, почему-то chrome не понимает символ используемого "пикселя", т.е. символ "ACK" или "%06". В опере все нормально. Во-вторых, хотелось бы чтобы можно было изменять цвет фона и значение wait'а без правки исходного кода страницы, а непосредственно указанием значений в окошках на ней. В-третьих, не знаю как заэкранировать кавычки, приходится использовать промежуточный знак, в данном случае это "*" и уже потом автозаменой менять звездочку на кавычки.
Пост будет правиться и наполняться).

 html_to_q3_color_v0.1.html ( 3.96 килобайт ) : 2751
 pal_color10_11.zip ( 608 байт ) : 2630
 

Автор: ___ 29.07.2015 - 11:26

Цитата
Тогда надо будет откорректировать все в ручную инструментом кисть с размером в 1 пиксель и заливкой.

наверняка там есть инструмент "замена цвета"

Цитата
значение wait'а

не самое удачное решение, чуть что - править кучу конфигов
я написал вместо вейта vstr wwait, а в ней уже указан нужный
и в начале картинки exec конфига с установкой wwait
достаточно поправить один кфг и готово

Цитата
Во-вторых, хотелось бы чтобы можно было изменять цвет фона без правки исходного кода страницы

фон вроде ж прозрачный? (смотря по коду)
это наверное чтоб подбирать цвет непрозрачного на замену прозрачному?

Цитата
В-третьих, не знаю как заэкранировать кавычки, приходится использовать промежуточный знак, в данном случае это "*"

тут кавычки работают, аж тремя способами, и в опере, и в кхроме
\"
' " ' (внешние на апострофы, внутри без экрана)
\x22

В конце строки звёздочка не появляется, кстатии.
Не нужна?

06 в кхроме не работает тоже

Написал макро для emeditor (такой блокнот для красноглазиков)
Делает в принципе то же самое, только без косяков
Запускается в клик или по бинду
q3ascii.jsee
Код
document.selection.Replace( "^<!.*\n", "", eeFindReplaceRegExp );
document.selection.Replace( "</font>", "", eeFindReplaceRegExp | eeReplaceAll );
document.selection.Replace( "</pre.*$", "", eeFindReplaceRegExp | eeReplaceAll );
document.selection.Replace( "\n$", "", eeFindReplaceRegExp | eeReplaceAll );
document.selection.Replace( "(?<!<Font Color=#00ae25)>#", ">\x06", eeFindReplaceRegExp | eeReplaceAll );
while ( document.selection.Replace( "(?<=\x06)#", "\x06", eeFindReplaceRegExp | eeReplaceAll ) );
document.selection.Replace( "<Font Color=#00ae25>#", " ", eeFindReplaceRegExp | eeReplaceAll );
while ( document.selection.Replace( "(?<= )#", " ", eeFindReplaceRegExp | eeReplaceAll ) );
document.selection.Replace( "<Font Color=Black>", "^0", eeReplaceAll );
document.selection.Replace( "<Font Color=Red>", "^1", eeReplaceAll );
document.selection.Replace( "<Font Color=Lime>", "^2", eeReplaceAll );
document.selection.Replace( "<Font Color=Yellow>", "^3", eeReplaceAll );
document.selection.Replace( "<Font Color=Blue>", "^4", eeReplaceAll );
document.selection.Replace( "<Font Color=Aqua>", "^5", eeReplaceAll );
document.selection.Replace( "<Font Color=Fuchsia>", "^6", eeReplaceAll );
document.selection.Replace( "<Font Color=White>", "^7", eeReplaceAll );
document.selection.Replace( "<Font Color=#E08000>", "^8", eeReplaceAll );
document.selection.Replace( "<Font Color=#FF7F00>", "^8", eeReplaceAll );
document.selection.Replace( "<Font Color=Gray>", "^9", eeReplaceAll );
document.selection.Replace( "<Font Color=#7F7F7F>", "^9", eeReplaceAll );
document.selection.Replace( "^", "say \"", eeFindReplaceRegExp | eeReplaceAll );
document.selection.Replace( "$", "\";vstr wwait", eeFindReplaceRegExp | eeReplaceAll );

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

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)