이 글에서는 Java에서 ImageIO.writer를 사용하여 BufferedImage에서 JPEG 이미지를 생성할 때 발생하는 문제에 대한 요약 및 해결 방법에 대한 정보를 주로 소개합니다. 필요한 친구는 ImageIO를 사용하여
java를 참조할 수 있습니다. BufferedImage에서 JPEG 이미지를 생성하는 .writer BufferedImage가 JPEG 이미지를 생성할 때 발생하는 문제에 대한 요약 및 해결 방법
JPEG 이미지를 생성하는 것은 인터넷에서 직접 사용하는 매우 매우 간단한 작업입니다. com.sun.image.codec.jpeg.JPEGImageEncoder는 다음과 같이 구현됩니다.
/** * 将原图压缩生成jpeg格式的数据 * @param source * @return */ public static byte[] wirteJPEGBytes(BufferedImage source){ if(null==source) throw new NullPointerException(); ByteArrayOutputStream output = new ByteArrayOutputStream(); JPEGImageEncoder jencoder = JPEGCodec.createJPEGEncoder(output); JPEGEncodeParam param = jencoder.getDefaultJPEGEncodeParam(source); param.setQuality(0.75f, true); jencoder.setJPEGEncodeParam(param); try { jencoder.encode(source); } catch (ImageFormatException e) { throw new RuntimeException(e); } catch (IOException e) { throw new RuntimeException(e); } return output.toByteArray(); }
/** * 将原图压缩生成jpeg格式的数据 * @param source * @return * @see #wirteBytes(BufferedImage, String) */ public static byte[] wirteJPEGBytes(BufferedImage source){ return wirteBytes(source,"JPEG"); } /** * 将原图压缩生成jpeg格式的数据 * @param source * @return * @see #wirteBytes(BufferedImage, String) */ public static byte[] wirteJPEGBytes(BufferedImage source){ return wirteBytes(source,"JPEG"); } /** * 将{@link BufferedImage}生成formatName指定格式的图像数据 * @param source * @param formatName 图像格式名,图像格式名错误则抛出异常 * @return */ public static byte[] wirteBytes(BufferedImage source,String formatName){ Assert.notNull(source, "source"); Assert.notEmpty(formatName, "formatName"); ByteArrayOutputStream output = new ByteArrayOutputStream(); try { if(!ImageIO.write(source, formatName.toLowerCase(), output)) // 返回false则抛出异常 throw new IllegalArgumentException(String.format("not found writer for '%s'",formatName)); } catch (IOException e) { throw new RuntimeException(e); } return output.toByteArray(); }
아아아아
위 내용은 ImageIO.writer를 사용하여 BufferedImage에서 JPEG 이미지를 생성하는 Java에 대한 자세한 설명, 발생한 문제에 대한 요약 및 솔루션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!