java - móviles - programacion android pdf 2018
Acceso a la cámara de alta resolución en j2me (3)
Estoy tratando de hacer una captura de imagen en un teléfono Nokia de gama alta (N95). La cámara interna del teléfono es muy buena (4 megapíxeles), pero en j2me parece que solo puedo obtener una imagen máxima de 1360x1020. Dibujé en gran parte de este ejemplo http://developers.sun.com/mobility/midp/articles/picture/
Lo que hice fue comenzar con 640x480 y aumentar el ancho y alto en 80 y 60, respectivamente, hasta que falló. La línea de código es:
jpg = mVideoControl.getSnapshot ("encoding = jpeg & quality = 100 & width =" + width + "& height =" + height);
Así que los dos problemas son: 1. El teléfono arroja una excepción cuando se obtiene una imagen de más de 1360x1020. 2. Las imágenes de mayor resolución parecen ser versiones suavizadas de las más pequeñas. Por ejemplo, cuando tomo una imagen de 640x480 y la aumento en Photoshop, no veo la diferencia entre esto y uno que supuestamente es de 1360x1020.
¿Es esto una limitación de j2me en el teléfono? Si es así, ¿alguien sabe de una manera de obtener una resolución más alta desde dentro de una aplicación j2me y / o cómo acceder a la cámara nativa desde otra aplicación?
La ''calidad'' de un JPEG (según lo interpreta el código) no tiene nada que ver con la resolución. Más bien tiene que ver con qué tan comprimida está la imagen. Una imagen de 640x480 con una calidad de 100 tendrá una apariencia notablemente mejor que una imagen de 640x480 a 50, pero usará más espacio de almacenamiento.
Pruebe esto en su lugar:
jpg = mVideoControl.getSnapshot("encoding=jpeg&quality=100&width=2048&height=1536");
Esta explicación en el foro de Nokia puede ayudarte.
Dice que "el tamaño de imagen máximo que se puede capturar depende del formato de imagen seleccionado, las opciones de codificación y la memoria de pila gratuita disponible".
y
"Por lo tanto, se recomienda que al menos las imágenes más grandes (más grandes que 1mpix) sean capturadas como imágenes JPEG y en un tamaño de imagen común (por ejemplo, 1600x1200 para 2mpix). Los tamaños de imagen comunes admitidos dependen de la versión del producto y la plataforma".
Así que le sugiero que pruebe algunos 1. con 1600x1200, 1024x768 y cualquier resolución de imagen que su guía N95 menciona 2. con BMP y PNG también.
De todos modos, en base a mis experiencias anteriores (que podrían estar desactualizadas), las implementaciones de j2me están llenas de errores, por lo que puede que no haya una solución que funcione para su problema.
La resolución de su cámara es nativa: 2582 x 1944. Intenta capturar allí para ver cómo va eso.
Este lugar: http://developers.sun.com/mobility/midp/articles/picture/index.html
Menciona el uso de:
byte[] raw = mVideoControl.getSnapshot(null);
Image image = Image.createImage(raw, 0, raw.length);
El uso de raw parece interesante, para obtener la resolución nativa.