问题标签 [juicy-pixels]
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.
haskell - 如何使用 JuicyPixels 写入像素?(在 ST 单子中)
我想将一些像素写入图像,并将图像写入磁盘。我一直在遵循我从许多 Haskeller 那里听到的建议来遵循类型签名,并且基本上玩“类型俄罗斯方块”,直到我到达我要去的地方。它主要为我工作,但我遇到了一些麻烦。
要写一个像素,有一个函数:
我可以通过阅读签名告诉我需要将 MutableImage 传递给它,所以我寻找一个带有 MutableImage 的函数:
这似乎在某种状态单子中运行。
这有效,并返回我可以写入磁盘的漂亮灰色图像。但我不知道如何获取 MutableImage 以便我可以将像素写入它!简单地插入 writePixel 调用会给我一个我无法弄清楚的错误:
结果是:
我可以从 writePixel 签名中看出我缺少 writePixel 的第一个参数。如何获得对 MutableImage 的引用,以便我可以写入它?更重要的是,我如何在这个 monad 中的类型上找到立足点,以便我自己解决这些问题?
opengl - 如何使用 Haskell 中的 JuicyPixels 库加载 OpenGL 纹理
您能否提供一个示例,说明如何在 Haskell 中使用 texImage2D(来自 OpenGL)和 readImage(来自 JuicyPixels 库)加载纹理?
我知道这里已经有一个类似的问题,但是由于我是新手,我无法使该示例有效。我需要完整的代码,也许还需要一些关于它是如何工作的解释......
opengl - OpenGL 纹理包含错误数据 - 这是怎么回事?
我正在尝试将图像加载到 OpenGL 纹理中。
我创建了一个窗口和 GL 4.4 Core Forward-Compatible 上下文:
这是我用来加载图像和创建纹理的代码:
注释掉的行是另一种尝试将任何有意义的东西放入该纹理中。
以下是 gDebugger 报告的纹理信息:
以下是它显示的纹理内容:
当我打印出 JuicyPixels 返回的结构时,它会打印出不同的字节序列,这些字节序列肯定不会产生平面图像。
在此示例中,我没有渲染纹理,而是使用gl
包生成的原始绑定。使用 package.json 时,我的行为完全相同(具有相同的蓝绿色)OpenGL
。不出所料,它在屏幕上呈现为一个平面矩形。
我尝试过使用不同的图像,尺寸为 128x128 和 NPOT(如屏幕截图所示为 100x100)。
什么可能导致这种行为?
完整源码。
image - JuicyPixels 无法加载 PNG 文件
我正在尝试学习如何使用 JuicyPixels 版本 3.2.5.1 加载、修改和保存图像。我有以下代码:
该imageCreator
函数是从 JuicyPixels 文档中稍作修改的:https ://hackage.haskell.org/package/JuicyPixels-3.2.5.1/docs/Codec-Picture.html修改是添加了两个调用fromIntegral
,如没有它们,这个例子就无法编译。(对我来说,文档中的示例无法编译似乎很奇怪,所以如果我在做一些愚蠢的事情,请告诉我)
运行此程序将创建一个名为“test.png”的图像并打印:
无效的PNG文件,签名损坏
这可能是来自调用的错误消息decodePng
。我已经尝试过使用其他一些 PNG,一个是我在 Gimp 中创建的,另一个是我在 MS paint 中创建的。我通过imageCreator "test.png"
从我的主要功能中删除该行来做到这一点,以避免覆盖我想要测试的图像。
为了加载 PNG 图像,我应该改变什么?
haskell - 如何从(大多数)图片中提取 RGB 值?
我想从 Haskell 中的可能图片中提取每个 RGB 值。
获取原始值(0-255)的最简单方法是什么?
我已经用 Juicy Pixels 库得到了一些结果,但不知何故我总是得到例外:
这是对应的代码。
这是一个示例图像:链接
代码目前有点无序,因为我不得不复制一些Codec.Picture.RGBA8
不能通过 LTS 获得的定义。不要介意字符串表示,我正在通过带有 WiFi 屏蔽的 Arduino 解析这些。
haskell - 如何在 haskell 中使用 ffmpeg-light 查找 mp4 元数据?
我正在使用 ffmpeg-light、JuicyPixels 和光泽度来显示带有 Haskell 的视频。我想找到我正在自动播放的视频的元数据,但我还没有找到这样做的方法。
我想访问视频的分辨率和帧速率等元数据。
你能帮助我吗?
编辑:
我已经尝试过您的解决方案@CRDrost,但视频现在以 2 倍正常速度播放。我假设函数 imageReaderTime 给出了错误的时间戳。
编辑2:
播放速度异常是ffmpeg-light库中的一个bug。我在 github 存储库中打开了一个问题。
我更新的代码:
image - Haskell - 使用 ffmpeg-light 包将多个图像文件转换为一个视频文件
背景
我编写了一个图像处理应用程序,它使用ffmpeg-light
包来获取给定视频文件的所有帧,以便之后程序能够对每个帧应用灰度以及边缘检测算法。
现在我正在尝试将所有帧放回单个视频文件中。
使用
的库
ffmpeg-light-0.12.0
JuicyPixels-3.2.8.3
...
我尝试了什么?
老实说,我并没有真正尝试过任何事情,因为我有点不知道从哪里开始以及如何开始。我看到有一个名为Command
允许使用命令行运行进程/命令的包。有了它,我可以使用 ffmpeg (not ffmpeg-light
) 从图像文件中创建一个视频,我必须先将其保存到硬盘驱动器中,但这有点笨拙。
在ffmpeg-light
on hackage ( ffmpeg-light docu ) 的文档中,我发现 frameWriter 函数听起来很有希望。
我猜FilePath
这将是存储视频文件的位置,但我真的无法想象如何将帧EncodingParams
应用于此功能。
我可以访问的其他人:
r
,g
,b
,a
以及y
.a
价值观- 图像宽度/高度/格式
问题
有没有办法使用ffmpeg-light
包来实现这一点?
由于该ffmpeg-light
软件包在从图像转换为视频时缺少文档,我非常感谢您的帮助。(我不希望有一个完全有效的解决方案。)
代码
读取帧的代码:
我卡在哪里/应该将图像转换为视频的代码:
image - Haskell - 将多个图像转换为视频文件 - ffmpeg-lights 的 frameWriter-function 失败
目前
,我正在开发一个图像处理应用程序,该应用程序使用 ffmpeg-light 来获取给定视频文件的所有帧,以便之后程序可以对每个帧应用灰度以及边缘检测算法。
在友好的 stackoverflowers 的帮助下,我能够使用 ffmpeg-lights 的frameWriter
功能设置一种能够将多个图像转换为一个视频文件的方法。
问题
应用程序运行良好,直到它到达frameWriter
函数的那一刻,我真的不知道为什么,因为没有抛出错误或异常消息。(操作系统:Win 10 64 位)
我尝试了什么?
我试过..
- ffmpeg 的不同版本(从 3.2 到 3.4)。
- ffmpeg.exe 使用命令行测试是否缺少任何编解码器,但我尝试的任何转换都有效。
- 不同的 EncodingParams-combinations: like.. EncodingParams width height fps (Nothing) (Nothing) "medium"
问题
不幸的是,上述方法均无效,并且网络缺乏针对该特定案例的信息。也许我错过了一些重要的东西(比如 ghc 标志或其他东西)或者在我的代码中犯了更大的错误。这就是为什么我要问你:你对我有什么建议/建议吗?
Haskell 包
- ffmpeg-light-0.12.0
- JuicyPixels-3.2.8.3
代码
haskell - IO(可能是图片)-> 图片
我正在用 Gloss 创建一个游戏。我有这个功能:
如何获取此 IO(可能是图片)并将其转换为图片?
haskell - 从列表中选择特定图片
我有以下功能:
如果n==0
我要选择pic1
,如果n==1
我要选择pic2
。否则我想选择pic3
. 问题是当其中一张图片没有加载时,它不会出现在列表中。而不是[pic1,pic2,pic3]
我有类似的东西[Pic1,Pic3]
。当功能是supposed
选择不在列表中的图片时,我希望它改写"X"
。为此,我将使用该功能
text "X"
。问题是我不知道如何让它写"X"
而不是选择错误的图片。
编辑:我创建了以下函数,但由于某种原因,我在图片中收到错误“变量不在范围内”。