Изменение цвета частиц, использующих изображения в Swing

У меня есть проект, использующий механизм частиц в Java Swing. Эти частицы используют изображение вместо базовой формы (изображение полностью черное с прозрачным фоном), и они совместно используют изображение, поэтому памяти мало. Когда изображение (BufferedImage) используется совместно, как я могу заставить частицы иметь разные цвета?

Я могу заставить это работать, если создам копию предварительно загруженного изображения и изменю черный цвет на нужный мне цвет, но тогда каждая частица имеет свое собственное изображение и занимает тонну памяти.

В худшем случае я, вероятно, переключусь на LWJGL или TWL, но у меня уже есть много контента в программе, который был сделан до движка частиц, который мне нужно будет переделать :/.


person Audiocrow    schedule 02.08.2014    source источник
comment
Должна ли каждая частица иметь свой цвет? Или будет, например, 10000 частиц с 10 цветами всего? Если у каждого должен быть свой цвет, это может стать немного сложнее. Возможно, вы могли бы предоставить изображение, загрузив его здесь.   -  person Marco13    schedule 03.08.2014
comment
Например, модель, приведенная в этом ответе на ваш предыдущий вопрос, использует всего шесть цветных изображений для произвольного числа частиц.   -  person trashgod    schedule 03.08.2014
comment
Вы должны попытаться расширить свои требования, чтобы получить лучший ответ. Вы исследовали фильтр Java 2D LookupOp? У вас должна быть возможность применить фильтр к части изображения, которую вы хотите визуализировать на лету.   -  person javajon    schedule 03.08.2014
comment
@trashgod прямо сейчас, без цвета, они делятся одним изображением в качестве легковесного шаблона. Я полагаю, что мог бы ограничить изменение цвета, но хранение 10 изображений на 1 изображение, которое мне изначально нужно было только для цвета, все еще кажется мне чрезмерным. И к javajon: даже с фильтром LookupOp все еще похоже, что мне нужно сохранить результат отфильтрованного изображения на самих частицах. С большим количеством частиц это все равно будет проблемой :/   -  person Audiocrow    schedule 03.08.2014
comment
Я думаю, @javajon имел в виду, что вы можете filter() отображать одно изображение во время рендеринга; собственное время paintComponent() посмотреть.   -  person trashgod    schedule 03.08.2014
comment
@javajon, насколько мне удалось выяснить, LookupOp не работает с индексированными изображениями, которыми всегда будут мои буферизованные изображения, поскольку они загружаются из файла. :/   -  person Audiocrow    schedule 04.08.2014