问题标签 [bitmapregiondecoder]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
620 浏览

android - 当还有一个矩阵时使用 BitmapRegionDecoder

使用 BitmapRegionDecoder 对部分区域进行解码在一般使用中效果很好。

但是,我遇到了一段代码,我必须使用 BitmapRegionDecoder 替换位图的创建,但这里有一个问题:新位图的创建同时使用了矩形和矩阵,而我肯定知道该矩阵仅用于平移和缩放。

我将如何转换这样的代码以供 BitmapRegionDecoder 使用?

例如,我如何转换这个:

进入使用 BitmapRegionDecoder.decodeRegion 的东西?

我尝试使用 Matrix.mapRect ,但我认为这没有意义,因为与原始代码相比,输出位图的结果很奇怪。

0 投票
2 回答
1035 浏览

java - 在 Bitmapfactory 中解码图像的特定区域?

我正在与GeoTiff/PNG文件太大而无法在我的代码中作为一个整体进行处理。

是否有可能在 bitmapfactory 中解码文件的特定区域(例如,由两个 x,y 坐标给出)?没有发现任何看起来相似的东西http://developer.android.com/reference/android/graphics/BitmapFactory.html(Android 的开发者参考)。

谢谢!


根据 kcoppock 的提示,我设置了以下解决方案。

虽然我想知道为什么rect需要初始化Rect(left, bottom, right, top)而不是Rect(left, top, right, bottom)......

示例调用:

功能:

0 投票
1 回答
972 浏览

android - BitmapRegionDecode.decodeRegion,尝试从位图创建图块时出现skia错误

嗨,我收到一个错误skia:--- 当我尝试使用 BitmapRegionDeocde.decodeRegion 解码第二个区域时,decoder->decodeRegion 返回 false。我设法获得第一个区域位图,但如果第二个区域为空。

如何在不出现此错误的情况下获取所有区域的位图?

这是我的代码示例:

0 投票
1 回答
189 浏览

android - 使用 BitmapRegionDecoder 从 PNG 条带加载 26 个字母的图像

文字游戏应用程序中,我试图从6205 x 240 PNG 图像中加载 26 个字母图块:

在真实设备(Moto G)上,这失败了(我猜从 1.5x 缩小drawables-xxhdpi):

OpenGLRenderer 位图太大而无法上传到纹理中 (4137 x 160; max=4096x4096)

并且不显示字母图像(拖动的图块似乎是空的):

摩托G照片

所以我想使用BitmapRegionDecoder加载 240 x 240 位图,但作为一个 Android 编程新手(我也搜索过),我仍然有 2 个问题:

  1. 如何加载R.drawable.big_english- 没有合适的构造函数?
  2. isShareable考虑到我加载了 26 个字母,我可以在这里使用吗?
0 投票
2 回答
1819 浏览

android - 使用 BitmapRegionDecoder 加载的图像在模拟器上正常,但在设备上太大

一个简单的文字游戏应用程序中,我使用以下代码从PNG 图像条纹加载 26 个字母平铺图像:

图像条纹

这在 Android 模拟器中运行良好:

模拟器

但是在真正的 Moto G 设备上,字母太大(可能是 1.5 倍?当我打印时sContext.getResources().getDisplayMetrics().density,出于某种原因得到 2.0):

Moto G 设备

同时,黄色方形瓷砖背景正确显示。

所有(big_tile.pngbig_english.pnggame_board.png)都是 PNG 图像 - 那么为什么有区别呢?

为什么会发生这种情况以及如何解决这个问题?

我应该使用inDensity或任何其他BitmapFactory.Options吗?

或者是因为我的getResources().openRawResource()电话 - 但改用什么?

0 投票
1 回答
103 浏览

android - 使用 BitmapRegionDecoder 时绘制垃圾而不是透明颜色

所以,简单的任务:我有一张大图,它有透明的部分。我想使用 BitmapRegionDecoder 方法 decodeRegion 将它的矩形部分解码为位图。虽然图片的不透明部分解码得很好,但我得到了一些废话而不是透明部分。有人遇到过熟悉的事情吗?我使用的代码:

0 投票
4 回答
644 浏览

android - 为什么我没有收到内存不足异常?

我在可绘制文件夹中有一个高分辨率图像(2588 * 1603)。如果我使用下面的代码 (1) 为 imageView 设置它,我不会得到 OOM 异常并且图像按预期分配:

请注意,矩形大小与图像大小完全相同。

但是如果我使用其他方法,例如 2 或 3,我会得到 OOM。

1 和 2,3 和有什么不一样?

(我知道怎么解决OOM,我只是想知道区别)

0 投票
0 回答
111 浏览

android - BitmapRegionDecoder - 反向使用来构建一个新图像

我想制作一个没有质量损失的裁剪功能。因此,我以较低质量加载图像并重新加载图像的部分内容以BitmapRegionDecoder以良好的分辨率显示图块。到目前为止一切顺利,显示效果很好。

现在我想提供一个减少损失的裁剪功能,这意味着用户可以选择应该裁剪图像的哪个区域 - 基于图像的平铺或较低质量的“预览”。基于此,我可以计算出用户想要在真实位图坐标中裁剪的所需区域。

假设位图是 20000x20000,我想裁剪 15000x15000 大小的区域,代表主图像的中心,我该怎么做?

如果加载了完整的位图,我知道该怎么做,但我不知道如何做到这一点。

如何以内存友好的方式从图块创建位图?

0 投票
0 回答
87 浏览

android - BitmapRegionDecoder 使用 APK 扩展 ZIP 库读取 OBB

我正在尝试使用 BitmapRegionDecoder 和 APK 扩展 Zip 库从 OBB 文件中读取位图,如下所示。

令我惊讶的是,BitmapRegionDecoder 抛出了 IOException,我不知道为什么。如下使用 InputStream 时,BitmapRegionDecoder 读取请求的位图区域没有问题。

我宁愿不使用 InputStream,因为我必须平铺一个非常大的图像,因此必须为每个平铺创建一个新流(因为我不知道如何“倒带”)。这似乎经常调用垃圾收集。目前我最好的解决方案是解压缩文件,然后从那里读取它们。但这会使设备上的数据大小翻倍。

有没有人成功使用带有 OBB 文件的 BitmapRegionDecoder ?