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

android - bitmapfactory 无法加载图像

我有一个 android 应用程序可以将 mysql 数据库中的多个图像加载到 ImageButton 上。

我曾经能够成功加载 png,但现在也失败了(jpg 图像从未成功)。这是我用于下载图像的代码:-

我收到此错误:-

我已经尝试过这里建议的各种组合这里其他几个解决方案,但它对我不起作用。我错过了什么吗?图片肯定出现在我输入的网址中。

谢谢你。

0 投票
0 回答
1062 浏览

android - Android:从 MSSQL 检索图像

我是 Android 新手,尝试从 MSSQL 获取图像并将其设置为背景。

我也尝试过使用:

但是,没有任何效果,我的程序正常工作并创建了正确数量的按钮但没有图像。

我将图像文件作为图像存储在 MSSQL 中并尝试了 varbinary(MAX)

提前致谢

0 投票
1 回答
7711 浏览

android - 如何在没有内存不足异常的情况下从“onPictureTaken”旋转图片?

我在那里看了很多帖子?但我没有找到正确的答案。

我尝试这样做:

有没有办法在不使用 BitmapFactory 的情况下旋转图片?我想在不损失质量的情况下旋转图片!

0 投票
0 回答
4718 浏览

android - 尝试对 Android 使用 copyPixelsFromBuffer 时出现“缓冲区不足以容纳像素”

我遇到以下代码片段的“引起:java.lang.RuntimeException:缓冲区不足以容纳像素”错误:

我认为缓冲区足够大,因为它是根据位图的宽度和高度分配的。问题的原因可能是什么?

0 投票
1 回答
2928 浏览

android - Android:使用 BitmapFactory.decodeFile 打开的文件的方向错误

就像标题一样简单,使用 BitmapFactory.decodeFile 打开的文件在 ImageView 上显示时方向错误。从相机捕获的图像并保存在 tmp 文件中,因此如果设备存在返回 data.getData() null 的错误,我至少有对该文件的引用。

这只是启动相机活动并捕获图像文件

这个文件调整图像大小

尝试获取 ExifOrientation 但始终为 0,因为文件本身的方向正确,就在我加载文件时,文件显示的方向错误。

问候

0 投票
1 回答
339 浏览

android - 如何将“bmp”保存为 sd 卡中的 bmp 文件?

现在我正在尝试从视频文件中获取帧图片,我知道该怎么做(使用ffmpeggetFrameAtTime功能)

所以我可以在我的程序中获得一个帧作为 bmp 结构但是当我将它保存为pngorjpeg时,

这些质量不好,虽然视频质量很好

所以我想保存这个bmp而不进行任何压缩

据我copyPixelsToBuffer所知,功能适用于此,但我做不到... T_T ...

请任何人都可以向我解释如何使用它?//我的录音大小是 (1280, 720)

我应该录制更大尺寸的视频吗?还是应该将帧保存为 SD 卡中的位图???

不压缩???

//我的猜测是它用于压缩。压缩是一种与质量的权衡

现在我用这个函数制作了一个 png 或 jpeg Bitmap.compress(CompressFormat.PNG, 100, fos)

0 投票
2 回答
1219 浏览

java - 中断 BitmapFactory.decodeStream

假设我们有一个工作线程,它BitmapFactory.decodeStream使用一些连接流进行调用,如下所示:

现在我们需要立即终止该线程以回收BitmapFactory已分配的任何内存。我们不能等待它完成太久,因为 UI 线程需要内存。这个例子被简化了,所以让我们不要详细说明为什么必须这样做。我正在寻找这种方法的解决方案,而不是另一种方法。

我们不能残忍地杀死线程,因为它也在做一些其他的事情,我们有可能会泄露一些东西。唯一干净的方法是使用workerThread.interrupt().

不幸的是,BitmapFactory 并不关心线程是否被中断并继续工作。显然,我正在检查Thread.currentThread().isInterrupted()它存在之后的权利,但这还不够。在非常慢的互联网连接上,加载图像可能需要数年时间,这将冻结应用程序(请记住,UI 线程正在等待)。

所以问题是 - 当线程被中断时我如何BitmapFactory停止?我的想法是包装InputStreamin custom FilterInputStream,覆盖每个函数(实际上并不多),并在每个函数中检查线程是否被中断。如果是,扔一些IOException. BitmapFactory一旦尝试从中提取一些数据,这种方式就会停止InputStream,这应该足够了。有没有更好的方法?如果不是,我应该close()在投掷之前调用流IOException吗?

还有一点注意:正在等待额外内存的 UI 线程正在显示 nice ProgressBar,因此如果工作线程需要一两秒钟才能终止,这不是问题。

谢谢!

0 投票
2 回答
1757 浏览

android - BitmapFactory.decodeStream 问题

我正在使用近 150 个图像帧创建一个逐帧动画的应用程序。通过使用 Handler 更改 Image 视图的背景图像来播放动画。在处理程序中,我从文件夹 /mnt/sdcard/Android/data/ApplicationPackage 中检索图像,并通过以下方式将其动态更改为图像视图背景:

这会在解码文件输入流时产生一些问题,因为某些图像需要很长时间才能创建位图。每个图像的图像文件大小几乎小于 40 KB,但是对于相同大小的文件,从外部目录解码图像所需的时间不同。我试图对文件大小和加载进行采样,但它直接影响图像清晰度。谁能建议我将图像从外部文件夹加载到位图并且所有图像的持续时间相同的更好方法是什么?

谢谢,蒂姆

0 投票
2 回答
715 浏览

android - 将位图工厂与 TouchImageView 一起使用时出现 OutOfMemoryError

我正在尝试制作一个片段,该片段将使用 TouchImageView(https://github.com/MikeOrtiz/TouchImageView)显示可缩放图像

该片段还有一个用于更改图像的微调器。问题是第一个图像加载正常,但是当我使用滚动条更改图像时,我得到一个 OutOfMemoryError 并且程序崩溃。这是我的代码

“recylce()”不应该删除第一个图像,让位于内存中的新图像吗?以 MB 为单位的图像大小为 1.4、1.5、1.5、1.3

0 投票
1 回答
3040 浏览

java - 为什么 Bitmap.createBitmap() 返回与源位图不同的可变位图?

根据文档Bitmap createBitmap (Bitmap source, int x, int y, int width, int height, Matrix m, boolean filter)方法:

从源位图的子集中返回一个不可变的位图,由可选矩阵转换。新位图可能是与源相同的对象,或者可能已经制作了副本。它以与原始位图相同的密度进行初始化。如果源位图是不可变的并且请求的子集与源位图本身相同,则返回源位图并且不创建新位图。

我有一种将方向应用于现有位图的方法:

我从这里调用它:

我已经检查过它tmpPhoto是不可变的,但getOrientedPhoto()仍然返回可变图像,它是 tmpPhoto 的副本。有谁知道如何在Bitmap.createBitmap()不创建新位图对象的情况下使用以及我的代码有什么问题?