Şu anda bir png dosyasına bir BufferedImage kurtarmaya çalışıyorum yaparJava yazma png dosya şeffaf her şey
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;
}
}
Aşağıdaki kod ile dosyayı kaydetmeye çalıştığınızda zaman:
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();
}
Çünkü bunun yerine son derece şeffaf renk veya renk yok hiç ya olsun doğru renge sahip olma sorunlarını olsun.
kod bağlam eminLucas'a, herhangi bir yardım için
I) (uzman değilim ama bu 'int rgb = 65536 * basicColor.getRed() + 256 * basicColor.getGreen() + basicColor.getBlue; System.out.println (rgb); 'yanlış görünüyor. rgb değerleri biraz paketlenmiş int [bu] gibi bir şey (http://stackoverflow.com/questions/2534116/how-to-convert-get-rgbx-y-integer-pixel-to-colorr-gba olarak varsayalım -in-java), ama bu yüzden kullanıyorum java.awt.Color ' – MadProgrammer