Saluti
ho creato una classe MyImg che servirà (è ancora incompleta) per recuperare immagini da un database (immagini saranno in campi Blob).
Questa classe dovrebbe avere una immagine blank di default senza andarla a pescare da un file o memorizzare nel dbase una blank image.
Al momento ho messo proprio una gif blank nel database e pesco quella ma mi piacerebbe, visto che è una gif da 1 pixel blank farlo da codice senza andare a fare una chiamata al dbase.
Il problema quindi è creare, a programma, una gif blank
che poi convertirò in un byte array (visto che una servlet poi invierà alla pagina jsp le immagini).
Per ora sono a questo punto
codice:
import java.awt.image.BufferedImage;
import java.awt.image.DataBufferByte;
import java.awt.image.WritableRaster;
import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
public class MyImg {
public static byte[] IMG_BLANK = null;
private String label;
private byte[] img;
static {
BufferedImage image =
new BufferedImage(1, 1, BufferedImage.TYPE_BYTE_INDEXED);
WritableRaster raster = image.getRaster();
DataBufferByte buffer = (DataBufferByte)raster.getDataBuffer();
IMG_BLANK = buffer.getData();
} //
public MyImg() {
this.img = IMG_BLANK;
}
public void toFile(String path) {
try {
FileOutputStream out = new FileOutputStream(path);
out.write(this.img);
out.close();
} catch (Exception e) {
System.out.println(e);
}
} //
public String getLabel() {
return this.label;
}
public void setLabel(String label) {
this.label = label;
}
public byte[] getImg() {
return this.img;
}
public void setImg(byte[] img) {
this.img = img;
}
}
quindi testando con:
codice:
MyImg imgBlank = new MyImg();
imgBlank.toFile("D:/temp/bianca.gif");
System.out.println("OK DUDE..!!!");
ottengo una immagine gif non valida....
Qualche idea ?
grazie..