【问题标题】:Crop particular part of image in android在android中裁剪图像的特定部分
【发布时间】:2012-04-02 14:06:52
【问题描述】:

我想从下面的图像中裁剪红色部分,android中有没有可以裁剪下面图像的简单方法。

我发现了很多 SO 问题,但都建议使用以下代码:

Bitmap croppedBitmap = Bitmap.createBitmap(bitmapOriginal, 100, 100,100, 100); 

如果宽度和高度约为 2MP 分辨率,则此代码运行良好,但如果裁剪部分的分辨率超过 3MP,则应用程序会因 OOM 错误而崩溃。

有什么方法可以在裁剪过程中处理超过 3MP 的图像?

【问题讨论】:

    标签: android image-processing bitmap crop android-image


    【解决方案1】:

    您可以使用以下代码来解决您的问题。

    Matrix matrix = new Matrix();
    matrix.postScale(0.5f, 0.5f);
    Bitmap croppedBitmap = Bitmap.createBitmap(bitmapOriginal, 100, 100,100, 100, matrix, true);
    

    上述方法在裁剪前对图像进行postScalling,这样您可以在裁剪图像时获得最佳效果而不会出现OOM错误。

    更多详情可以参考this blog

    【讨论】:

    • postScale有什么用?
    【解决方案2】:

    1- 将图像视图更改为位图

    final Bitmap bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.img);
    

    2-使用您的位图裁剪您想要的内容

    Bitmap croppedBmp = Bitmap.createBitmap(bitmap, x, y , width , height);
    

    3-注意从上到左的 x,y

    4- 在您的图像视图中再次预览您的位图

    imageView.setImageBitmap(croppedBmp);
    

    【讨论】:

      【解决方案3】:

      如果您想裁剪任何形状的图像或只裁剪选定的部分,那么 你可以使用现成的open source library

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-02-02
        • 2017-03-30
        • 1970-01-01
        • 2012-03-12
        • 1970-01-01
        • 2014-05-19
        • 1970-01-01
        相关资源
        最近更新 更多