【发布时间】:2015-12-31 23:41:06
【问题描述】:
我想实现一个类似 Instagram 的拍照应用程序,它将我拍摄的照片裁剪成正方形并顺时针旋转,使其保持纵向。将位图裁剪为正方形没有问题,但裁剪不是从照片的角落开始的。 (x,y) = (0,0) 照片的左侧部分被裁剪掉。我想从原始位图的左上角裁剪。有什么帮助吗?
这里是拍照和裁剪图片的代码:
Activity_New_Food.java
public class Activity_New_Food extends Activity {
byte[] byteArray;
ImageView foodPhoto;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_new_food);
foodPhoto = (ImageView) findViewById(R.id.anf_foodPhoto);
byteArray = getIntent().getByteArrayExtra("FOOD_PIC");
Bitmap original_bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
Matrix matrix = new Matrix();
matrix.postRotate(90);
int value = 0;
if (original_bmp.getHeight() <= original_bmp.getWidth()) {
value = original_bmp.getHeight();
} else {
value = original_bmp.getWidth();
}
Bitmap finalBitmap = null;
finalBitmap = Bitmap.createBitmap(original_bmp, 0, 0, value, value, matrix, false);
Bitmap bmp = cropToSquare(original_bmp);
foodPhoto.setImageBitmap(finalBitmap);
}
【问题讨论】:
标签: android image bitmap surfaceview crop