gpt4 book ai didi

haskell - 如何判断Codec.Picture加载的DynamicImage是什么类型

转载 作者:行者123 更新时间:2023-12-02 17:16:42 26 4
gpt4 key购买 nike

我正在尝试使用 JuicyPixels 库加载 PNG,我能够成功完成此操作,但我无法弄清楚底层图像是什么类型。在库中,DynamicImage 定义如下。

data DynamicImage =
ImageY8 (Image Pixel8)
| ImageYA8 (Image PixelYA8)
| ImageRGB8 (Image PixelRGB8)
| ImageRGBA8 (Image PixelRGBA8)
| ImageYCbCr8 (Image PixelYCbCr8)

通过简单的试验和错误,我发现它是一个 ImageRGBA8。

img = (\(ImageRBA8 t) -> t) dynImage

然后就做

imageData img

在ghci中打印图像数据,所有其他类型都会出错。那么我怎样才能在不尝试错误的情况下找出已加载的DynamicImage类型。我确信这很简单,我只是错过了一些东西。

最佳答案

DynamicImage 只是一个 ADT,因此您可以在函数定义或 case 表达式中对其进行模式匹配。使用的确切构造函数将取决于您从文件加载的图像类型(因此在本例中为 RGA8,但在其他情况下可能会有所不同)。

例如:

case img of
ImageY8 imgPixel8 -> ... do something ...
ImageYA8 imgPixelYA8 -> ...
ImageRGB8 imgPixelRGB8 -> ...
ImageRGBA8 imgPixelRGBA8 -> ...
ImageYCbCr8 imgPixelYCbCr8 -> ...

关于haskell - 如何判断Codec.Picture加载的DynamicImage是什么类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16499136/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com