1. Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.

    Скрыть объявление
  2. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

ASCII convert

Автор: Dimouse · 3 сен 2013 · ·
  1. Написал программку, которая конвертирует обычную картинку в ascii. Если кому надо - могу допилить и выложить. Не знаю, есть ли что-то такое готовое, наверняка есть, но интересно было придумать алгоритм самому.

    Изначально хотелось добавить поддержку подобных картинок в текстовые игры (я снова взялся за это), но выяснилось, что pdcurses может только 16 цветов, а в расширении pdcurses под названием win32a что-то намудрили с шрифтами, да и вообще много переделали...

    [​IMG]

    Другой диапазон символов:

    [​IMG]

Комментарии

  1. A.P.$lasH
    Что-то я к ночи совершенно не понимаю твою математику. Пускай те конверты превышают 80x25 - делались для панорамы, но палитра на них честная и всё, что мешает тебе, если я правильно понимаю, это разрешение. Даже если не извращаться с подбором символов, а их можно было бы и перебрать по усреднённой яркости, даже если рисовать одним только 0xdc (код символа), это уже увеличивает вертикальное разрешение вдвое.

    Я не знаком с библиотечкой, которую ты выбрал для своих игр, но если ты взял её ради кроссплатформы, дело десятое. Если нет, то почему не задействовать текстовый режим с более высоким разрешением (задействовать самому, отказавшись от либы, если она такое не поддерживает)?
  2. Dimouse
    A.P.$lasH, если интересно, я могу пояснить алгоритм, по которому я работаю. Но в общих чертах примерно так, как ты объяснил.

    Шрифт генерировать, это ты пожалуй загнул:) Но в любом случае это не вариант, так как шрифт я хотел бы использовать свой стандартный. И разрешение тоже не хотел бы менять (хотя программа может). В любом случае каждый символ будет занимать 8 на 16 пикселей, так будет только увеличиваться размер экрана. И кроме того, эта фигня планировалась для того, чтобы можно было подключить иллюстрации к текстовому квесту, который я сделал. Но от этой идеи я потихоньку отказываюсь, так как уже понял, что иллюстрации будут так себе, мягко говоря.

    А тем временем я таки смог в текстмоде отобразить мою картинку через модифицированный pdcurses. Надо только шрифт выбрать правильный и кириллицу ему указать в меню. Хотя всё равно, если внимательно посмотреть, некоторые символы там не такие, как у меня в оригинальной картинке сверху (она сделана по-другому).

    Программа: http://dimouse.ru/data/ascii.rar
  3. INHELLER
    Ээээ... Чё-то я нифига не понял. При чём тут ASCII арт? В плане, на картинках скорее фон с еле проглядывающими буквами. Почему EGA палитра превращается в 4 на 4 цвета? И не было бы проще сделать конвертер в тру ASCII арт?
  4. Steel Rat
    Мне кажется - не проще, и даже сильно сложнее.
  5. Dimouse
    Да легко - оставить только символы без фона и только самые яркие (отличающиеся от фона). Но мне такое не нужно.
  6. Steel Rat
    Ну, не так уж и легко.
    Код:
      .---.
     /     \
    
    Попробуй сделать алгритм, который нарисует дугу символами. Это что касается ТруЪ. А не просто насыщенность символа чёрным.
  7. Dimouse
    Steel Rat, так насыщенность (и вообще цвет) отключаем, а из символов оставляем только отмеченные тобой палочки и точки. Алгоритм сам подберет нужные.
  8. A.P.$lasH
    Ну почему же, когда ты разбиваешь изображение на блоки по 8x16, собираясь их сравнивать с начертанием системного шрифта, у тебя уже получается готовый шрифт.

    [​IMG]

    Да, количество символов придётся уменьшить до 256, но с готовыми глифами результат всё равно будет лучше, чем после подстановки системных. То же самое усреднение, только ты не случайными совпадениями будешь располагать, а близкими к идеалу аналогами - сам же их и соберёшь на основе своей картинки.

    Почему, я же говорю, даже если использовать только 0xdc (или 0xdf, неважно) у тебя будет сразу два символа на одну позицию. Но мы же говорим о том, чтобы матрицами символов заполнить эти позиции, а это 8x16 для каждой позиции - какой же там один символ? Там максимум два цвета будет на одну позицию, это да, но для того же мы чёрно-белую матрицу и создаём, чтобы дополнить картинку. Потому и свой шрифт даст лучшие результаты. А загружать его в знакогенератор только на момент вывода картинки - почему нет?

    Наконец, полотно с теми конвертами скроллилось (панорамировалось), можно же и для вывода иллюстраций в игре такое сделать.

    И разрешение почему не поменять?

    [​IMG]

    Это и для работы приветствовалось (на экране мой Волков), а для игры и подавно простительно.

    Ладно, без конкретных действий с моей стороны это всё пустой звук, конечно, а я за это в ближайшее время не сяду.

    Но чтобы не быть в этой ситуации совсем уж бесполезным, ещё такой вопрос - а почему бы не подобрать здесь подходящий движок:

    http://www.ifarchive.org/

    ...чтобы и текст, и твои иллюстрации выводил? Ведь судя по использованию PDCurses, ты не собираешься переписывать движок самостоятельно.

    [​IMG]
  9. Dimouse
    A.P.$lasH,
    Не, я понимаю, что это наверное можно сделать, но я пока не понимаю как. Слишком нечеткая задача - слишком много вариантов, я не понимаю, как подобрать символы, наиболее подходящие к данному случаю. С предопределенным шрифтом проще - сравниваем каждый символ последовательно с каждой областью 8 на 16 и готово. Твоя картинка не канает, так как там, похоже, все символы разные.

    Один символ в смысле, что только один на каждую область 8 на 16. Да, можно размер шрифта уменьшить (что через несколько подобных шагов приведет нас к одному пикселю) и т.д., но это не то, что надо. Тут не максимальное приближение к оригиналу нужно, а наоборот. Есть заданные условия (символы 8 на 16, разрешение 80 на 25), от них и решаем задачу.

    У меня свой движок. PDCurses - это библиотека для ввода-вывода, враппер над SDL (в случае Винды во всяком случае)
  10. Dimouse
    Блиин! Там реально можно вставить фоновую картинку без всякой псевдографики!
Чтобы оставить комментарий просто зарегистрируйтесь и станьте участником!
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление