问题标签 [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.
android - 当还有一个矩阵时使用 BitmapRegionDecoder
使用 BitmapRegionDecoder 对部分区域进行解码在一般使用中效果很好。
但是,我遇到了一段代码,我必须使用 BitmapRegionDecoder 替换位图的创建,但这里有一个问题:新位图的创建同时使用了矩形和矩阵,而我肯定知道该矩阵仅用于平移和缩放。
我将如何转换这样的代码以供 BitmapRegionDecoder 使用?
例如,我如何转换这个:
进入使用 BitmapRegionDecoder.decodeRegion 的东西?
我尝试使用 Matrix.mapRect ,但我认为这没有意义,因为与原始代码相比,输出位图的结果很奇怪。
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)
......
示例调用:
功能:
android - BitmapRegionDecode.decodeRegion,尝试从位图创建图块时出现skia错误
嗨,我收到一个错误skia:--- 当我尝试使用 BitmapRegionDeocde.decodeRegion 解码第二个区域时,decoder->decodeRegion 返回 false。我设法获得第一个区域位图,但如果第二个区域为空。
如何在不出现此错误的情况下获取所有区域的位图?
这是我的代码示例:
android - 使用 BitmapRegionDecoder 从 PNG 条带加载 26 个字母的图像
在文字游戏应用程序中,我试图从6205 x 240 PNG 图像中加载 26 个字母图块:
在真实设备(Moto G)上,这失败了(我猜从 1.5x 缩小drawables-xxhdpi
):
OpenGLRenderer 位图太大而无法上传到纹理中 (4137 x 160; max=4096x4096)
并且不显示字母图像(拖动的图块似乎是空的):
所以我想使用BitmapRegionDecoder加载 240 x 240 位图,但作为一个 Android 编程新手(我也搜索过),我仍然有 2 个问题:
- 如何加载
R.drawable.big_english
- 没有合适的构造函数? isShareable
考虑到我加载了 26 个字母,我可以在这里使用吗?
android - 使用 BitmapRegionDecoder 加载的图像在模拟器上正常,但在设备上太大
在一个简单的文字游戏应用程序中,我使用以下代码从PNG 图像条纹加载 26 个字母平铺图像:
这在 Android 模拟器中运行良好:
但是在真正的 Moto G 设备上,字母太大(可能是 1.5 倍?当我打印时sContext.getResources().getDisplayMetrics().density
,出于某种原因得到 2.0):
同时,黄色方形瓷砖背景正确显示。
所有(big_tile.png和big_english.png和game_board.png)都是 PNG 图像 - 那么为什么有区别呢?
为什么会发生这种情况以及如何解决这个问题?
我应该使用inDensity
或任何其他BitmapFactory.Options吗?
或者是因为我的getResources().openRawResource()
电话 - 但改用什么?
android - 使用 BitmapRegionDecoder 时绘制垃圾而不是透明颜色
所以,简单的任务:我有一张大图,它有透明的部分。我想使用 BitmapRegionDecoder 方法 decodeRegion 将它的矩形部分解码为位图。虽然图片的不透明部分解码得很好,但我得到了一些废话而不是透明部分。有人遇到过熟悉的事情吗?我使用的代码:
android - 为什么我没有收到内存不足异常?
我在可绘制文件夹中有一个高分辨率图像(2588 * 1603)。如果我使用下面的代码 (1) 为 imageView 设置它,我不会得到 OOM 异常并且图像按预期分配:
请注意,矩形大小与图像大小完全相同。
但是如果我使用其他方法,例如 2 或 3,我会得到 OOM。
1 和 2,3 和有什么不一样?
(我知道怎么解决OOM,我只是想知道区别)
android - BitmapRegionDecoder - 反向使用来构建一个新图像
我想制作一个没有质量损失的裁剪功能。因此,我以较低质量加载图像并重新加载图像的部分内容以BitmapRegionDecoder
以良好的分辨率显示图块。到目前为止一切顺利,显示效果很好。
现在我想提供一个减少损失的裁剪功能,这意味着用户可以选择应该裁剪图像的哪个区域 - 基于图像的平铺或较低质量的“预览”。基于此,我可以计算出用户想要在真实位图坐标中裁剪的所需区域。
假设位图是 20000x20000,我想裁剪 15000x15000 大小的区域,代表主图像的中心,我该怎么做?
如果加载了完整的位图,我知道该怎么做,但我不知道如何做到这一点。
如何以内存友好的方式从图块创建位图?
android - BitmapRegionDecoder 使用 APK 扩展 ZIP 库读取 OBB
我正在尝试使用 BitmapRegionDecoder 和 APK 扩展 Zip 库从 OBB 文件中读取位图,如下所示。
令我惊讶的是,BitmapRegionDecoder 抛出了 IOException,我不知道为什么。如下使用 InputStream 时,BitmapRegionDecoder 读取请求的位图区域没有问题。
我宁愿不使用 InputStream,因为我必须平铺一个非常大的图像,因此必须为每个平铺创建一个新流(因为我不知道如何“倒带”)。这似乎经常调用垃圾收集。目前我最好的解决方案是解压缩文件,然后从那里读取它们。但这会使设备上的数据大小翻倍。
有没有人成功使用带有 OBB 文件的 BitmapRegionDecoder ?