我正在使用Haskell图像处理库,使用堆栈与lts-8.23解析器(iirc)进行拉伸。我只是在学习Haskell。简而言之:readImageExact按预期工作,但readImage不能。
此Main.hs按预期编译:
import Graphics.Image
import Graphics.Image.IO
type BasicImage = (Image VS YCbCr Word8)
main :: IO ()
main = do
img <- readImageExact' JPG "frog.jpg" :: IO(BasicImage)
return ()
仅使用readImage的那个不会:
img <- readImage' "frog.jpg" :: IO(BasicImage)
我得到的错误信息是:
• No instance for (Readable (Image VS YCbCr Word8) InputFormat)
arising from a use of ‘readImage'’
• In a stmt of a 'do' block:
img <- readImage' "frog.jpg" :: IO (BasicImage)
[...]
设置:使用lts-8.23解析器重新安装堆栈,从Stackage(1.5.3.0)拉出臀部。
答案 0 :(得分:2)
格式为Readable
的{{1}}个实例,for one除外:
InputFormat
instance AllReadable arr cs => Readable (Image arr cs Double) InputFormat
基本上表示我们希望能够阅读所有格式。但是,踢球者是AllReadable
。您不能将Double
与readImage'
一起使用,必须使用Image * * Word8
。
我想这是由Image * * Double
格式引起的,它使用HDR
。