【问题标题】:Android: get visible bitmap part from PhotoView?Android:从 PhotoView 获取可见的位图部分?
【发布时间】:2017-04-18 22:51:44
【问题描述】:

我使用 PhotoView 库:https://github.com/chrisbanes/PhotoView

这是我最初的案例;它是 PhotoView 组件(红色方块);背景是透明的。我在里面加载了一张标准图片。

现在,我想将可见位图部分提取到另一个位图:

Bitmap original = mPhotoView.getVisibleRectangleBitmap();
        return Bitmap.createBitmap(original, 0, 0, original.getWidth(), original.getHeight(),
                mPhotoView.getImageMatrix(), true);

但结果很糟糕,因为有黑色区域,我不知道为什么......我只想提取有图片的区域而不是所有的PhotoView。

如何在不使用背景的情况下提取?

非常感谢你们!

【问题讨论】:

    标签: android bitmap android-photoview


    【解决方案1】:

    PhotoView extends ImageView 所以您只需在 Photoview 上致电 getDrawable() 即可获得 Drawable

    一旦你有了Drawable,如果它总是BitmapDrawable,你可以在上面调用getBitmap(),你就得到了你的位图。如果不能保证,可以先通读this question,找到最好的转化方式。

    这当然会忽略对视图进行的任何缩放或转换。如果保留这一点很重要,那么这个答案是不相关的。对不起。

    【讨论】:

    • @anthony 您是要恢复原始图像,还是要使用用户设置的转换来获取新图像?
    • @anthony 我用这种方式试了一下,效果很好。 bitbucket.org/randomsnippets/…我仍然不确定您是否正在尝试捕获用户应用于视图的转换,但如果您只是尝试获取原始图像,这种方式应该可行。
    • Stephen:我只想将原始位图的可见部分(实际上=裁剪部分)提取到另一个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-02
    • 1970-01-01
    • 1970-01-01
    • 2011-10-11
    • 2014-05-08
    • 1970-01-01
    • 2012-02-22
    相关资源
    最近更新 更多