Tengo muy poca experiencia en Haskell y quiero escribir un rastreador de rayos simple para la práctica. Como no quería usar herramientas de GUI como wxHaskell (creo que tomará mucho tiempo aprender a usarlas), decidí simplemente guardar la imagen de salida en un archivo BMP. Pero tengo un problema aquí:"No se pudo hacer coincidir el tipo esperado con el tipo real" error al usar Codec.BMP
module Main where
import Codec.BMP
import qualified Data.ByteString as BS
main = do
Right bmp <- readBMP "grass.bmp"
BS.putStrLn $ BS.take 4 $ unpackBMPToRGBA32 bmp
Aquí sólo quiero tomar el primer píxel de la imagen e imprimir sus valores RGBA. Pero me sale un error que dice
Couldn't match expected type `BS.ByteString'
with actual type `bytestring-0.9.2.1:Data.ByteString.Internal.ByteString'
In the return type of a call of `unpackBMPToRGBA32'
In the second argument of `($)', namely `unpackBMPToRGBA32 bmp'
In the second argument of `($)', namely
`BS.take 4 $ unpackBMPToRGBA32 bmp'
¿Qué estoy haciendo mal? ¿Cómo puedo tomar los píxeles de la imagen e imprimir sus valores?
Sí, funciona! Gracias, esta opción '-hide-package' es realmente útil. –
Gracias, Yuras. Si desea utilizar -hide-package con runhaskell (en lugar de compilar), necesitará la siguiente invocación: 'runhaskell -hide-package --ghc-arg = bytestring- Main.hs' –
neillb