notsleeves / crop-crop

Test case for summer school MTC.Teta (Backend Dev.)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Greetings, traveller

Второй этап отбора на направление «Бэкенд разработка» в Летнюю школу МТС.Тета.

Сrop-crop-resize-resize

В качестве задания предлагается выполнить проект «crop-crop». Эта утилита позволит ресайзить изображение для остальных сервисов МТС: изменение изображений рекламных баннеров, превью для альбомов и обложки фильмов в маленьком разрешении и другие.

Используемые технологии

  • Код приложения пишется на Java.
  • Библиотеки, которые можно использовать:
    • Работа с консольными параметрами picocli.info.
    • Работа с изображением thumbnailator. Рекомендуем взять из неё функции обрезки и изменения параметров картинки.
    • Библиотека для работы с изображениями и видео marvin project. Рекомендуем взять из неё GaussianBlur и Crop.
    • Библиотека, необходимая для запуска тестов junit5.

Интерфейс взаимодействия

Version: name version https://gitlab.com/link/
Available formats: jpeg png webp
Usage: convert input-file [options ...] output-file
Options Settings:
  --resize width height       resize the image
  --quality value             PEG/PNG compression level
  --crop width height x y     сut out one or more rectangular regions of the image
  --blur {radius}             reduce image noise and reduce detail levels 
  --format "outputFormat"     the image format type

Описание параметров

--resize width height — уменьшает, увеличивает картинку или задает необходимый размер для изображения. Пример в документации.

--quality value — задает уровень сжатия файлов JPEG / PNG. Форматы изображений могут быть JPEG и PNG, качество от 1 (самое низкое качество изображения и самое высокое сжатие) до 100 (лучшее качество, но наименее эффективное сжатие). Пример в документации.

--crop width height x y — Вырезает прямоугольную область изображения. Обработанное изображения должно иметь ширину(width) и высоту(height). Точка отсчета задаётся значениями x и y. Пример из документации.

--blur radius — добавляет размытие или увеличивает резкость. Пример в документации.

--format "outputFormat" — конвертирует изображение в "outputFormat". Параметр "outputFormat" может быть JPEG / PNG. Пример в документации.

Валидация входных параметров должна быть реализована.

Требования к проекту

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

Полная версия технического задания

Ты сможешь её найти по ссылке.

About

Test case for summer school MTC.Teta (Backend Dev.)


Languages

Language:Java 98.8%Language:Dockerfile 1.2%