Tôi có rất ít kinh nghiệm trong Haskell và tôi muốn viết một trình theo dõi tia đơn giản để thực hành. Bởi vì tôi không muốn sử dụng các công cụ GUI như wxHaskell (tôi nghĩ rằng nó sẽ mất rất nhiều thời gian để tìm hiểu làm thế nào để sử dụng chúng), tôi quyết định chỉ cần lưu hình ảnh đầu ra vào tập tin BMP. Nhưng tôi có một vấn đề ở đây:Lỗi "Không thể khớp với kiểu dự kiến với loại thực tế" khi sử dụng 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
Ở đây tôi chỉ muốn lấy điểm ảnh đầu tiên của hình ảnh và in giá trị RGBA của nó. Nhưng tôi gặp lỗi khi nói
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'
Tôi đang làm gì sai? Làm thế nào tôi có thể lấy các điểm ảnh của hình ảnh và in các giá trị của chúng?
Yeah, nó hoạt động! Cảm ơn, tùy chọn '-hide-package' này thực sự hữu ích! –
Cảm ơn, Yuras. Nếu bạn muốn sử dụng gói-ride với runhaskell (thay vì xây dựng), bạn sẽ cần phải gọi sau đây: 'runhaskell -hide-package --ghc-arg = bytestring- Main.hs' –
neillb