code: @Override
  	public void paint(Graphics g) {
  		if (bio == null && alpha == 1 || !(g instanceof Graphics2D)) {
  			super.paint(g);
  			return;
  		}
  
  		final Graphics2D g2 = (Graphics2D) g.create();
  
  		Rectangle clipBounds = g2.getClipBounds();
  
  		if (clipBounds == null) {
  			clipBounds = new Rectangle(getSize());
  		}
  		if (clipBounds.isEmpty()) {
  			return;
  		}
  
  		final boolean isConvolveOp = bio instanceof ConvolveOp;
  
  		if (isConvolveOp) {
  			final ConvolveOp cop = (ConvolveOp) bio;
  			final Kernel kernel = cop.getKernel();
  			clipBounds.grow(kernel.getWidth() / 2, kernel.getHeight() / 2);
  		}
  
  		createTempImagesIfNecessary(clipBounds);
  
  		final Graphics2D bufg = (Graphics2D) tempSrc.getGraphics();
  		bufg.translate(-clipBounds.x, -clipBounds.y);
  		bufg.setClip(clipBounds);
  		super.paint(bufg);
  		bufg.dispose();
  
  		applyFilter(g2, clipBounds, isConvolveOp);
  	}
docs: {@inheritDoc}