- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在做一个 android 应用程序来解压缩、解码和显示 HDR 图片。
这些 HDR 图片每个组件(A、R、G、B)使用 2 个字节,因此一个像素由 8 个字节的值表示,该值只能与 long 类型匹配。
我正在使用 android 的 Bitmap 来显示图片,因为它们有一个构造函数允许使用 Bitmap.Config.RGBA_F16
进行 HDR :
int width = 1;
int height = 1;
Bitmap image = Bitmap.createBitmap(width, height, Bitmap.Config.RGBA_F16);
long color = (A & 0xffff) << 48 | (B & 0xffff) << 32 | (G & 0xffff) << 16 | (R & 0xffff);
image.setPixel(0,0,color); //Argument type error
最佳答案
如果需要打开 HDR 文件,例如 16 位 png,然后显示,可以使用 ImageDecoder.setTargetColorSpace 创建格式为 Bitmap.Config.RGBA_F16
的位图像这样:
File file = new File(...);
ImageDecoder.Source source = ImageDecoder.createSource(file);
Drawable drawable = ImageDecoder.decodeDrawable(source, (decoder, info, src) -> {
decoder.setTargetColorSpace(ColorSpace.Named.EXTENDED_SRGB);
});
如果您需要显示存储在内存中的 HDR 图像,您可以使用
Bitmap.copyPixelsFromBuffer
, 因为这种方法允许在不转换颜色空间的情况下设置位图的像素
Bitmap.setPixel
做。在这种情况下,您需要打包
Half
表示的 4 个 channel 。将每个像素的值转换为 long,然后将这些 long 值写入
Buffer
最后将像素从缓冲区复制到位图。
LongBuffer buffer = LongBuffer.allocate(width * height);
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
// fill pixels values as needed
float r = (float)y / height;
float g = (float)y / height;
float b = (float)y / height;
float a = 1f;
long rBits = Half.halfToShortBits(Half.toHalf(r));
long gBits = Half.halfToShortBits(Half.toHalf(g));
long bBits = Half.halfToShortBits(Half.toHalf(b));
long aBits = Half.halfToShortBits(Half.toHalf(a));
long color = aBits << 48 | bBits << 32 | gBits << 16 | rBits;
buffer.put(color);
}
}
buffer.rewind();
bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.RGBA_F16);
bitmap.copyPixelsFromBuffer(buffer);
关于java - 如何在 Android 中显示 HDR 图片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55458589/
我无法理解 HDR Histogram 的基本概念: The HDR Histogram maintains a fixed cost in both space and time. A Histog
您知道如果图像足够亮或曝光过度,每种颜色最终会变成白色吗?我正在尝试找出一个函数来执行此操作,以逼真且令人愉悦的方式应用于生成的 HDR 图像(我猜是使用理想化的相机性能作为引用)。 我想要获得的算法
最近受朋友的委托,想自己实现Matlab里的一个HDR转LDR的函数,函数名是tonemapfarbman,乘着十一假期,稍微浏览下这个函数,并做了一点C++的实现和优化。 为了看到这个函数
我对高动态范围 (HDR) 图像有一些疑问。首先,有人可以告诉我这些图像是如何存储的,我的意思是采用哪种格式?每个像素有多少位? 其次,是否可以以每像素(每 channel )8 位的常用图像格式(如
当我将此加载项部署到 MS Word 应用程序时,我必须多次单击该按钮才能最终使 hdr.insertOoxml() 成功运行。有时不得不点击这个功能超过 4 次(见下面的代码)。虽然,这似乎在 Wo
我正在开展一个使用 HDR 传感器的项目。 我们正在读取每张图像 4 个“图像”-> 4 个不同的曝光时间。 “混合”这 4 张图像以获得具有最高可能动态范围的输出图像的最佳方式是什么? 有没有像 O
我正在尝试在 OpenGL 中实现 HDR。 这是我制作 HDR 帧缓冲区的方式: glGenFramebuffers(1, &framebuffer); glBindFramebuffer(GL_F
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 8 年前。
我正在将我的 webgl 延迟渲染器转换为使用高动态范围的渲染器。我从网上的各种来源阅读了很多有关该主题的内容,并且有一些问题希望能够得到澄清。我完成的大部分阅读内容都涉及 HDR 图像渲染,但我的问
我需要打开 .hdr 文件并对其进行处理,但 imageIO 不支持该格式。 问题是我需要尽可能减少信息丢失:32bpc 是完美的,16 就可以了,少了 16 就不行了。 我想到了 3 种可能的解决方
默认情况下,Arcore/Sceneform 使用房间作为 HDR 环境图像。我该如何更换它? Default HDR Room 最佳答案 目前无法设置自己的环境贴图。如果您想跟踪开发,请跟踪此功能请
我正在使用 FCam 拍照,现在没有修改,照片与智能手机相机相当。 FCam 宣传 HDR 和低光性能,但我没有看到任何在拍照时如何使用它的示例。 如何拍摄 HDR 照片?根据我使用 SLR 的经验,
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 6 年前。
关闭。 这个问题不符合 Stack Overflow guidelines 。它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年
我做了什么:- 我尝试启用stabilization 和HDR 但它不起作用。我认为我走对了路。当我尝试检查当前设备是否支持稳定时和 HDR 在这两种情况下我在所有设备中都只有错误的情况。 如果下面的
我目前被困在图片视频项目上。 问题: 我正在从 UE4 中提取图片,由于一个错误,在屏幕截图的渲染过程中并未考虑所有灯光。输出是 HDR 图像。我想获得更好的亮度,因为导出的图片很暗,就像第一次曝光一
我使用 AVFoundation 框架来创建自定义相机应用程序。 是否可以为自定义相机应用使用 HDR 拍摄照片,即 HDR 是否暴露在相机 api 中? 最佳答案 有同样的问题并在this中找到了答
我想通过 AVFoundation 和/或 CoreImage 获得实时和后处理的 HDR 效果。我假设一旦捕捉到全帧静止图像,使用 CoreImage 就相对容易,但是有人知道如何使用 AVCapt
有人知道可用于使用 Camera2 API 实现 HDR+ Auto 的文档吗?我找不到任何使用它的示例。 Open Camera 使用 HDR,但不使用 HDR+ Auto。 最佳答案 HDR+ A
据小米电视官方消息,小米电视4S 75英寸今日到手价3999元。小米电视4S 75英寸于去年11月发布,采用4K超高清屏幕与金属机身,内置小爱同学。 外观设计方面,小米电视4S 75英寸采用窄
我是一名优秀的程序员,十分优秀!