【问题标题】:Crop Bitmap using RectF parameters on Android在 Android 上使用 RectF 参数裁剪位图
【发布时间】:2015-08-01 21:09:42
【问题描述】:

使用带有触摸和缩放事件的 MikeOrtiz 的 awesome ImageView implementation,我想裁剪用相机拍摄的照片以匹配缩放。用他的方法……

// Return a Rect representing the zoomed image.
RectF getZoomedRect();

...我尝试将生成的图片位图裁剪为缩放大小,如下所示:

RectF zoomCoordinates = mTouchImageView.getZoomedRect();

Bitmap croppedBitmapToOverview = Bitmap.createBitmap(
                AppResources.sCurrentImage,
                ((int) zoomCoordinates.left),
                ((int) zoomCoordinates.top),
                ((int) zoomCoordinates.width()),
                ((int) zoomCoordinates.height()));

但是,我得到一个“必须大于 0”的错误。在调试时,我注意到由于转换为整数,所有值都是 0。然而,真正的价值是这样的:

//Log.d print for each of those fields without the int cast
Left 0.34047672
Top 0.20797288
Width 0.33333334
Height 0.3429547

所以这是我的问题,但我不知道如何解决这个问题。我以前从未使用过位图或画布、矩形等。

我可以对这些值进行一些调整,还是应该完全采用不同的方法?

【问题讨论】:

    标签: android image bitmap zooming crop


    【解决方案1】:

    通过简单地对各种视图进行“截图”来解决问题。这给了我一张放大图片的位图

    mTouchImageView.setDrawingCacheEnabled(true);
            AppResources.sCurrentImage = Bitmap.createBitmap(mTouchImageView.getDrawingCache());
    

    【讨论】:

      【解决方案2】:

      将坐标与图像的大小相乘

      (int)(zoomCoordinates.left * imageSize)
      

      【讨论】:

        猜你喜欢
        • 2015-12-11
        • 2012-11-08
        • 2011-10-18
        • 2012-12-02
        • 2019-05-10
        • 2015-02-02
        • 2013-05-19
        • 1970-01-01
        • 2013-04-05
        相关资源
        最近更新 更多