0

美好的一天,拜托我正在尝试编写一个应用程序,将我用相机拍摄的图像自动存储到数据库中。但是我想在保存之前检查图像大小(MB)。

我阅读了 android Camera.Capture 开发人员说明并知道我无法以编程方式调整大小。

另外我知道在上传到数据库之前存储在一个临时文件夹中是可能的,但我正在寻找一个不保存在临时文件夹中的文件夹。

谢谢。

4

4 回答 4

0

getRowBytes() * getHeight() 对我来说似乎工作正常。

于 2012-08-07T12:34:56.903 回答
0

您的服务器无法知道图像的大小,除非它可以查看它。您可以使用 PHP 来限制最大上传大小。一旦您将服务器上的文件作为临时文件,您就可以更详细地分析它(尺寸等)。如果图像“好”,则将其移动到其永久位置(另一个目录或作为数据库 BLOB),如果不是,则将其删除。

于 2012-08-07T12:36:21.367 回答
0

在您的相机 PictureCallback 中:

public void onPictureTaken(byte[] data, Camera camera)
{
  int nPictureSize = data.length;
}

压缩图像的长度就是字节数组的长度

于 2012-08-07T12:42:38.130 回答
0

如果您使用的是自定义相机,那么在您的回调中,您将收到一个字节数组,只需获取该数组的长度并将其除以 1024*1024 即可获得以 MB 为单位的大小。

如果您使用的是相机意图,那么您将返回一个位图,其大小可以通过使用 bitmap.getRowbytes * bitmap.getHeight 找到,然后将其除以 1024*1024 以获得以 MB 为单位的图像大小

于 2012-08-07T12:51:47.463 回答