如何从顶部和底部裁剪位图图像?

Posted

技术标签:

【中文标题】如何从顶部和底部裁剪位图图像?【英文标题】:How to crop bitmap image from both top and bottom? 【发布时间】:2018-10-25 17:15:14 【问题描述】:

我已将视图转换为位图图像,我想从底部和顶部剪切部分。我的问题是我可以做其中一个,但是当我想做另一个时,它会取消以前的工作。这是我的代码:

bitImage=getBitmapFromView(_root);
                    BitmapFactory.Options bitmapOptions = new BitmapFactory.Options();
                    bitmapOptions.inTargetDensity = 1;
                    bitImage.setDensity(Bitmap.DENSITY_NONE);
                    Bitmap crop=Bitmap.createBitmap(bitImage,0,0,bitImage.getWidth(),((int)(bitImage.getHeight()*0.8)));
                    crop=Bitmap.createBitmap(anything here will annul previous line);
                    crop.compress(Bitmap.CompressFormat.PNG,100,out); 

这是图片,因此您可以更好地看到我要剪切的内容(箭头表示那些部分)。谢谢。

【问题讨论】:

【参考方案1】:

这将从顶部和底部切割您的位图并采用中心路径,条件if (srcBmp.getWidth() >= srcBmp.getHeight()) 告诉如果宽度大于高度,那么它将水平切割。

if (srcBmp.getWidth() >= srcBmp.getHeight())

  dstBmp = Bitmap.createBitmap(
     srcBmp, 
     srcBmp.getWidth()/2 - srcBmp.getHeight()/2,
     0,
     srcBmp.getHeight(), 
     srcBmp.getHeight()
     );

else

  dstBmp = Bitmap.createBitmap(
     srcBmp,
     0, 
     srcBmp.getHeight()/2 - srcBmp.getWidth()/2,
     srcBmp.getWidth(),
     srcBmp.getWidth() 
     );

【讨论】:

这总是创建一个方形位图,问题是关于裁剪顶部和底部而不是从中创建方形位图。

以上是关于如何从顶部和底部裁剪位图图像?的主要内容,如果未能解决你的问题,请参考以下文章

如何裁剪位图并获得图像的下 50%

Android:从位图裁剪位图并设置为 ImageView src

将位图图像裁剪为自定义正方形

如何将位图图像的注册点设置为底部中心?

以矩形裁剪位图图像

PHP图像从顶部,底部,左侧和右侧裁剪