code: protected void onRender() {
  
  		MarkupStream markupStream = findMarkupStream();
  		try {
  			final ComponentTag openTag = markupStream.getTag();
  			final ComponentTag tag = openTag.mutable();
  			final IValueMap attributes = tag.getAttributes();
  
  			String src = (String) attributes.get("src");
  			boolean base64 = Boolean.valueOf((String) attributes.get("base64"))
  					.booleanValue();
  
  			// src is mandatory
  			if (null == src) {
  				throw new IllegalStateException(
  						"The src attribute is mandatory for this Jawr tag. ");
  			}
  
  			// Retrieve the image resource handler
  			ServletWebRequest servletWebRequest = (ServletWebRequest) getRequest();
  			HttpServletRequest request = servletWebRequest
  					.getContainerRequest();
  			BinaryResourcesHandler binaryRsHandler = (BinaryResourcesHandler) WebApplication
  					.get().getServletContext()
  					.getAttribute(JawrConstant.BINARY_CONTEXT_ATTRIBUTE);
  
  			if (null == binaryRsHandler)
  				throw new IllegalStateException(
  						"You are using a Jawr image tag while the Jawr Image servlet has not been initialized. Initialization of Jawr Image servlet either failed or never occurred.");
  
  			final Response response = getResponse();
  
  			src = ImageTagUtils.getImageUrl(src, base64, binaryRsHandler, request,
  					getHttpServletResponseUrlEncoder(response));
  
  			Writer writer = new RedirectWriter(response);
  
  			this.renderer = RendererFactory.getImgRenderer(
  					binaryRsHandler.getConfig(), isPlainImage());
  			this.renderer.renderImage(src, attributes, writer);
  
  		} catch (IOException ex) {
  			LOGGER.error("onRender() error : ", ex);
  		} finally {
  
  			// Reset the Thread local for the Jawr context
  			ThreadLocalJawrContext.reset();
  		}
  
  		markupStream.skipComponent();
  	}
docs: /*
  (non-Javadoc)
  
  @see org.apache.wicket.MarkupContainer#onRender()