Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 

Repository files navigation

Дарова!

Сегодня мы начнем погружаться в промышленное программирование. К сожалению, грузить вас двоих теорией мне сразу не хочется. Лучше начнем с хардкорный практики, в ходе которой вы начнете чето понимать. В ходе мозгового штурма вам необходимо выдать проект: консольное приложение, которое переводит изображение в ASKII картинку через консоль посредством сил библиотек Qt. Для тех, кто войдет во вкус, можно добавить поддержку gif-изображений и защиту от дурака (работа с исключениями).

Правила:

  1. Вы можете пользоваться любыми источниками, даже взять за основу готовое решение с гита, если найдете.
  2. По любым вопросам, можно обращаться ко мне. Но общность ответа будет зависеть от отобщности вопроса.
  3. Дэдлайн я не хочу ставить, потому что сейчас надо кутить. Но если это будет писаться больше недели, то стремно.

Техническое задание

Вам необходимо разработать приложение, которое запускается в консоле и в аргументах принимает путь к файлу - изображению. Далее файл переводится в таблицу из ASKII символов и печатается в консоли. Размеры выходного изображение могут отличаться от исходных. Исользуем Qt. Данное тз подразумевает, что вы владеете небазовыми знаниями языка С++.

Для продвинутых:

  1. Программа может обрабатывать gif файлы, анимируя изображение.
  2. Программа выдаст ошибку, если не удалось обработать изображение.

Пример программы

Сегодня написал этот проект и пример работы такой программы прикрепил на диск ниже. https://disk.yandex.ru/i/MpXJ_YpZXuU0VA

Зачем все это нужно?

Хз, зачем я это написал. Если тебе удасться поштурмовать мозгом, облазить форумы в надежде найти нужный код, переписать этот код под поставленную задачу, то это круто. Также, в процессе написания этого дерьма можно тренироваться задавать правильные вопросы, правильно формулировать запросы гуглу. Получить много теории и чуть практики тоже получится, если немного порыться в документациях. Удачи!

Установка Qt

Я не настолько тиран, чтобы просто дать зачине, которое невозможно сразу сделать. Я дам такое задание и дам напутственные слова).

  1. Качаем онлайн инсталлятор qt. Дам ссылку, но лучше сам найди.
  2. Чтобы установить это заморское ПО, понадобится VPN (ищи сам).
  3. В инсталлятор следуем подсказкам и устанавливаем только qt for desktop версии ±5.15.0 (6 не надо).

Создаем проект

В главном меню тыкаемся... А хотя, разбирайтесь сами. Если что-то не получается, либо гуглим, либо я помогу.

Подсказки

  1. Сама идея перевода изображения в ASKII заключается в том, чтобы заменить каждый пиксель на символ, плотность которого пропорциональна яркости цвета пикселя (гуглим HSL). Потребуется подобрать набор символов, которые вы хотите использовать.
  2. Для хранения изображения рекомендую использовать класс QImage. С помощью него можно изменить размер изображения и обратиться к пикселю по координатам. А из пикселя уже получить ту самую яркость.
  3. Для того, чтобы работать с графикой (то есть QImage, QPixel), в .pro файле нужно подключить gui (QT += gui).
  4. Чтобы запустить приложение из консоли с параметрами, в функции main() нужно принять параметры argc и argv, которые и отвечают за аргументы.

Для крутых:

  1. Для обработки gif можно использовать QMovie. Для этого придется заменить QCoreApplication на QGuiApplication.
  2. Чтобы проверить, открылось ли изображение, можно использовать метод isNull(). Если он вернул истину, можно выбрасывать исключение.

Заключение

Скажу, что написать это самостоятельно сразу невозможно. Поэтому спрашивайте все, с момента установки, до развертывания. Я бы мог здесь оставить исходники к тому, что я написал, но толку от этого будет мало.

PS

В интернете есть ответы на все интересующие вас вопросы, там даже есть, скорее всего, готовые решения. ГО ПОШТУРМИМ!!!!!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages