У меня есть этот объект BufferedImage, который гарантированно содержит только один цвет. Я использую его для отображения образца изображения, чтобы показать размер, форму и твердость кисти в инструменте рисования. Я попробовал несколько различных реализаций размытия для твердости ... последнее, что, кажется, работает довольно хорошо, это Stack Filter , написанный Romain Guy.
У меня 2 проблемы.
Быстрее на 1 канале, чем 4?: Ни один из фильтров размытия, которые я пробовал, кажется достаточно быстрым ... Я понимаю, что этот вопрос задавался ранее (и я Я не совсем готов попробовать получить FFTW из C), но мне интересно, есть ли способ выполнить размытие, используя ТОЛЬКО биты альфа-канала? Изображение содержит только один цвет, поэтому в любом случае ни один из других битов не изменится между точками, и я думаю, что это сократит количество вычислений для размытия примерно до 25% всей операции размытия, и я полагаю, что это может привести к Заметное улучшение производительности? Я не смог найти какую-либо информацию об этом, пытаясь через веб-поиск.
Устранение темного ореола: Каждый раз, когда я пробую другой алгоритм размытия, мне приходится переписывать его, чтобы избавиться от темной тени вокруг фигуры, вызванной размытием в "черном" из бесцветные пиксели, где еще ничего не нарисовано. Я читал об этом, и я использую (насколько мне известно) типы изображений INT_ARGB_PRE, которые я помню, читая в качестве решения этой проблемы. Я что-то упустил в этом решении? Нужно ли предварительно отформатировать изображение, чтобы оно интерпретировало все пустые пиксели как белые, а не черные?
Спасибо!