问题标签 [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 投票
1 回答
1599 浏览

android - decodeByteArray() 大约 90% 的时间返回 null

我正在尝试显示通过本地网络发送到我的 android 设备的图像。图像通过 tcp 从计算机发送到我的 android 设备。图片是png的。传过来的数据是png的字节数组流,打包成google protobuf消息。在android端,在接收到数据的时候,会读入一个字节数组,然后将该数组交给BitmapFactory.decodeByteArray(). 但是,这大约 90% 的时间返回 null。这仅发生在真实设备上,但我目前只能在令人难以置信的 htc 上进行测试。我已经在 android sdk 模拟器上试过这个,我可以 100% 地得到我的图像。

与在线 BitmapFactory 相关的其他问题一直与使用文件流有关,其中解码没有获得全部数据,但我还没有找到任何解决方案,以便开发人员确定是否收到了全部数据,并且它只发生在真实设备上。

是否有某种我不知道的用法decodeByteArray()byte[]我传入的只是文件本身。

编辑:多亏了 Brian Cooley 的第二个见解。

我太快判断错误可能在 decodeByteArray() 中。如果有人遇到这个问题,请确保您确保您拥有完整的数据。我错误地假设我的字节流很好。所以首先对你发送和接收的数据做一个快速的比较,并确保你得到了你应该得到的。

0 投票
1 回答
946 浏览

android - Android :: BitmapFactory 截断图像

我们正在尝试使用谷歌图表 api 的原型。

在此处输入图像描述

问题是当我们在浏览器中看到图表时,它会显示图例。但是当我们使用 BitmapFactory 将图像下载到 ImageView 甚至 SD 卡时,图例会丢失(无论图例放置在顶部、底部、左侧还是右侧,都会发生这种情况)。

这是代码

这是注释行下载的图像。

我们还注意到,在 URL (chs=500x300) 中指定的图表尺寸也与图像尺寸匹配。

在此处输入图像描述

0 投票
1 回答
1307 浏览

android - 如何取消运行 BitmapFactory.decodeFile() 和清理的 AsyncTask

In my interface, the user selects from a variable number of songs, and when a song is selected, I need to display the relevant background image. 用户需要在加载图像时保持对界面的控制,并且仍然可以更改歌曲。

我目前这样做的方式是使用 AsyncTask。

我正在使用以下方法执行它:

如果前一个任务仍在运行,则尝试取消它并重新创建它。

任务代码执行位图加载:

我把回收、归零、运行 GC 搞得一团糟,所有这些都试图取消当前任务,以便新创建的任务有足够的内存可供分配,但无论我尝试什么,我总是在尝试时遇到内存不足异常跑太多太快(大约 4/5 次)

这些图像是 1024x768 jpg 文件,并要求 1.5mb 内存分配,我使用 bitmapfactory 选项:

绝对 - 任何建议将不胜感激,我一直在寻找关于回收位图、归零、GC、尝试使用可清除位图的方法。

0 投票
0 回答
236 浏览

java - 是否有相当于 android 的位图工厂的小程序?

我有一个 android 项目,我正在将一些项目移植到基于 Applet 的衍生产品中。我可以在小程序中使用 android 的 BitmapFactory 的类似图像处理库吗?我需要专门加载和缩放 JPEG 并将它们转换为位图以用作 JOGL 纹理。任何建议将不胜感激。

0 投票
1 回答
963 浏览

android - BitmapFactory.decode method returning null

I'm using this code to get the bitmap placed inside the ImageView]

and this code to save it to the database in the form of a byte array

Decoding the image using this code to redisplay it returns null

I have logged the byte array before inserting and after retrieving and they both return the same values. Where did it go wrong?

0 投票
3 回答
10262 浏览

android - BitmapFactory.decodeStream(InputStream is) 在 Android 上为非 null InputStream 返回 null

我正在开发一个 Android 应用程序,它的视图包含多个图库。画廊(位图)的内容是来自互联网的红色。

对于第一个画廊,一切正常,但是当尝试下载第二个画廊的第一个图像时,BitmapFactory.decodeStream(InputStream)返回 null,而流不为 null。

返回图像的getThumbUrl()URL(例如http://mydomain.com/image.jpg)并NullPointerException在该行抛出 a Log.i("MY_TAG", "Height: ... )imagesArrayList我的类的包含对象,它也包含 URL 和位图)。

感谢您的任何建议!

0 投票
1 回答
2142 浏览

android - Android - BitmapFactory.decodeByteArray 返回 null

我正在尝试使用套接字连接将图像从 pc 传输到 android。我能够从电脑接收数据到手机,但是当我通过byte[]to时BitmapFactory,它返回 null。有时它会返回图像,但并非总是如此。

图像大小为40054 bytes。我2048 bytes一次收到,因此创建了保存byte数据的小型数据池(缓冲区)。收到完整数据后,我将其传递给BitmapFactory. 这是我的代码:

计算

我也尝试一次读取完整的 40054 字节,但这也没有奏效。这是代码:

最后也检查了,decodeStream但结果是一样的。

知道我在哪里做错了吗?

谢谢

0 投票
8 回答
47987 浏览

android - Android:decodeFile 总是为内部存储中的文件返回 null

我有一个文件本地保存到应用程序的私有存储中。我已经验证它存在,但是每当我调用它时,BitmapFactory.decodeFile它总是返回null

如果我将文件保存为资源并使用ImageView.setImageResource,它总是显示得很好。

问题是什么?

这是片段:

我也试过:

0 投票
1 回答
650 浏览

android - BitmapFactory.decodeFile() 返回 null,但图像在计算机上渲染得很好?

我正在从网上下载个人资料图片并将它们存储在 sd 卡上。我将图像加载到列表中。在大多数情况下,它都有效。我的测试数据中有大约 300 张图像,其中只有大约 3 张在使用 BitmapFactory.decodeFile 时无法解码。如果我将图像从手机复制到计算机,图像将呈现良好。

我认为这些图像可能部分损坏,计算机只是忽略损坏的部分并继续渲染。如果是这种情况,是否有某种方法可以在 android 上强制执行相同的操作?

我不确定为什么会失败,所以如果您认为这是其他问题,请告诉我。

谢谢!

0 投票
2 回答
1919 浏览

android - android如何在没有OutOfMemory的情况下加载/保存原始大小的位图

我阅读了很多关于 inSampleSize OutOfMemory 困境的讨论。
无法得到一个好的解决方案,所以我问了一个问题。
我目前正在加载一个 inSampleSize=4 的位图。
这将给我一个大小为 648x388 的位图。
原始磁盘大小为 2592x1592。

我在 648x388 位图上写入文本并将其保存回磁盘。
我在 648x388 上写作,因为 2592x1592 给了我 OutOfMemory 。

它的工作方式是while循环保存 1-10 个 648x388 位图。
我想更改此循环以保存 1-10 个 2592x1592 位图。

如何安全加载 2592x1592?
我不在乎分辨率下降 60% 或更多。
只要位图具有相同的大小 2592x1592。
有没有办法可以保持尺寸但使位图更薄,
去除颜色而不会使质量变差。

我的第一个想法是这样来获得我能得到的最大位图:我没有测试过这个,但感觉这是一个不好的方法

任何帮助都会很感激。