2
我想讓用戶選擇他們想要減少圖像文件大小的次數,可以是低,中或高,然後將圖像上傳到服務器。這部分是簡單。減少Android中的圖像文件大小(圖像類型未知)
下一部分是文件大小的實際減少。我得到的圖像URI,我想減少文件圖像文件的大小,圖像類型可能是PNG,JPG或其他。
我知道Bitmap.compress()
,這是實現的唯一方法還是存在現有的開源庫?
我想讓用戶選擇他們想要減少圖像文件大小的次數,可以是低,中或高,然後將圖像上傳到服務器。這部分是簡單。減少Android中的圖像文件大小(圖像類型未知)
下一部分是文件大小的實際減少。我得到的圖像URI,我想減少文件圖像文件的大小,圖像類型可能是PNG,JPG或其他。
我知道Bitmap.compress()
,這是實現的唯一方法還是存在現有的開源庫?
Bitmap bitmap;
bitmap = MyBitmapFactory.decodeFile(PATHTOPICT, UPLOAD_REQUIRED_SIZE);
if (bitmap != null) {
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
與方法(與谷歌找到):
public static Bitmap decodeFile(String filePath, final int REQUIRED_SIZE) {
BitmapFactory.Options o = new BitmapFactory.Options();
o.inJustDecodeBounds = true;
BitmapFactory.decodeFile(filePath, o);
int width_tmp = o.outWidth, height_tmp = o.outHeight;
int scale = 1;
while (true) {
if (width_tmp <= REQUIRED_SIZE && height_tmp <= REQUIRED_SIZE)
break;
width_tmp /= 2;
height_tmp /= 2;
scale *= 2;
}
BitmapFactory.Options o2 = new BitmapFactory.Options();
o2.inSampleSize = scale;
Bitmap bitmap = BitmapFactory.decodeFile(filePath, o2);
return bitmap;
}
如果事情得到NULL,它沒有圖像/ 。 按功率按比例2推薦!!!
您的解決方案僅適用於JPEG嗎?你能解釋一下PNG和BMP嗎? – orange
如何將結尾從* .jpg編輯爲* .whatyouwant或嘗試使用Bitmap.CompressFormat.PNG –