Data.Bitmap, readBitmap exception

Hello, I am using bitmap-0.2 [1] to load a Bitmap file [2]. However, the following sample GHCi session fails for me.
Prelude Data.Bitmap Data.Bitmap.Pure.File> readBitmap "b.bmp" :: IO (Bitmap Word8) *** Exception: Data/Bitmap/Internal.hs:(63,17)-(67,15): Non-exhaustive patterns in case
I downloaded the sources of bitmap-0.2 from Hackage and modified the relevant function by appending the last line.
decodeCType :: CInt -> PixelComponentType decodeCType k = case k of 1 -> PctWord8 2 -> PctWord16 3 -> PctWord32 4 -> PctFloat _ -> error $ "decodeCType: unexpected integer (" ++ show k ++ ")"
With this modification the same GHCi session given above results in the following error.
Prelude Data.Bitmap Data.Bitmap.Pure.File> readBitmap "b.bmp" :: IO (Bitmap Word8) *** Exception: decodeCType: unexpected integer (7077888)
I don't have any idea where 7077888 comes from. Am I doing something wrong? Is my bitmap corrupted in some way? The number 7077888 has no apparent significance except that it is a perfect cube [3]. So I guess this is not a problem with endianness. In fact as far as I can tell `decodeCType` is only called on `(PixelComponent t => c_type t)` and `c_type t` only yields integer values in the (inclusive) range of 1 to 4. That is if I am not missing some orphaned instance. Could anyone please enlighten me what is happening and if I am doing something wrong? In case this is relevant: I am using bitmap-0.2 from Hackage with GHC 7.4.1 on a 3.2.20 kernel i686 architecture Linux. Regards, Alexander Foremny [1] http://hackage.haskell.org/package/bitmap [2] https://www.dropbox.com/s/pyutvni9vx6f6mo/b.bmp [3] http://www.wolframalpha.com/input/?i=7077888

On Thu, Jun 28, 2012 at 7:34 AM, Alexander Foremny < alexanderforemny@gmail.com> wrote:
I am using bitmap-0.2 [1] to load a Bitmap file [2]. However, the following sample GHCi session fails for me.
For what it's worth, my system doesn't recognize your bitmap as a valid image file. -- brandon s allbery allbery.b@gmail.com wandering unix systems administrator (available) (412) 475-9364 vm/sms

That bitmap must be pretty weird. 'file' command reports 'data', so headers
must be off. Image viewer OTOH does handle the file.
Best regards,
Krzysztof Skrzętnicki
On Thu, Jun 28, 2012 at 2:03 PM, Brandon Allbery
On Thu, Jun 28, 2012 at 7:34 AM, Alexander Foremny < alexanderforemny@gmail.com> wrote:
I am using bitmap-0.2 [1] to load a Bitmap file [2]. However, the following sample GHCi session fails for me.
For what it's worth, my system doesn't recognize your bitmap as a valid image file.
-- brandon s allbery allbery.b@gmail.com wandering unix systems administrator (available) (412) 475-9364 vm/sms
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

For what it's worth I created that Bitmap file with Gimp and exported
to 32 bit R G B A bitmap. I'll try another bitmap file later and
report back.
2012/6/28 Krzysztof Skrzętnicki
That bitmap must be pretty weird. 'file' command reports 'data', so headers must be off. Image viewer OTOH does handle the file.
Best regards, Krzysztof Skrzętnicki
On Thu, Jun 28, 2012 at 2:03 PM, Brandon Allbery
wrote: On Thu, Jun 28, 2012 at 7:34 AM, Alexander Foremny
wrote: I am using bitmap-0.2 [1] to load a Bitmap file [2]. However, the following sample GHCi session fails for me.
For what it's worth, my system doesn't recognize your bitmap as a valid image file.
-- brandon s allbery allbery.b@gmail.com wandering unix systems administrator (available) (412) 475-9364 vm/sms
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

I tested a similar GHCi session as the ones above with a Bitmap file I found in the wild and I encountered the same results for Bitmap Word8, Bitmap Word16 and other exceptions for Bitmap Word32, Bitmap Float.
readBitmap "chef.bmp" :: IO (Bitmap Word32) *** Exception: mallocForeignPtrBytes: size must be >= 0
However, there is still the possibility that this Bitmap might be
corrupted either. Just thought I'd report this.
Regards,
Alexander Foremny
2012/6/28 Alexander Foremny
For what it's worth I created that Bitmap file with Gimp and exported to 32 bit R G B A bitmap. I'll try another bitmap file later and report back.
2012/6/28 Krzysztof Skrzętnicki
: That bitmap must be pretty weird. 'file' command reports 'data', so headers must be off. Image viewer OTOH does handle the file.
Best regards, Krzysztof Skrzętnicki
On Thu, Jun 28, 2012 at 2:03 PM, Brandon Allbery
wrote: On Thu, Jun 28, 2012 at 7:34 AM, Alexander Foremny
wrote: I am using bitmap-0.2 [1] to load a Bitmap file [2]. However, the following sample GHCi session fails for me.
For what it's worth, my system doesn't recognize your bitmap as a valid image file.
-- brandon s allbery allbery.b@gmail.com wandering unix systems administrator (available) (412) 475-9364 vm/sms
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
participants (3)
-
Alexander Foremny
-
Brandon Allbery
-
Krzysztof Skrzętnicki