我正在尝试在高端诺基亚手机(N95)上进行图像捕捉。手机的内置摄像头非常好(4百万像素),但在j2me我似乎只能获得最大1360x1020的图像。我主要从这个例子中提取了 http://developers.sun.com/mobility/midp /物品/图片/

我所做的是从640x480开始,分别将宽度和高度增加80和60,直至失败。代码行是:

jpg = mVideoControl.getSnapshot(" encoding = jpeg& quality = 100& width =" + width +"& height =" + height);

所以这两个问题是:  1.获取大于1360x1020的图像时,手机会抛出异常。  2.较高分辨率的图像看起来只是较小分辨率图像的平滑版本。例如。当我拍摄一张640x480的图像并在photoshop中增加它时,我无法区分这个和一个据称是1360x1020的图像。

这是手机上j2me的限制吗?如果有的话,是否有人知道如何从j2me应用程序中获得更高的分辨率和/或如何从另一个应用程序中访问本机相机?

有帮助吗?

解决方案

说明诺基亚论坛可能对您有所帮助。

它表示“可以捕获的最大图像大小取决于所选的图像格式,编码选项和可用的可用堆内存。”

因此强烈建议至少较大的图像(大于1mpix)被捕获为JPEG图像并且以共同的图像大小(例如,对于2mpix等1600x1200)。支持的常见图像大小取决于产品和平台版本。“

所以我建议你尝试一下 1.具有1600x1200,1024x768以及N95指南提及的任何图像分辨率 2.还有BMP和PNG。

无论如何,基于我之前的经验(可能已经过时),j2me实现充满了错误,因此可能无法解决您的问题。

其他提示

您的相机分辨率是原生的: 2582 x 1944。尝试捕捉那里,看看情况如何。

这个地方: http://developers.sun.com/mobility/midp/articles/图片/ index.html中

提到使用:

byte[] raw = mVideoControl.getSnapshot(null);
Image image = Image.createImage(raw, 0, raw.length);

使用raw似乎很有趣,以获得原生分辨率。

JPEG的“质量”(由代码解释)与分辨率无关。而是与图像压缩程度有关。 100质量的640x480图像看起来比50x的640x480图像明显更好,但会占用更多的存储空间。

请改为尝试:

jpg = mVideoControl.getSnapshot("encoding=jpeg&quality=100&width=2048&height=1536");
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top