在将图像大小保存到服务器之前检查图像大小

时间:2012-08-07 12:29:20

标签: javascript android jquery html

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

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

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

感谢。

4 个答案:

答案 0 :(得分:0)

getRowBytes()* getHeight()似乎对我很好。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

在你的相机PictureCallback:

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

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

答案 3 :(得分:0)

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

如果您正在使用Camera intent,那么您将获得一个Bitmap,其大小可以通过使用bitmap.getRowbytes * bitmap.getHeight找到,然后除以1024 * 1024以获得以MB为单位的图像大小