我开始使用Juicy Pixels库并且在解构方面遇到了一些问题。
有类型:
data DynamicImage =
ImageY8 (Image Pixel8)
| ImageYA8 (Image PixelYA8)
| ImageRGB8 (Image PixelRGB8)
| ImageRGBA8 (Image PixelRGBA8)
| ImageYCbCr8 (Image PixelYCbCr8)
其中 Pixel* 是Pixel类的实例
有一些函数适用于Image a类型,我希望从DynamicImage中提取Image a,但我不能
当我尝试做类似的事情时
img :: (Pixel a) => DynamicImage -> Image a
img (ImageY8 i) = i
img (ImageYA8 i) = i
img (ImageRGB8 i) = i
img (ImageRGBA8 i) = i
img (ImageYCbCr8 i) = i
解释器抛出一个错误,比如
Couldn't match type `PixelYCbCr8' with `GHC.Word.Word8'
Expected type: Image b
Actual type: Image Pixel8
In the expression: i
In an equation for `img': img (ImageY8 i) = i
有没有其他方法可以提取图像数据?