benfry / processing4

Processing 4.x releases for Java 17
https://processing.org
Other
1.35k stars 237 forks source link

Blur filter throws exception if extent is too large relative to image size #723

Open jlstrecker opened 1 year ago

jlstrecker commented 1 year ago

Description

When filter(BLUR, param) is called with param above a certain amount relative to the image size, an ArithmeticException is thrown for division by zero.

Expected Behavior

Image is blurred the specified amount.

Current Behavior

java.lang.ArithmeticException: / by zero
    at processing.core.PImage.blurARGB(PImage.java:1318)
    at processing.core.PImage.filter(PImage.java:991)
    at processing.opengl.PGraphicsOpenGL.filter(PGraphicsOpenGL.java:6037)
    at processing.core.PApplet.filter(PApplet.java:15081)
    at BlurTest.draw(BlurTest.java:25)
    at processing.core.PApplet.handleDraw(PApplet.java:2094)
    at processing.opengl.PSurfaceJOGL$DrawListener.display(PSurfaceJOGL.java:840)
    at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:692)
    at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:674)
    at jogamp.opengl.GLAutoDrawableBase$2.run(GLAutoDrawableBase.java:443)
    at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1293)
    at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1147)
    at com.jogamp.newt.opengl.GLWindow.display(GLWindow.java:782)
    at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:81)
    at com.jogamp.opengl.util.AnimatorBase.display(AnimatorBase.java:453)
    at com.jogamp.opengl.util.FPSAnimator$MainTask.run(FPSAnimator.java:178)
    at java.base/java.util.TimerThread.mainLoop(Timer.java:566)
    at java.base/java.util.TimerThread.run(Timer.java:516)

Steps to Reproduce

Run this sketch:

void setup() {
  size(100, 100, P3D);
}

void draw() {
  background(0);
  ellipse(50, 50, 80, 80);
  filter(BLUR, 29);  // 28 is OK, 29 throws exception
}

Your Environment

Possible Causes / Solutions

SaumyaKarnwal commented 11 months ago

Can u assign this to me ? I might be able to fix this !