小编Kit*_*Kat的帖子

Android - 减少图像文件大小

我有一个URI图像文件,我想减小它的大小上传它.初始图像文件大小取决于从移动设备到移动设备(可以是2MB,可以是500KB),但我希望最终大小约为200KB,以便我可以上传它.
从我读到的,我有(至少)2个选择:

  • 使用BitmapFactory.Options.inSampleSize,对原始图像进行二次采样并获得较小的图像;
  • 使用Bitmap.compress压缩指定压缩质量的图像.

什么是最好的选择?


我想最初调整图像宽度/高度,直到宽度或高度高于1000px(类似1024x768或其他),然后压缩图像质量下降,直到文件大小超过200KB.这是一个例子:

int MAX_IMAGE_SIZE = 200 * 1024; // max final file size
Bitmap bmpPic = BitmapFactory.decodeFile(fileUri.getPath());
if ((bmpPic.getWidth() >= 1024) && (bmpPic.getHeight() >= 1024)) {
    BitmapFactory.Options bmpOptions = new BitmapFactory.Options();
    bmpOptions.inSampleSize = 1;
    while ((bmpPic.getWidth() >= 1024) && (bmpPic.getHeight() >= 1024)) {
        bmpOptions.inSampleSize++;
        bmpPic = BitmapFactory.decodeFile(fileUri.getPath(), bmpOptions);
    }
    Log.d(TAG, "Resize: " + bmpOptions.inSampleSize);
}
int compressQuality = 104; // quality decreasing by 5 every loop. (start from 99)
int streamLength = …
Run Code Online (Sandbox Code Playgroud)

android bitmap image-uploading image-resizing

57
推荐指数
1
解决办法
9万
查看次数

拍照和地理标记

我应该制作一个应用程序来拍照并对其进行地理标记.我看到有两种方法可以做到:

  1. 使用Android摄像头默认的意图,拍摄照片(同时寻找GPS位置),然后编辑EXIF标题;
  2. 通过相机API构建相机应用程序,然后对其进行地理标记setGpsLatitude()等.

我想知道哪个是最好的选择,或者通常在使用第一种或第二种方式时更好.

android android-intent

7
推荐指数
1
解决办法
1万
查看次数