Хабр Курсы для всех
РЕКЛАМА
Большая витрина: от крупнейших школ до частных авторов. Сравнивайте по цене, длительности, формату и выбирайте самый подходящий курс!

...
Приглашаю мастеров своего дела к себе на Гитхаб.
Там много примеров, исходников и рабочих проектов.
https://github.com/BitcordMessenger
Есть пару возможностей для оптимизации. Например, getPixel очень дорогая штука. Мы на каждый вызов ходите в нативную кучу и перекидываете данные в кучу jvm. Это реально дорого и может вызвать джанки во время нарезки. Думаю это может быть даже дороже чем разом сходить с помощью getPixels
Плюс думаю что лучше использовать массив, а не список, для лучшей локальности данных, а может даже и распилить класс на массивы примитивов, каждый в отдельности. В теории это должно быть быстрее
«Щелчок Таноса» или искусство в разработке