- Измените функцию processPixel, чтобы она использовала массив symbols(равномерно от 0 до 255 по цвету)
- Добавьте возможность работы с изображениями типа jpeg. Для этого добавьте сайд-эффект импорт "image/jpeg"
- Проверьте себя, запустив на roflan.jpg
Должно получиться:
#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#
%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@%#**++*#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@#+=-----=*#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@*=------=#@@%*++==#@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@#=-------+@%*=-------=#@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@*--------+%*=---=+=-=+=-+@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@%+--=------+=----+:.....=+-=#@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@%==*%#=----------+:.......=+--#@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@%=*@%*-----------+-.........+=--#@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@+*@#=------------+. ..-#-...==---#@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@**@*-------------==... +@+...-=---=#@@@@@@@@@@@@@@
@@@@@@@@@@@@@%*@+---*#*=------:=- ...::....-=----=%@@@@@@@@@@@@@
@@@@@@@@@@@@@+%+=++**%@#--------+. .... ...===----+@@@@@@@@@@@@@
@@@@@@@@@@@@***++-...:=%*-------+:........:+==-----#@@@@@@@@@@@@
@@@@@@@@@@@@++=+. . ..:%=------=+..... .+=*=-----=%@@@@@@@@@@@
@@@@@@@@@@@#==+:. .==. .+#-------=+:....:+=**-------*@@@@@@@@@@@
@@@@@@@@@@@+--+....#@:. :#=-----===+======*%=--------%@@@@@@@@@@
@@@@@@@@@@%---+. . -=....*#------+#*+===*%@+---------+@@@@@@@@@@
@@@@@@@@@@*---+:. . ..*#+------=#@@@@@@*-----------%@@@@@@@@@
@@@@@@@@@@=----*:. .. ..+==#=----=+=+#%%#=------------*@@@@@@@@@
@@@@@@@@@%-----=+=:...-++--**-----=**+=---------------=@@@@@@@@@
@@@@@@@@@#-------=+++++=---=#=-----=*%%#####*=---------%@@@@@@@@
@@@@@@@@@*------*+==++=-----+%%=-----=+#%%%*=----------*@@@@@@@@
@@@@@@@@@+------+%@#*+-------%%=-----------------------+@@@@@@@@
@@@@@@@@@=-------===---------==------------------------=%@@@@@@@
@@@@@@@@@=----=*+=--==+*=-------------------------------%@@@@@@@
@@@@@@@@%-----=*@@%%%#+=--------------------------------#@@@@@@@
@@@@@@@@%-------=+*+=-----------------------------------*@@@@@@@
@@@@@@@@%-----------------------------------------------+@@@@@@@
@@@@@@@@%------------------------------------------=+---+@@@@@@@
@@@@@@@@%-------------------------------------=+*#%%#=--=@@@@@@@
@@@@@@@@%=--------------------------------=+#%%%#+-:----=@@@@@@@
@@@@@@@@@=----------------------------=+#%%%*=-:....:---=@@@@@@@
@@@@@@@@@=-----------------------=+*#%%%*=:.. . .....---=@@@@@@@
@@@@@@@@@+-------------------=+*%%@#*=:........... .---=@@@@@@@
@@@@@@@@@*---------------=+#%%%#+-:........ .. ....:---+@@@@@@@
@@@@@@@@@#----------=+*#%%#*=-:.... . . . .. . ...:---+@@@@@@@
@@@@@@@@@@=-----=+#%%%#+-:. .. .. . .. . ...=---*@@@@@@@
@@@@@@@@@@+-----*#*=-.. . .. . .. .... .. . .:..=---#@@@@@@@
@@@@@@@@@@*-----=...... .. .. . . ...-:..:=---%@@@@@@@
@@@@@@@@@@%------:... .... ... . .. . :=-....=+--=@@@@@@@@
@@@@@@@@@@@+------.... . . ... . .-+=:... .*=--+@@@@@@@@
@@@@@@@@@@@#-----+:.. . ... ... .:=++:.... .:*---#@@@@@@@@
@@@@@@@@@@@@=----+=..... ... .. :=+*=: . . ..=+--=%@@@@@@@@
@@@@@@@@@@@@*-----*:..... .. ..:=**+-. . .. ...+=--+@@@@@@@@@
@@@@@@@@@@@@@=----=*... . ...:=+*+=-. .... . ..:+---#@@@@@@@@@
@@@@@@@@@@@@@#-----*=...::-===--... .... .. .. .==--=@@@@@@@@@@
@@@@@@@@@@@@@@+----=#-..::........ .. .. .....:=---#@@@@@@@@@@
@@@@@@@@@@@@@@%=----=*:. .. . .. . . ..----+@@@@@@@@@@@
@@@@@@@@@@@@@@@#-----=+. ... . .. . .. -=---%@@@@@@@@@@@
@@@@@@@@@@@@@@@@+-----==..... .. ... .. ..:=---*@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@+------=:.. .. .. ......:=---+@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@+------=-: .... . ..-=---=@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@+-------==:... ... ....:==---=%@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@*--------=-:... ....:=+=---+%@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@#=--------===----==+=----+@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@%+------------==------=#@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@#+----------------=*%@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@%*=-----------=#%@@@@@@@@@@@@@@@@@@@@@
%@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#*+++++*#%@@@@@@@@@@@@@@@@@@@@@@@%
#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#
- Добавьте флаг -o. Если флаг указан, то вывод должен быть перенаправлен в файл, указанный в флаге. Если флаг не передан, то должен быть использован стандартный поток вывода.
Должно получиться:
./asciimg -o roflan.txt roflan.jpg
-
Добавьте булевый флаг -noscale, по умолчанию false.
-
Добавьте флаги -w и -h, для указания размера изображения.
w = 200, h = 40 по-умолчанию.
-
Добавьте логику масштабирование изображения:
Если флаг -o не передан и флаг -noscale не передан, то изображение должно быть отмасштабировано до размеров w и h.
Для масштабирования воспользуйтесь функцией scale из файла main.go.
Для установки зависимостей программы, в папке проекта напишите:
go mod tidy go mod download
-
Дополнительно(+1 балл): В качестве параметров масштабирования используйте размер терминала:
Вы можете использовать внешний пакет для получения размеров терминала:
- Добавьте бинарный флаг -c. По умолчанию true. Флаг должен работать только при выводе на консоль.
- Если данный флаг передан, то раскрасьте изображение с помощью консольных цветов:
- При выводе на экран используйте пакет https://github.com/fatih/color или анологичный.
Напишите обратный конвертер из ascii-изображения в ЧТ картинку в формате png.
Приложение реализуйте через отдельный файл в проекте.
Приложение должно принимать на вход текстовый файл и выдавать черно-белую картинку в PNG.
./deascii roflan.txt -o roflan.png
Подсказка: для удобной работы, возможно вы захотите реализовать интерфейс image.Image