Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Proteus1989

#61
Java / Re: La clase BufferedImage
26 Abril 2012, 18:56 PM
Exacto, el tener que guardarlos y recuperarlos del HDD es demasiado costoso. El código es algo extenso (sobre unas 7 u 8 clases), quizás demasiado para lo que aquí interesa resolver.

Emisor
Este código recupera una captura de pantalla que transforma a int[] para enviarla por el socket.
Código (java) [Seleccionar]

int ancho = (int) java.awt.Toolkit.getDefaultToolkit().getScreenSize().getWidth();
int alto = (int) java.awt.Toolkit.getDefaultToolkit().getScreenSize().getHeight();
v = new int[ancho*alto];
dataBuffer = robot.createScreenCapture(rectangulo).getData().getDataBuffer(); //Captura la pantalla
for(int i = 0; i < ancho*alto; i++)
v[i] = dataBuffer.getElem(i);




Receptor
Se encarga de recibir el int[] y recomponerlo.
Código (java) [Seleccionar]


// Creo un ByteBuffer donde añado v (byte[])
// v es el int[] que envié y que recibo en forma de 4 bytes por int.
ByteBuffer bb = ByteBuffer.allocate(v.length);
bb.put(v);
bb.order(ByteOrder.BIG_ENDIAN);
bb.rewind();

// Ahora transformo ese ByteBuffer en un IntBuffer
IntBuffer ib = bb.asIntBuffer();
int[] result = new int[v.length / 4];
ib.get(result);
BufferdedImage imagen = generarBufferedImage(result); //este método está implementando en el código de abajo.




Y con este último código copiado de internet y que no comprendo muy bien recupero el BufferedImage inicial

Código (java) [Seleccionar]

private BufferedImage generarBufferedImage(int[] v)
{
DataBufferInt DB = new DataBufferInt(v, (resolucion.getAncho() * resolucion.getAlto()), 0);
int[] BM = new int[]
{ 0xff0000, 0xff00, 0xff };
SinglePixelPackedSampleModel SM = new SinglePixelPackedSampleModel(DataBuffer.TYPE_INT, resolucion.getAncho(), resolucion.getAlto(), BM);

// creating the raster
Point P = new Point(0, 0);
WritableRaster R = Raster.createWritableRaster(SM, DB, P);
BufferedImage bi = new BufferedImage(resolucion.getAncho(), resolucion.getAlto(), BufferedImage.TYPE_INT_RGB);
BufferedImage BI = new BufferedImage(bi.getColorModel(), R, false, null);
return BI;
}
#62
Java / Re: La clase BufferedImage
25 Abril 2012, 18:57 PM
Encontré esto, pero era con jpgs http://www.exampledepot.com/egs/javax.imageio/JpegWrite.html
El problema es que el uso de disco duro no es eficiente.

PD: Lo encontré con el google, que se que no muerde xD
#63
Java / Re: [Problema] Java constantes
21 Abril 2012, 02:55 AM
De clase significa que está declarado e inicializado únicamente dentro de la clase en la que se define.


Que alguien me corrija si me equivoco
#64
Java / Re: La clase BufferedImage
19 Abril 2012, 00:57 AM
He estado mirando la clase pero no la termino de comprender, como le pasaría mi array de enteros para que me lo comprimiese?
#65
A mi me ocurrió que enviaba el primer objeto bien pero los siguientes objetos que enviaba siempre eran una copia de primero. Lo solucioné pasando los tipos primitivos (int) en lugar del objeto que los contenia
#66
Java / Re: Insertar imagnes Image e ImageIcon
16 Abril 2012, 00:43 AM
Para imágenes tienes un componente llamado ImageArea
#67
Java / Re: La clase BufferedImage
15 Abril 2012, 14:43 PM
Ya pensaba que nadie sabía responderme. Lo miraré, tenlo por seguro.
Gracias!
#68
Java / Re: Conectarme a MySQL por Servlet
12 Abril 2012, 21:47 PM
Cita de: Aikanáro Anário en 12 Abril 2012, 18:09 PM
¿En lib? El jar está en la carpeta donde se descomprimio el conector que bajé de la página de MySQL, y esa carpeta está dentro de la carpeta del proyecto de Eclipse.

Pero está importado como external Jar al proyecto no?
#69
Java / Re: Duda java sobre librerías
10 Abril 2012, 18:37 PM
En la librería Robot se encuentra lo de mover el raton
Aquí un código de ejemplo. http://suarezdeveloper.wordpress.com/2012/04/06/localizar-modificar-la-posicion-del-raton-con-java/
#70
A mi me pasó algo parecido pero no supe solucionarlo. Puedes poner aquí la solución?