first commit

This commit is contained in:
2025-07-28 13:56:49 +05:30
commit e9eb805edb
3438 changed files with 520990 additions and 0 deletions

View File

@@ -0,0 +1,150 @@
package net.sf.jasperreports.engine.util;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.InputStream;
import java.net.URL;
import java.net.URLStreamHandlerFactory;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRRuntimeException;
public class JRImageLoader {
public static final String PROPERTY_IMAGE_READER = "net.sf.jasperreports.image.reader";
public static final String PROPERTY_IMAGE_ENCODER = "net.sf.jasperreports.image.encoder";
public static final byte NO_IMAGE = 1;
public static final byte SUBREPORT_IMAGE = 2;
public static final byte CHART_IMAGE = 3;
public static final byte CROSSTAB_IMAGE = 4;
private static final String str_NO_IMAGE = "net/sf/jasperreports/engine/images/noimage.GIF";
private static final String str_SUBREPORT_IMAGE = "net/sf/jasperreports/engine/images/subreport.GIF";
private static final String str_CHART_IMAGE = "net/sf/jasperreports/engine/images/chart.GIF";
private static final String str_CROSSTAB_IMAGE = "net/sf/jasperreports/engine/images/crosstab.GIF";
private static Image img_NO_IMAGE = null;
private static Image img_SUBREPORT_IMAGE = null;
private static Image img_CHART_IMAGE = null;
private static Image img_CROSSTAB_IMAGE = null;
private static JRImageReader imageReader = null;
private static JRImageEncoder imageEncoder = null;
static {
String readerClassName = JRProperties.getProperty("net.sf.jasperreports.image.reader");
if (readerClassName == null) {
imageReader = new JRJdk14ImageReader();
} else {
try {
Class clazz = JRClassLoader.loadClassForRealName(readerClassName);
imageReader = clazz.newInstance();
} catch (Exception e) {
throw new JRRuntimeException(e);
}
}
String encoderClassName = JRProperties.getProperty("net.sf.jasperreports.image.encoder");
if (encoderClassName == null) {
imageEncoder = new JRJdk14ImageEncoder();
} else {
try {
Class clazz = JRClassLoader.loadClassForRealName(encoderClassName);
imageEncoder = clazz.newInstance();
} catch (Exception e) {
throw new JRRuntimeException(e);
}
}
}
public static byte[] loadImageDataFromFile(File file) throws JRException {
return JRLoader.loadBytes(file);
}
public static byte[] loadImageDataFromURL(URL url) throws JRException {
return JRLoader.loadBytes(url);
}
public static byte[] loadImageDataFromInputStream(InputStream is) throws JRException {
return JRLoader.loadBytes(is);
}
public static byte[] loadImageDataFromLocation(String location) throws JRException {
return JRLoader.loadBytesFromLocation(location);
}
public static byte[] loadImageDataFromLocation(String location, ClassLoader classLoader) throws JRException {
return JRLoader.loadBytesFromLocation(location, classLoader);
}
public static byte[] loadImageDataFromLocation(String location, ClassLoader classLoader, URLStreamHandlerFactory urlHandlerFactory) throws JRException {
return JRLoader.loadBytesFromLocation(location, classLoader, urlHandlerFactory);
}
public static byte[] loadImageDataFromAWTImage(Image image, byte imageType) throws JRException {
return imageEncoder.encode(image, imageType);
}
public static byte[] loadImageDataFromAWTImage(BufferedImage bi) throws JRException {
return loadImageDataFromAWTImage(bi, (byte)2);
}
public static byte[] loadImageDataFromAWTImage(Image image) throws JRException {
return loadImageDataFromAWTImage(image, (byte)2);
}
public static Image getImage(byte index) throws JRException {
Image image = null;
switch (index) {
case 1:
if (img_NO_IMAGE == null)
img_NO_IMAGE = loadImage("net/sf/jasperreports/engine/images/noimage.GIF");
image = img_NO_IMAGE;
break;
case 2:
if (img_SUBREPORT_IMAGE == null)
img_SUBREPORT_IMAGE = loadImage("net/sf/jasperreports/engine/images/subreport.GIF");
image = img_SUBREPORT_IMAGE;
break;
case 3:
if (img_CHART_IMAGE == null)
img_CHART_IMAGE = loadImage("net/sf/jasperreports/engine/images/chart.GIF");
image = img_CHART_IMAGE;
break;
case 4:
if (img_CROSSTAB_IMAGE == null)
img_CROSSTAB_IMAGE = loadImage("net/sf/jasperreports/engine/images/crosstab.GIF");
image = img_CROSSTAB_IMAGE;
break;
}
return image;
}
public static Image loadImage(byte[] bytes) throws JRException {
return imageReader.readImage(bytes);
}
protected static Image loadImage(String image) throws JRException {
InputStream is;
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
URL url = classLoader.getResource(image);
if (url == null)
classLoader = JRImageLoader.class.getClassLoader();
if (classLoader == null) {
is = JRImageLoader.class.getResourceAsStream("/" + image);
} else {
is = classLoader.getResourceAsStream(image);
}
return imageReader.readImage(JRLoader.loadBytes(is));
}
}