Giter Club home page Giter Club logo

asciimg's Introduction

Задание 1. (5 балла)

  • Измените функцию processPixel, чтобы она использовала массив symbols(равномерно от 0 до 255 по цвету)
  • Добавьте возможность работы с изображениями типа jpeg. Для этого добавьте сайд-эффект импорт "image/jpeg"
  • Проверьте себя, запустив на roflan.jpg

Должно получиться:

#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#
%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@%#**++*#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@#+=-----=*#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@*=------=#@@%*++==#@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@#=-------+@%*=-------=#@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@*--------+%*=---=+=-=+=-+@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@%+--=------+=----+:.....=+-=#@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@%==*%#=----------+:.......=+--#@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@%=*@%*-----------+-.........+=--#@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@+*@#=------------+. ..-#-...==---#@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@**@*-------------==... +@+...-=---=#@@@@@@@@@@@@@@
@@@@@@@@@@@@@%*@+---*#*=------:=- ...::....-=----=%@@@@@@@@@@@@@
@@@@@@@@@@@@@+%+=++**%@#--------+. .... ...===----+@@@@@@@@@@@@@
@@@@@@@@@@@@***++-...:=%*-------+:........:+==-----#@@@@@@@@@@@@
@@@@@@@@@@@@++=+. .  ..:%=------=+.....  .+=*=-----=%@@@@@@@@@@@
@@@@@@@@@@@#==+:. .==. .+#-------=+:....:+=**-------*@@@@@@@@@@@
@@@@@@@@@@@+--+....#@:. :#=-----===+======*%=--------%@@@@@@@@@@
@@@@@@@@@@%---+. . -=....*#------+#*+===*%@+---------+@@@@@@@@@@
@@@@@@@@@@*---+:. .    ..*#+------=#@@@@@@*-----------%@@@@@@@@@
@@@@@@@@@@=----*:. .. ..+==#=----=+=+#%%#=------------*@@@@@@@@@
@@@@@@@@@%-----=+=:...-++--**-----=**+=---------------=@@@@@@@@@
@@@@@@@@@#-------=+++++=---=#=-----=*%%#####*=---------%@@@@@@@@
@@@@@@@@@*------*+==++=-----+%%=-----=+#%%%*=----------*@@@@@@@@
@@@@@@@@@+------+%@#*+-------%%=-----------------------+@@@@@@@@
@@@@@@@@@=-------===---------==------------------------=%@@@@@@@
@@@@@@@@@=----=*+=--==+*=-------------------------------%@@@@@@@
@@@@@@@@%-----=*@@%%%#+=--------------------------------#@@@@@@@
@@@@@@@@%-------=+*+=-----------------------------------*@@@@@@@
@@@@@@@@%-----------------------------------------------+@@@@@@@
@@@@@@@@%------------------------------------------=+---+@@@@@@@
@@@@@@@@%-------------------------------------=+*#%%#=--=@@@@@@@
@@@@@@@@%=--------------------------------=+#%%%#+-:----=@@@@@@@
@@@@@@@@@=----------------------------=+#%%%*=-:....:---=@@@@@@@
@@@@@@@@@=-----------------------=+*#%%%*=:.. . .....---=@@@@@@@
@@@@@@@@@+-------------------=+*%%@#*=:...........  .---=@@@@@@@
@@@@@@@@@*---------------=+#%%%#+-:........  .. ....:---+@@@@@@@
@@@@@@@@@#----------=+*#%%#*=-:....  . . .  .. . ...:---+@@@@@@@
@@@@@@@@@@=-----=+#%%%#+-:. ..       ..  .  .. . ...=---*@@@@@@@
@@@@@@@@@@+-----*#*=-.. .  ..  .  .. .... ..  . .:..=---#@@@@@@@
@@@@@@@@@@*-----=......        ..  ..  . .  ...-:..:=---%@@@@@@@
@@@@@@@@@@%------:... ....  ...  .   ..  .  :=-....=+--=@@@@@@@@
@@@@@@@@@@@+------.... .     .    ...  . .-+=:... .*=--+@@@@@@@@
@@@@@@@@@@@#-----+:.. . ...   ...     .:=++:.... .:*---#@@@@@@@@
@@@@@@@@@@@@=----+=.....   ...   .. :=+*=: .  . ..=+--=%@@@@@@@@
@@@@@@@@@@@@*-----*:..... ..   ..:=**+-. .  .. ...+=--+@@@@@@@@@
@@@@@@@@@@@@@=----=*... . ...:=+*+=-.  ....  . ..:+---#@@@@@@@@@
@@@@@@@@@@@@@#-----*=...::-===--...  .... .. .. .==--=@@@@@@@@@@
@@@@@@@@@@@@@@+----=#-..::........  ..  .. .....:=---#@@@@@@@@@@
@@@@@@@@@@@@@@%=----=*:.  ..   .  ..   . .    ..----+@@@@@@@@@@@
@@@@@@@@@@@@@@@#-----=+. ...  . ..        . .. -=---%@@@@@@@@@@@
@@@@@@@@@@@@@@@@+-----==.....  ..   ... ..  ..:=---*@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@+------=:..  ..  ..   ......:=---+@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@+------=-:  ....      . ..-=---=@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@+-------==:... ... ....:==---=%@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@*--------=-:... ....:=+=---+%@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@#=--------===----==+=----+@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@%+------------==------=#@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@#+----------------=*%@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@%*=-----------=#%@@@@@@@@@@@@@@@@@@@@@
%@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#*+++++*#%@@@@@@@@@@@@@@@@@@@@@@@%
#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#

Задание 2. (1 балла)

  • Добавьте флаг -o. Если флаг указан, то вывод должен быть перенаправлен в файл, указанный в флаге. Если флаг не передан, то должен быть использован стандартный поток вывода.

Должно получиться:

./asciimg  -o roflan.txt roflan.jpg

Задание 3. Масштабирование. (2 балла)

  • Добавьте булевый флаг -noscale, по умолчанию false.

  • Добавьте флаги -w и -h, для указания размера изображения.

    w = 200, h = 40 по-умолчанию.

  • Добавьте логику масштабирование изображения:

    Если флаг -o не передан и флаг -noscale не передан, то изображение должно быть отмасштабировано до размеров w и h.

    Для масштабирования воспользуйтесь функцией scale из файла main.go.

    Для установки зависимостей программы, в папке проекта напишите:

    go mod tidy
    go mod download
  • Дополнительно(+1 балл): В качестве параметров масштабирования используйте размер терминала:

    Вы можете использовать внешний пакет для получения размеров терминала:

Доп задание 1. Добавить цвета (+1 балл):

  • Добавьте бинарный флаг -c. По умолчанию true. Флаг должен работать только при выводе на консоль.
  • Если данный флаг передан, то раскрасьте изображение с помощью консольных цветов:

Доп задание 2. Дополнительная оценка.

Напишите обратный конвертер из ascii-изображения в ЧТ картинку в формате png.

Приложение реализуйте через отдельный файл в проекте.

Приложение должно принимать на вход текстовый файл и выдавать черно-белую картинку в PNG.

./deascii roflan.txt -o roflan.png

Подсказка: для удобной работы, возможно вы захотите реализовать интерфейс image.Image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.