URL Hunter!!
VictorR 15 marzo, 2011
Etiquetas: curiosidades, jQuery, Soluciones
Hoy os quiero presentar una idea que me parece buenísima, al estilo de teaser, URL Hunter! se aprovecha de la barra de direcciones para crear una nueva experiencia en el navegador.
El resultado, un juego. Sencillo, pero efectivo, ha sido desarrollado con jQuery 1.5. Tú eres la “O” que aparece en la barra de direcciones. Usa las flechas derecha e izquierda para mover, cuando estés encima de una “a” presiona la barra espaciadora para matar los “animales” en menos de 30 segundos.
Sencillamente, me parece una idea genial y una pequeña muestra de lo mucho que se puede llegar a hacer.
Crop de imágenes JPG con Java Advanced Imaging API (JAI)
VictorR 20 mayo, 2010
Etiquetas: ejemplos, Java, problemas, Soluciones, tutoriales
Hoy la entrada será de nuevo una solución a un problema encontrado en el proyecto en el que trabajo actualmente. Y es que cuando quieres editar imágenes con Java las alternativas no son muchas y tampoco fáciles. Nosotros nos decidimos por utilizar Java Advanced Imaging API, una librería que no se actualiza desde 2007… bueno, no toca entrar a discutir este tema.
Vamos a entrar en materia. El código:
// 1 - generar el crop
SeekableStream s = SeekableStream.wrapInputStream(is, true);
RenderedOp image = JAI.create("stream", s);
((OpImage)image.getRendering()).setTileCache(null);
ParameterBlock pb = new ParameterBlock();
pb.addSource(image);
pb.add((float)topLeftmx);
pb.add((float)topLeftmy);
pb.add((float)roiWidth);
pb.add((float)roiHeight);
image = JAI.create("crop",pb);
// 2 - codificar la imagen resultado del crop
ByteArrayOutputStream baos = new ByteArrayOutputStream();
JAI.create("encode", image, baos, tipoImagen, null); // 3
return baos.toByteArray();
}
Básicamente esta función tiene 2 partes, la primera (1) donde se genera el crop de la imagen, y la segunda (2) donde se codifica la imagen resultado del crop realizado. Es decir, informar si la imagen es JPEG, PNG, TIFF…
Cuál es el problema que nos encontramos, si vamos a la línea marcada (3):
estamos creando la codificación, indicando con la variable tipoImagen si se trata de una “JPEG” (“JPG” no funciona), “PNG”, “TIFF” o demás formatos soportados.
Funcionar funciona correctamente con cada uno de los tipos de imagen que le pasemos, excepto con “JPEG”. Con este tipo las coordenadas elegidas para realizar el crop sobre la imagen simplemente se pierden. No se porqué, pero se pierden.
La solución encontrada en java.net Forums, Thread: The crop operation seems to ignore (x,y) offset es la siguiente:
La solución es pasar la variable image (de tipo RenderedOp) a tipo BufferedImage en la función create de la clase JAI. Milagrosamente todo vuelve a funcionar, incluido el tipo “JPEG”.
XSD to Java o cómo crear un WebService a partir de schemas
VictorR 11 marzo, 2010
Etiquetas: Java, Soluciones, tips & tricks, tutoriales, util, Web Services
Hoy un post “tecky”. Pero esta vez, y recordando lo que yo mismo predico, sólo va a ser una referencia a otro blog.
Llevo unos días peleándome con la creación de un web service. En concreto, tengo el schema que debe seguir, pero no tengo el WSDL. Bien, tras mucho buscar, he encontrado la manera de generar, sí, generar, el WSDL.
Aquí la referencia:
Build contract first web services using CXF+JAXWS+JAXB & Spring