カメラで撮影した画像を自動的にデータベースに保存するアプリケーションを作成しようとしています。ただし、保存する前に画像サイズ(MB)を確認したい。
Android Camera.Capture 開発者向けメモを読み、プログラムでサイズを調整できないことを知っています。
また、データベースにアップロードする前に一時フォルダーに保存することは認識していますが、一時フォルダーに保存せずに保存できるものを探しています。
ありがとう。
カメラで撮影した画像を自動的にデータベースに保存するアプリケーションを作成しようとしています。ただし、保存する前に画像サイズ(MB)を確認したい。
Android Camera.Capture 開発者向けメモを読み、プログラムでサイズを調整できないことを知っています。
また、データベースにアップロードする前に一時フォルダーに保存することは認識していますが、一時フォルダーに保存せずに保存できるものを探しています。
ありがとう。
サーバーは、画像を見ることができない限り、画像のサイズを知ることができません。PHP を使用して、アップロードの最大サイズを制限できます。ファイルをサーバー上に一時ファイルとして保存したら、それをより詳細に分析できます (寸法など)。イメージが「良い」場合は、それを永続的な場所 (別のディレクトリまたはデータベース BLOB として) に移動し、そうでない場合は削除します。
getRowBytes() * getHeight() はうまく機能しているようです。
あなたのカメラで PictureCallback:
public void onPictureTaken(byte[] data, Camera camera)
{
int nPictureSize = data.length;
}
圧縮された画像の長さは、単にバイト配列の長さです
カスタム カメラを使用している場合、コールバックでバイト配列を受け取ります。この配列の長さを取得し、それを 1024*1024 で割ってサイズを MB で取得します。
Camera インテントを使用している場合は、bitmap.getRowbytes * bitmap.getHeight を使用してサイズを確認できるビットマップを取得し、それを 1024*1024 で割って画像サイズを MB で取得します。