I am currently trying to save a BufferedImage to a png file:
for(int x = left.getBlockX(); x < (left.getBlockX() + height); x++){
for(int z = left.getBlockZ(); z < (left.getBlockZ() + width); z++){
pixels[i] = getBasicColor(new Location(left.getWorld(), x, left.getBlockY(), z));
i++;
}
}
Here is the getBasicColor function:
@SuppressWarnings("deprecation")
public static int getBasicColor(Location location){
if(location.getBlock().getType().equals(Material.WOOL)){
Byte data = location.getBlock().getData();
for(BasicColor basicColor : BasicColor.values()){
if(data.equals(basicColor.getDyeColor().getData())){
int rgb = 65536 * basicColor.getRed() + 256 * basicColor.getGreen() + basicColor.getBlue();
System.out.println(rgb);
return rgb;
}
}
}
return 0;
}
And here are the BasicColors:
public enum BasicColor {
WHITE (255,255,255, DyeColor.WHITE),
BLACK (0,0,0, DyeColor.BLACK),
BLUE (0,0,255, DyeColor.BLUE),
CYAN (0, 255, 255, DyeColor.CYAN),
DARK_GRAY (169,169,169, DyeColor.GRAY),
GRAY (128,128,128, DyeColor.GRAY),
SILVER (192,192,192, DyeColor.SILVER),
GREEN (0,128,0, DyeColor.GREEN),
MAGENTA (255,0,255, DyeColor.MAGENTA),
ORANGE (255, 165, 0, DyeColor.ORANGE),
PINK (255,192,203, DyeColor.PINK),
RED (255, 0, 0, DyeColor.RED),
YELLOW (255,255,0, DyeColor.YELLOW);
private final int red, blue, green;
private final DyeColor color;
private BasicColor(int red, int green, int blue, DyeColor color){
this.red = red;
this.green = green;
this.blue = blue;
this.color = color;
}
public Integer getRed(){
return red;
}
public Integer getBlue(){
return blue;
}
public Integer getGreen(){
return green;
}
public DyeColor getDyeColor(){
return color;
}
}
Whenever I try to save the file with the following code:
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
WritableRaster raster = (WritableRaster) image.getData();
raster.setPixels(0, 0, width, height, pixels);
image.setData(raster);
try {
ImageIO.write(image, "png", new File(name));
} catch (IOException e) {
e.printStackTrace();
}
I get problems because instead of having the correct color I get either a highly transparent color or no color at all.
Thank you for any help,
Lucas