| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > шрифт в консоле и ASCII art, как побороть? |
| Автор: Artefact 25.2.2008, 14:48 | ||
Вчера возникла проблема с ASCII art'ом. Тема моя -> http://forum.vingrad.ru/forum/topic-197762/anchor-entry1424217/0.html. Вроде разобрался, после перевода картинки в псевдографику, надо в gedit уменьшить размер шрифта для нормального отображения картинки. Но как быть если у меня эта картинка часть консольного приложения, например есть код
Если я оставлю так, то выполняя данное приложение в консоле у меня размер картинки будет безумно большой. Как следует подправить код? Чтобы и картинка была нужных размеров и шрифт текста "Хотите увидеть картинку..." не портился? |
| Автор: Dronchik 25.2.2008, 16:53 |
| Artefact, можно заренее задать размер. То есть ставишь ограничение на размер. Если размер рисунка превышает допустимы можно уменьшать размер рисунка в n-ое количество раз. |
| Автор: Artefact 25.2.2008, 17:07 |
| Dronchik, а как это реализовать? Впервые с таким столкнулся... |
| Автор: Dronchik 25.2.2008, 17:42 |
| Artefact, извени, этим никогда не занимался и следовательно не знаю. Дал только алгоритм каким пользуюсь при программировании графики под директХ. Сорри |
| Автор: nickless 25.2.2008, 19:01 | ||
| Artefact, ты хочешь эти картинки динамически грузить и переводить в ASCII или просто нужно показать несколько картинок? Добавлено через 8 минут и 58 секунд Я тут нашел парочку программ, которыми можно конвертировать в ASCII, или по крайней мере посмотреть как они это делают. Например:
Смотри http://www.imagemagick.org/script/index.php, http://netpbm.sourceforge.net/, http://aa-project.sourceforge.net/aview/ |
| Автор: Artefact 25.2.2008, 19:14 |
| nickless, картинки находятся в отдельном текстовом файле уже в ASCII. Насчет динамически грузить и переводить не совсем понял. Да, картинки должны быть показаны когда пользователь согласиться просмотреть их: ifstream file_in("PsevdoPic.txt", ios::in); cout<<"Хотите увидеть картинку выполненную в ASCII графике?"; cout<<"1-да, 2-нет"<<endl; Они и показываются, но размер этой анси картинки слишком громадный, в текстовом редакторе решается все просто, я уменьшаю шрифт. Но как такое сделать в консоле я не знаю. |
| Автор: nickless 25.2.2008, 19:21 |
Я имел ввиду программно загрузить скажем png с помощью imagemagick, сконвертировать в ASCII aalib-ом и показать. Если надо просто показать картинку, то переключать шрифт в консоли и/или скалировать ASCII-art - имхо излишний геморрой, просто нужно сохранить картинку в ASCII с нужным размером. |
| Автор: Artefact 25.2.2008, 19:22 |
| nickless, да я уже конвертировал в анси, но на размер изображения влияет шрифт. Я к тому, что надо дописать в коде моем, чтобы я сам регулировал размер шрифта файла?Т.е. анси-картинка выводится с размером шрифта 12, а мне нужно чтобы было 5. Насчет программ спасибо, под никсы не нашел нормальных) Насчет сохранения анси в нужном размере, пытался, но не понимаю каким образом. |
| Автор: nickless 25.2.2008, 19:23 |
| Кстати в примере что я запостил до этого можно легко поменять ширину картинки (-width 80), размер конвертируется X x 2*Y pixel -> X x Y characters Добавлено через 1 минуту и 35 секунд У файла нет шрифта, там только сам текст, размер шрифта можно регулировать только там, где ты этот текст показываешь, или можно просто вывести больше/меньше букв. |
| Автор: Artefact 25.2.2008, 19:28 |
| Спасибо за разъяснения. А какой из этих трех программ вы воспользовались для конвертирвоания изображения? |
| Автор: Artefact 25.2.2008, 19:39 | ||
nickless,
P.S. С меня огромный жирный плюсик за помощь |
| Автор: nickless 25.2.2008, 19:57 |
imagemagick и netpbm С 99.9% вероятностью есть в менеджере пакетов, если нет, где-то в середине темы есть ссылки на офсайты. Добавлено через 2 минуты и 51 секунду aview тоже может сохранять, но только интерактивно и не сильно удобно. Кстати pbmtoascii (из пакета netpbm) насколько я понимаю может конвертировать только черно-белые картинки, так что может стоит немного поэкспериментировать с гимпом и aview. Добавлено через 3 минуты и 45 секунд И вообще это мало относится к программированию на C++ |
| Автор: Artefact 25.2.2008, 20:15 | ||
Через синаптик поставил imagemagick и netpbm. Далее консоль, набираю команду
В чем ошибся? |
| Автор: nickless 25.2.2008, 20:41 |
Странно... Какой дистр? Версия netpbm? |
| Автор: Artefact 25.2.2008, 22:09 | ||
Ubuntu 7.10, версия netpbm 2:10.0-11...
Простите, я сначала думал что возможно решение в коде, поэтому и запостил сюда. Так, пытался скачать отдельно пакеты которые он говорит, что ему нужны, но их нигде нет, все ссылки говорят что идет в комплекте с netbpm. |
| Автор: nickless 26.2.2008, 17:56 | ||
Странная какая-то версия... 10.0? 10.11?
У меня 10.41.0 Попробуй найти версию поновее. |
| Автор: Artefact 28.2.2008, 22:46 |
| nickless, спасибо за помощь. Я вам очень благодарен. В итоге я начал изучать OpenGL. |