它一般發生在當Image
是大是尺寸,該尺寸2048*2048
。如果圖像的任何長度和寬度大於2048
,通常相機膠捲會捕捉較大尺寸的圖像,它需要裁剪。
- 有效尺寸上設置
ImageView < 2048*2048
,從相機膠捲
下面是如果大的尺寸只是一個例子來裁剪圖像,並沒有考慮圖像比率的護理
public class InputImageCompressor extends Activity{
public static void compressInputImage(Uri inputImageData, Context context, ImageView newIV)
{
Bitmap bitmap;
//Uri inputImageData = data.getData();
try
{
Bitmap bitmapInputImage = MediaStore.Images.Media.getBitmap(context.getContentResolver(), inputImageData);
if (bitmapInputImage.getWidth() > 2048 && bitmapInputImage.getHeight() > 2048)
{
bitmap = Bitmap.createScaledBitmap(bitmapInputImage, 1024, 1280, true);
newIV.setImageBitmap(bitmap);
}
else if (bitmapInputImage.getWidth() > 2048 && bitmapInputImage.getHeight() < 2048)
{
bitmap = Bitmap.createScaledBitmap(bitmapInputImage, 1920, 1200, true);
newIV.setImageBitmap(bitmap);
}
else if (bitmapInputImage.getWidth() < 2048 && bitmapInputImage.getHeight() > 2048)
{
bitmap = Bitmap.createScaledBitmap(bitmapInputImage, 1024, 1280, true);
newIV.setImageBitmap(bitmap);
}
else if (bitmapInputImage.getWidth() < 2048 && bitmapInputImage.getHeight() < 2048)
{
bitmap = Bitmap.createScaledBitmap(bitmapInputImage, bitmapInputImage.getWidth(), bitmapInputImage.getHeight(), true);
newIV.setImageBitmap(bitmap);
}
} catch (Exception e)
{
Toast.makeText(context, e.toString(), Toast.LENGTH_LONG).show();
}
}
}
使用此代碼:
if(getIntent().hasExtra("imagePath")){
ur = getIntent().getStringExtra("imagePath");
Uri newUri = Uri.parse(ur);
try {
InputImageCompressor.compressInputImage(newUri, your_class_name.this, imgView1);
}
catch (IOException e){
}
}
爲什麼圖像大小限制爲2048 * 2048 read more
我的回答有幫助嗎? – W4R10CK