如果我想将捕获的图像调整到固定的高度和宽度(例如:2000px * 3000px),我该怎么办?我不想使用crop.I只想将图像保存在具有固定高度和宽度的服务器中。
这是我的代码:
if (resultCode == RESULT_OK && requestCode == REQ_CAMERA_IMAGE) {
Bitmap photo = (Bitmap) data.getExtras().get("data");
/* int newWidth=(int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 622, getResources().getDisplayMetrics());
int newHeight=(int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 150, getResources().getDisplayMetrics());
Bitmap resized = Bitmap.createScaledBitmap(photo, newWidth, newHeight, true);*/
resultIv.setImageBitmap(photo);
// CALL THIS METHOD TO GET THE URI FROM THE BITMAP
Uri tempUri = getImageUri(getApplicationContext(), photo);
// CALL THIS METHOD TO GET THE ACTUAL PATH
File finalFile = new File(getRealPathFromURI(tempUri));
int x=(int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 177, getResources().getDisplayMetrics());
int y=(int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 273, getResources().getDisplayMetrics());
cropView.of(Uri.fromFile(finalFile)).withAspect(x,y).initialize(ImageType.this);
}
public Uri getImageUri(Context inContext, Bitmap inImage) {
/* ByteArrayOutputStream bytes = new ByteArrayOutputStream();
inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
String path = MediaStore.Images.Media.insertImage(inContext.getContentResolver(), inImage, "Title", null);
return Uri.parse(path);*/
int newWidth=(int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_PX, 75, getResources().getDisplayMetrics());
int newHeight=(int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_PX, 114, getResources().getDisplayMetrics());
Bitmap resized = Bitmap.createScaledBitmap(inImage, newWidth,newHeight, false);
// Bitmap resized = Bitmap.createScaledBitmap(inImage, newWidth, newHeight, true);
// Bitmap resized = Bitmap.createScaledBitmap(inImage,(int)(inImage.getWidth()*0.9), (int)(inImage.getHeight()*0.9), true);
String path = MediaStore.Images.Media.insertImage(inContext.getContentResolver(), resized, "Title", null);
return Uri.parse(path);
}
我已经考虑过我尝试过的代码。它没有按照我的意愿提供输出。
答案 0 :(得分:0)
使用下面的代码,您可以设置图像的最大/最小高度和宽度,但如果不想旋转,则设置图像旋转的可选度为0,如果不想旋转。
public static bitmap resizeBitmap(Bitmap bitmap){
int width = 2000; // - Dimension in pixels
int height= 2000; // - Dimension in pixels
return Bitmap.createScaledBitmap(bitmap, width, height, false);
}
答案 1 :(得分:0)
调整位图大小
{"status":"UP"}