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

Checking Image Size before it can be saved to server

本文关键字:图像 检查 服务器 保存      更新时间:2023-09-26

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

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

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

谢谢。

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

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

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

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

在你的相机中 图片回调:

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

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