Skip to content

Rznov/java-is-2020

 
 

Repository files navigation

Домашние задания по курсу "Язык программирования Java"

Домашнее задание 1. Обработка изображений

Ваша задача разработать реализации интерфейсов ImageConverter и ConvolutionProvider и создать их в методах impl.image.ImageConverterFactory.getInstance и impl.image.ConvolutionProviderFactory.getInstance соответственно.

ImageConverter должен уметь превращать Color[][] в int[][] и обратно, где int будет хранить в себе данные о цвете в таком виде:

  • 0-7 биты хранят информацию о голубом цвете (blue),
  • 8-15 биты хранят информацию о зеленом цвете (green),
  • 16-23 биты хранят информацию о красном цвете (red),
  • 24-31 биты хранят информацию о прозрачности (alpha).

ConvolutionProvider должен уметь применять операцию свертки к данной картинке, используя ядро (гарантируется, что размерности ядра > 0).

  • Применять операцию свертки следует к каждому цвету отдельно.
  • Размер изображения меняться не должен.
  • Если при применении свертки, элемент ядра выходит за пределы картинки, следует считать, что red, green, blue = 0.
  • alpha всегда оставлять равной 255.
  • После каждого умножения значения цвета на элемент ядра следует производить округление к 0.

В пакете impl.image представлен класс ImageUtil его методы writeOutputImage, readOriginImage можно использовать, чтобы записывать картинки в папку resources/image/output и читать картинки из папки resources/image/origin. С их помощью можно смотреть, как операция свертки влияет на изображения.

  • Все картинки должны быть в формате png.
  • При указании имени картинки, формат также должен указываться (например pic1.png).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 61.3%
  • Kotlin 38.7%