38 lines
1.0 KiB
Java
38 lines
1.0 KiB
Java
package net.sf.jasperreports.engine.util;
|
|
|
|
import java.awt.image.BufferedImage;
|
|
import java.io.ByteArrayOutputStream;
|
|
import java.io.IOException;
|
|
import javax.imageio.ImageIO;
|
|
import net.sf.jasperreports.engine.JRException;
|
|
|
|
public class JRJdk14ImageEncoder extends JRAbstractImageEncoder {
|
|
public byte[] encode(BufferedImage bi, byte imageType) throws JRException {
|
|
String formatName = null;
|
|
switch (imageType) {
|
|
case 1:
|
|
formatName = "gif";
|
|
break;
|
|
case 3:
|
|
formatName = "png";
|
|
break;
|
|
case 4:
|
|
formatName = "tiff";
|
|
break;
|
|
default:
|
|
formatName = "jpeg";
|
|
break;
|
|
}
|
|
boolean success = false;
|
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
|
try {
|
|
success = ImageIO.write(bi, formatName, baos);
|
|
} catch (IOException e) {
|
|
throw new JRException(e);
|
|
}
|
|
if (!success)
|
|
throw new JRException("No appropriate image writer found for the \"" + formatName + "\" format.");
|
|
return baos.toByteArray();
|
|
}
|
|
}
|