我正在尝试使用 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
不尝试错误的情况下确定已加载的类型。我敢肯定这很简单,我只是错过了一些东西。