问题标签 [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.
android - android 2.1SDK - 调整位图大小
我使用以下代码下载位图并调整其大小:
在我的 onCreate() 函数中,我在使用以前的函数的地方动态创建 ImageViews
如果我不尝试调整位图大小,则没有错误,但如果我尝试调整大小 -> 强制关闭
android - android令人困惑的崩溃
为什么当消息让我有大约 40% 的空闲时,我会收到消息VM won't let us allocate 171600 bytes
并崩溃?java.lang.OutOfMemoryError: bitmap size exceeds VM budget
GC
android - 为什么我将位图(BitmapFactory.decodeFile 的输出)保存到比原始图像文件大的文件中?
我使用opencv(android-jni)调整位图文件的大小并将输出位图保存到名为/mnt/sdcard/org.jpg的文件中
然后使用
获取位图并将此 resultBitmap 重新保存到文件 /mnt/sdcard/result.jpg
那么 org.jpg 大小为 100k,result.jpg 大小约为 300k
为什么?
我的调整大小方法在 jni 中使用 opencv,如下所示:
我的主要是
我的 saveBitmapToFile 是
android - 如何缩放传递给位图的图像视图
嗨,每个正在开发 android applicaiton 的人都可以告诉我如何缩放传递给位图的图像视图。
示例代码:
android - android BitmapFactory.decodeByteArray() 图像类型?
有人知道返回什么像素类型BitmapFactory.decodeByteArray()
吗?
基本上我在相机预览回调中使用这个片段:
我得到了一个很好的位图,我可以与 android 一起使用。但是如果我想将它与 OpenCV 一起使用,它就不起作用,并且由于 OpenCV 需要 ARGB_8888 类型,我猜,我从decodeByteArray()
函数中得到了另一种类型。
谢谢,
弗拉德
android - Android - 使用 PNG 文件在画布上设置背景
Canvas
我正在尝试在我的应用程序中将 .PNG 文件设置为背景。我制作了一个 480 x 800 的图像并使用了这种方法:
我已经启动了一个模拟器(WVGA800),但我的图像看起来比设备的屏幕大。
如何调整此图像的大小或应使用哪种方法使此图像匹配良好。
其次,有没有办法让不同屏幕分辨率的设备通用这样的背景?
先感谢您。
java - 从画布java创建位图
解决方案
感谢@ChandraSekhar 的建议,问题是我将不可变位图传递给画布构造函数。解决方案是在使用 BitmapFactory.decodeFile() 时创建它的副本;
所以我有一个位图,我正在使用 bitmapFactory.decodeFile() 并且这有效。我能够创建位图,然后我需要创建一个画布,这就是事情变得奇怪的地方。
这是正在发生的事情的流程。我捕获一张图像,然后将其传递给确定其大小的 functionA,然后将其保存并返回其文件路径。(我正在使用 Phonegap Cordova)
然后我将该 URL 传递回我的 java 并使用之前保存的图像并在 functionB 中对其进行操作
有问题的代码:
我没有收到任何错误,它只是挂起。这是裤子的关键 - 如果我运行另一个函数,首先说 functionB 一个有效,但另一个无效。
我想也许我需要刷新并关闭我的第一个 FileOutputStream,但这似乎没有任何效果。我为所有元素、位图、画布和文件输出流尝试了不同的变量名称。
这是完整功能的示例...注意:因为我使用的是 phonegap / cordova 我正在返回一个字符串
就像我说的那样,这适用于第一张图片,但是当我尝试再次打开此图片时,根据返回的文件路径,它会在创建画布行中分块。
编辑:我使用的图像路径如下所示:/mtn/sdcard/myApp/tmp.jpg 想法?
android - 需要为 imageview 调整图像大小
我有一个 8 mp 的图像,但它无法在 ImageView 上显示,因为它的文件太大。如何使用 BitmapFactory 重新调整它的大小,然后将此新图像作为 XML 中 ImageView 的源传递?
我的 XML:
我的活动:
android - 调整 BitmapFactory.decodeByteArray() 生成的图像大小
我正在创建音频播放器,我想向播放器显示歌曲封面,它使用小图像但如果 mp3 文件有大图像,那么它会超出布局视图。我正在使用以下代码将图像大小调整为 300x300:
但它仍然显示更大并且超出布局。
这段代码有什么问题?
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 工作推荐一个好的教程吗?