我尝试使用JCaptcha组件来制作captcha,并且需要在相关servlet中编码图像。因此,根据JCaptcha教程,我应该使用JPEGImageEncoder,它与JDK7不兼容。我还能做什么?
下面是代码的相关部分:
ByteArrayOutputStream jpegOutputStream = new ByteArrayOutputStream();
BufferedImage challenge =
CaptchaServiceSingleton.getInstance().getImageChallengeForID(captchaId,
httpServletRequest.getLocale());
JPEGImageEncoder jpegEncoder =
JPEGCodec.createJPEGEncoder(jpegOutputStream);
jpegEncoder.encode(challenge);
} catch (IllegalArgumentException e) {
httpServletResponse.sendError(HttpServletResponse.SC_NOT_FOUND);
return;
} catch (CaptchaServiceException e) {
httpServletResponse.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
return;
}发布于 2015-02-18 09:34:16
使用ImageIO
ImageWriter imageWriter =
ImageIO.getImageWritersBySuffix("jpeg").next();
ImageOutputStream ios =
ImageIO.createImageOutputStream(jpegOutputStream);
imageWriter.setOutput(ios);
IIOMetadata imageMetaData = imageWriter.getDefaultImageMetadata(
new ImageTypeSpecifier(challenge), null);
imageWriter.write(
imageMetaData, new IIOImage(challenge, null, null), null);这将替换内部和不推荐使用的JPEG函数。
https://stackoverflow.com/questions/28579709
复制相似问题