Renasci to de volta galera !!! 
Galera to fazendo um programa para emitir codigo de barras, eu fiz uma classe que gera a imagen do codigo de barras e converte ela para um jpeg com as funções da com.sun.image.codec.jpeg.JPEGCodec so que que a funções que gera o JPEG pega um OutputStream como parametro e eu nao quero descarregar essa imagen em um arquivo queria copiar ela direto para um campo BLOB no meu banco de dados para um melhor entendimento segue a classe que faz a imagen do codigo de barras
package com.sic.report.engineer;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.Serializable;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
/**
* @author William J. Oliveira
*
* To change this generated comment edit the template variable "typecomment":
* Window>Preferences>Java>Templates.
* To enable and disable the creation of type comments go to
* Window>Preferences>Java>Code Generation.
*/
public class Barcode implements Serializable {
java.awt.image.BufferedImage image;
public Barcode() throws IOException {
criaImagem(
"12345678901234567890123456789012345678901234",
"default.jpg",
25);
}
public Barcode(String numero, String filename) throws IOException {
StringBuffer tmp = new StringBuffer(numero.substring(0,3));
tmp.append(getNumeroDv(numero)).append(numero.substring(3));
criaImagem(tmp.toString(), filename, 35);
}
/** Metodo criaImagem
* Usado para criacao da imagem que representa o codigo de barras
@author Ricardo Gil
*/
public boolean criaImagem(String texto, String filename, int h)
throws IOException {
int i, j, tam;
//Criando arquivos de imagen do codigo de barras
File file = new File(filename);
FileOutputStream out = new FileOutputStream(file, true);
//Variavel que contem a representacao em Codigo de Barras de cada um dos numeros.
//Nessa representacao:
// 0 significa Barra Fina (NARROW);
// 1 significa Barra Grossa (WIDE).
String[] barras = { "00110", //0
"10001", //1
"01001", //2
"11000", //3
"00101", //4
"10100", //5
"01100", //6
"00011", //7
"10010", //8
"01010" }; //9
//O Codigo de barras e formado sempre por pares intercalados.
//Por exemplo 12:
//Pegando-se a representacao do 1 e do 2 na variavel acima teriamos o seguinte:
//[telefone removido].
//Com isso, o primeiro numero representa as Barras Pretas (Fina ou Grossa)
// e o Segundo numero representa as Barras Brancas, ou espacos, (Fina ou Grossa).
int preto, branco;
int w = 9 + (9 * texto.length());
image =
new java.awt.image.BufferedImage(
w,
h,
java.awt.image.BufferedImage.TYPE_INT_RGB);
tam = 0;
fillRect(0, 0, w, h, 0x00FFFFFF);
//começo do Codigo de Barras = 0 = 00 / 1 = 00
fillRect(tam, 0, tam + 1, h, 0x00000000);
tam++;
fillRect(tam, 0, tam + 1, h, 0x00FFFFFF);
tam++;
fillRect(tam, 0, tam + 1, h, 0);
tam++;
fillRect(tam, 0, tam + 1, h, 0x00FFFFFF);
tam++;
//Conteudo do Codigo de Barras
for (i = 0; i <= texto.length() - 1; i++) {
preto = Integer.parseInt(String.valueOf(texto.charAt(i)));
branco = Integer.parseInt(String.valueOf(texto.charAt(i + 1)));
i++;
for (j = 0; j < 5; j++) {
if (String.valueOf(barras[preto].charAt(j)).equals("0")) {
fillRect(tam, 0, tam + 1, h, 0);
tam++;
} else {
fillRect(tam, 0, tam + 3, h, 0);
tam += 3;
}
if (String.valueOf(barras[branco].charAt(j)).equals("0")) {
fillRect(tam, 0, tam + 1, h, 0x00FFFFFF);
tam++;
} else {
fillRect(tam, 0, tam + 3, h, 0x00FFFFFF);
tam += 3;
}
}
}
//fim da barra = 0 = 10 / 1 = 0
fillRect(tam, 0, tam + 3, h, 0);
tam += 3;
fillRect(tam, 0, tam + 1, h, 0x00FFFFFF);
tam++;
fillRect(tam, 0, tam + 1, h, 0);
tam++;
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(image);
//GifEncoder encoder = new GifEncoder(BarImage ,outb);
//encoder.encode();
// ESSAS DUAS LINHAS ACIMA CRIARIAM UM .gif
out.close();
return true;
}
private void fillRect(int x0, int y0, int x1, int y1, int color) {
for (int x = x0; x < x1; x++) {
for (int y = y0; y < y1; y++) {
image.setRGB(x, y, color);
}
}
}
private String getNumeroDv(String value) {
StringBuffer result = new StringBuffer("");
String dv = "0";
boolean par = true;
int resto = 0;
int dividendo = 0;
int tempint = 0;
for(int i=(value.length()-1);i>=0;i--){
if(par){
par=false;
tempint = 2 * (Integer.parseInt(value.substring(i,(i+1))));
}else{
par=true;
tempint = 1 * (Integer.parseInt(value.substring(i,(i+1))));
}
result.append(Integer.toString(tempint));
}
for(int i=0;i<result.length();i++) tempint = tempint + (Integer.parseInt(result.substring(i,(i+1))));
resto = tempint % 10;
if(resto>0){
dv = Integer.toString((10 - resto));
}
return dv;
}
}
ao inves de salvar em arquivo queria salvar no banco e ai ?
Falow galera !!!