Использование gaussianBlur Java
есть входное изображение ImageToProcess типа BufferedImage, которое я хочу обработать с использованием библиотеки GaussianBlur:
MarvinImage InputImage = new MarvinImage(ImageToProcess);
MarvinImage OutputImage = new MarvinImage();
GaussianBlur gaussianBlur = new GaussianBlur();
gaussianBlur.load();
gaussianBlur.setAttribute("radius", resizerApp.BlurRadius);
gaussianBlur.process(OutputImage, InputImage);
MarvinImageIO.saveImage(OutputImage,"image.jpg");
В итоге я получаю такую ошибку (425 - размер изображения в пикселях):
java.lang.ArrayIndexOutOfBoundsException: Index 425 out of bounds for length 425
Я пробовал еще вызвать обработку изображения следующим образом:
MarvinPluginCollection.gaussianBlur(InputImage, OutputImage, resizerApp.BlurRadius);
Но ошибка не исчезает от этого. Подскажите пожалуйста, как ее устранить.
Ответы (1 шт):
Автор решения: devleifr
→ Ссылка
Ты перепутал местами аргументы. Правильно так:
gaussianBlur.process(inputImage, outputImage);
А лучше всего не создавать ещё одну переменную OutputImage, а записать обработанное изображение в исходную переменную:
gaussianBlur.process(inputImage.clone(), inputImage);
MarvinImageIO.saveImage(inputImage,"image.jpg");
Покажи, как у тебя ImageToProcess создаётся. Возможно, ещё там ошибки есть. А также какое значение хранится в resizerApp.BlurRadius?
(Я с профиру, если что :D)