美好的一天,我正在尝试编写一个应用程序,将我使用Camera自动拍摄的图像存储到数据库中。但是,我想在保存之前检查图像大小(MB)。
我阅读了Android Camera.Capture开发人员说明,并知道我无法以编程方式调整大小。
另外我知道在上传到数据库之前存储在临时文件夹中是可能的,但我正在寻找一个不保存在临时文件夹中的文件夹。
感谢。
答案 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为单位的图像大小