问题标签 [bitmapfactory]

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 回答
176 浏览

android - android 2.1SDK - 调整位图大小

我使用以下代码下载位图并调整其大小:

在我的 onCreate() 函数中,我在使用以前的函数的地方动态创建 ImageViews

如果我不尝试调整位图大小,则没有错误,但如果我尝试调整大小 -> 强制关闭

0 投票
1 回答
768 浏览

android - android令人困惑的崩溃

为什么当消息让我有大约 40% 的空闲时,我会收到消息VM won't let us allocate 171600 bytes并崩溃?java.lang.OutOfMemoryError: bitmap size exceeds VM budgetGC

0 投票
1 回答
1416 浏览

android - 为什么我将位图(BitmapFactory.decodeFile 的输出)保存到比原始图像文件大的文件中?

我使用opencv(android-jni)调整位图文件的大小并将输出位图保存到名为/mnt/sdcard/org.jpg的文件中

然后使用

获取位图并将此 resultBitmap 重新保存到文件 /mnt/sdcard/result.jpg

那么 org.jpg 大小为 100k,result.jpg 大小约为 300k

为什么?

我的调整大小方法在 jni 中使用 opencv,如下所示:

我的主要是

我的 saveBitmapToFile 是

0 投票
1 回答
716 浏览

android - 如何缩放传递给位图的图像视图

嗨,每个正在开发 android applicaiton 的人都可以告诉我如何缩放传递给位图的图像视图。

示例代码:

0 投票
1 回答
746 浏览

android - android BitmapFactory.decodeByteArray() 图像类型?


有人知道返回什么像素类型BitmapFactory.decodeByteArray()吗?

基本上我在相机预览回调中使用这个片段:

我得到了一个很好的位图,我可以与 android 一起使用。但是如果我想将它与 OpenCV 一起使用,它就不起作用,并且由于 OpenCV 需要 ARGB_8888 类型,我猜,我从decodeByteArray()函数中得到了另一种类型。

谢谢,
弗拉德

0 投票
3 回答
10692 浏览

android - Android - 使用 PNG 文件在画布上设置背景

Canvas我正在尝试在我的应用程序中将 .PNG 文件设置为背景。我制作了一个 480 x 800 的图像并使用了这种方法:

我已经启动了一个模拟器(WVGA800),但我的图像看起来比设备的屏幕大。

如何调整此图像的大小或应使用哪种方法使此图像匹配良好。

其次,有没有办法让不同屏幕分辨率的设备通用这样的背景?

先感谢您。

0 投票
2 回答
6602 浏览

java - 从画布java创建位图

解决方案

感谢@ChandraSekhar 的建议,问题是我将不可变位图传递给画布构造函数。解决方案是在使用 BitmapFactory.decodeFile() 时创建它的副本;

所以我有一个位图,我正在使用 bitmapFactory.decodeFile() 并且这有效。我能够创建位图,然后我需要创建一个画布,这就是事情变得奇怪的地方。

这是正在发生的事情的流程。我捕获一张图像,然后将其传递给确定其大小的 functionA,然后将其保存并返回其文件路径。(我正在使用 Phonegap Cordova)

然后我将该 URL 传递回我的 java 并使用之前保存的图像并在 functionB 中对其进行操作

有问题的代码:

我没有收到任何错误,它只是挂起。这是裤子的关键 - 如果我运行另一个函数,首先说 functionB 一个有效,但另一个无效。

我想也许我需要刷新并关闭我的第一个 FileOutputStream,但这似乎没有任何效果。我为所有元素、位图、画布和文件输出流尝试了不同的变量名称。

这是完整功能的示例...注意:因为我使用的是 phonegap / cordova 我正在返回一个字符串

就像我说的那样,这适用于第一张图片,但是当我尝试再次打开此图片时,根据返回的文件路径,它会在创建画布行中分块。

编辑:我使用的图像路径如下所示:/mtn/sdcard/myApp/tmp.jpg 想法?

0 投票
2 回答
1924 浏览

android - 需要为 imageview 调整图像大小

我有一个 8 mp 的图像,但它无法在 ImageView 上显示,因为它的文件太大。如何使用 BitmapFactory 重新调整它的大小,然后将此新图像作为 XML 中 ImageView 的源传递?

我的 XML:

我的活动:

0 投票
3 回答
8816 浏览

android - 调整 BitmapFactory.decodeByteArray() 生成的图像大小

我正在创建音频播放器,我想向播放器显示歌曲封面,它使用小图像但如果 mp3 文件有大图像,那么它会超出布局视图。我正在使用以下代码将图像大小调整为 300x300:

但它仍然显示更大并且超出布局。

这段代码有什么问题?

0 投票
1 回答
792 浏览

android - android - 我应该使用 GLSurfaceView 而不是 Canvas 来避免 bitmapfactory oom 吗?

我的应用需要加载建筑平面图,然后在平面图上绘制对象(家具)。平面图图像是 2500 x 1500 240Kb PNG,但由于需要 12+Mb 的堆来创建位图,因此需要 12+Mb 的堆来使大多数设备崩溃,给我一个 OutOfMemory 错误。让我在这里澄清一下:据我所知,这不是内存泄漏,而 bitmap.recycle() 什么也不做,因为它在第一次创建第一个图像时崩溃了。除非我使用使图像无法识别的样本大小,否则使用 inSampleSize 读取图像无济于事。这整个情况很疯狂。我在 Droid 3、HTC Inspire 和两个 2.3 模拟器上进行测试。HTC 将加载地图,模拟器(可笑)堆大小为 128Mb。这个应用程序的部署将在所有安卓用户中使用,所以我可以'

这是我当前的代码,它给了我一个无法使用的图像(来自另一个 SO 帖子,抱歉我丢失了链接):

GLSurfaceView 会在这里解决我的问题吗?我需要它来 1) 加载平面图图像,2) 允许我以编程方式绘制对象和文本标签,以及 3) 支持缩放并根据平面图坐标对触摸做出反应。如果这是答案,任何人都可以为这样的基本 2D 工作推荐一个好的教程吗?