package jsettlers.graphics.swing.utils;
import java.awt.image.BufferedImage;
import java.nio.ShortBuffer;
import jsettlers.common.Color;
import jsettlers.graphics.image.SingleImage;
public class ImageUtils {
/**
* Converts a single image to a buffered image.
*
* @param image
* The image to convert, needs to be loaded.
* @return
*/
public static BufferedImage convertToBufferedImage(SingleImage image) {
int width = image.getWidth();
int height = image.getHeight();
if (width <= 0 || height <= 0) {
return null;
}
BufferedImage rendered = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
ShortBuffer data = image.getData().duplicate();
data.rewind();
int[] rgbArray = new int[data.remaining()];
for (int i = 0; i < rgbArray.length; i++) {
short myColor = data.get();
rgbArray[i] = Color.convertTo32Bit(myColor);
}
rendered.setRGB(0, 0, width, height, rgbArray, 0, width);
return rendered;
}
}