Hello community, here is the log from the commit of package ghc-JuicyPixels for openSUSE:Factory checked in at 2016-06-07 23:48:19 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ghc-JuicyPixels (Old) and /work/SRC/openSUSE:Factory/.ghc-JuicyPixels.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-JuicyPixels" Changes: -------- --- /work/SRC/openSUSE:Factory/ghc-JuicyPixels/ghc-JuicyPixels.changes 2016-01-28 17:24:47.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.ghc-JuicyPixels.new/ghc-JuicyPixels.changes 2016-06-07 23:48:21.000000000 +0200 @@ -1,0 +2,6 @@ +Sun Jun 5 19:31:05 UTC 2016 - mimi...@gmail.com + +- update to 3.2.7.1 +* Fix: some wrongly infinitely looping JPEG decoding + +------------------------------------------------------------------- Old: ---- JuicyPixels-3.2.7.tar.gz New: ---- JuicyPixels-3.2.7.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ghc-JuicyPixels.spec ++++++ --- /var/tmp/diff_new_pack.Do1VDj/_old 2016-06-07 23:48:22.000000000 +0200 +++ /var/tmp/diff_new_pack.Do1VDj/_new 2016-06-07 23:48:22.000000000 +0200 @@ -18,9 +18,8 @@ %global pkg_name JuicyPixels # no useful debuginfo for Haskell packages without C sources -%global debug_package %{nil} Name: ghc-JuicyPixels -Version: 3.2.7 +Version: 3.2.7.1 Release: 0 Summary: Picture loading/serialization License: BSD-3-Clause ++++++ JuicyPixels-3.2.7.tar.gz -> JuicyPixels-3.2.7.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/JuicyPixels-3.2.7/JuicyPixels.cabal new/JuicyPixels-3.2.7.1/JuicyPixels.cabal --- old/JuicyPixels-3.2.7/JuicyPixels.cabal 2016-01-25 23:33:57.000000000 +0100 +++ new/JuicyPixels-3.2.7.1/JuicyPixels.cabal 2016-05-30 12:34:56.000000000 +0200 @@ -1,5 +1,5 @@ Name: JuicyPixels -Version: 3.2.7 +Version: 3.2.7.1 Synopsis: Picture loading/serialization (in png, jpeg, bitmap, gif, tga, tiff and radiance) Description: <<data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMAAAADABAMAAACg8nE0AAAAElBMVEUAAABJqDSTWEL/qyb///8AAABH/1GTAAAAAXRSTlMAQObYZgAAAN5JREFUeF7s1sEJgFAQxFBbsAV72v5bEVYWPwT/XDxmCsi7zvHXavYREBDI3XP2GgICqBBYuwIC+/rVayPUAyAg0HvIXBcQoDFDGnUBgWQQ2Bx3AYFaRoBpAQHWb3bt2ARgGAiCYFFuwf3X5HA/McgGJWI2FdykCv4aBYzmKwDwvl6NVmUAAK2vlwEALK7fo88GANB6HQsAAAAAAAAA7P94AQCzswEAAAAAAAAAAAAAAAAAAICzh4UAO4zWAYBfRutHA4Bn5C69JhowAMGoBaMWDG0wCkbBKBgFo2AUAACPmegUST/IJAAAAABJRU5ErkJggg==>> @@ -28,7 +28,7 @@ Source-Repository this Type: git Location: git://github.com/Twinside/Juicy.Pixels.git - Tag: v3.2.7 + Tag: v3.2.7.1 Flag Mmap Description: Enable the file loading via mmap (memory map) @@ -58,7 +58,7 @@ binary >= 0.5 && < 0.9, zlib >= 0.5.3.1 && < 0.7, transformers >= 0.2, - vector >= 0.9 && < 0.12, + vector >= 0.10 && < 0.12, primitive >= 0.4 && < 0.7, deepseq >= 1.1 && < 1.5, containers >= 0.4.2 && < 0.6 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/JuicyPixels-3.2.7/changelog new/JuicyPixels-3.2.7.1/changelog --- old/JuicyPixels-3.2.7/changelog 2016-01-25 23:33:57.000000000 +0100 +++ new/JuicyPixels-3.2.7.1/changelog 2016-05-30 12:34:56.000000000 +0200 @@ -1,6 +1,10 @@ Change log ========== +v3.2.7.1 May 2016 +----------------- + * Fix: some wrongly infinitely looping JPEG decoding + v3.2.7 January 2016 ------------------- * Addition: convertRGB8 and convertRGBA8 helper functions diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/JuicyPixels-3.2.7/src/Codec/Picture/BitWriter.hs new/JuicyPixels-3.2.7.1/src/Codec/Picture/BitWriter.hs --- old/JuicyPixels-3.2.7/src/Codec/Picture/BitWriter.hs 2016-01-25 23:33:57.000000000 +0100 +++ new/JuicyPixels-3.2.7.1/src/Codec/Picture/BitWriter.hs 2016-05-30 12:34:56.000000000 +0200 @@ -80,7 +80,7 @@ case B.uncons str of Nothing -> BoolState 0 0 B.empty Just (0xFF, rest) -> case B.uncons rest of - Nothing -> BoolState maxBound 0 B.empty + Nothing -> BoolState 7 0 B.empty Just (0x00, afterMarker) -> BoolState 7 0xFF afterMarker Just (_ , afterMarker) -> initBoolStateJpg afterMarker Just (v, rest) -> BoolState 7 v rest @@ -178,9 +178,9 @@ -- code (0xFF 0x00), thus should be only used in JPEG decoding. setDecodedStringJpg :: B.ByteString -> BoolReader s () setDecodedStringJpg str = case B.uncons str of - Nothing -> S.put $ BoolState maxBound 0 B.empty + Nothing -> S.put $ BoolState 7 0 B.empty Just (0xFF, rest) -> case B.uncons rest of - Nothing -> S.put $ BoolState maxBound 0 B.empty + Nothing -> S.put $ BoolState 7 0 B.empty Just (0x00, afterMarker) -> -- trace "00" $ S.put $ BoolState 7 0xFF afterMarker Just (_ , afterMarker) -> setDecodedStringJpg afterMarker diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/JuicyPixels-3.2.7/src/Codec/Picture/Bitmap.hs new/JuicyPixels-3.2.7.1/src/Codec/Picture/Bitmap.hs --- old/JuicyPixels-3.2.7/src/Codec/Picture/Bitmap.hs 2016-01-25 23:33:56.000000000 +0100 +++ new/JuicyPixels-3.2.7.1/src/Codec/Picture/Bitmap.hs 2016-05-30 12:34:56.000000000 +0200 @@ -349,13 +349,13 @@ dpiY = Met.dotsPerMeterToDotPerInch . fromIntegral $ yResolution hdr -- | Try to decode a bitmap image. --- Right now this function can output the following pixel types : +-- Right now this function can output the following image: -- --- * PixelRGBA8 +-- - 'ImageY8' -- --- * PixelRGB8 +-- - 'ImageRGB8' -- --- * Pixel8 +-- - 'ImageRGBA8' -- decodeBitmap :: B.ByteString -> Either String DynamicImage decodeBitmap = fmap fst . decodeBitmapWithMetadata @@ -449,19 +449,19 @@ encodeBitmapWithPaletteAndMetadata metas (defaultPalette (undefined :: pixel)) -- | Write a dynamic image in a .bmp image file if possible. --- The same restriction as encodeDynamicBitmap apply. +-- The same restriction as 'encodeDynamicBitmap' apply. writeDynamicBitmap :: FilePath -> DynamicImage -> IO (Either String Bool) writeDynamicBitmap path img = case encodeDynamicBitmap img of Left err -> return $ Left err Right b -> L.writeFile path b >> return (Right True) --- | Encode a dynamic image in bmp if possible, supported pixel type are : +-- | Encode a dynamic image in BMP if possible, supported images are: -- --- - RGB8 +-- - 'ImageY8' -- --- - RGBA8 +-- - 'ImageRGB8' -- --- - Y8 +-- - 'ImageRGBA8' -- encodeDynamicBitmap :: DynamicImage -> Either String L.ByteString encodeDynamicBitmap (ImageRGB8 img) = Right $ encodeBitmap img diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/JuicyPixels-3.2.7/src/Codec/Picture/Gif/LZW.hs new/JuicyPixels-3.2.7.1/src/Codec/Picture/Gif/LZW.hs --- old/JuicyPixels-3.2.7/src/Codec/Picture/Gif/LZW.hs 2016-01-25 23:33:57.000000000 +0100 +++ new/JuicyPixels-3.2.7.1/src/Codec/Picture/Gif/LZW.hs 2016-05-30 12:34:56.000000000 +0200 @@ -41,7 +41,7 @@ (..<-..) v idx = lift . (v .<-. idx) -duplicateData :: (Show a, MonadTrans t, Storable a) +duplicateData :: (MonadTrans t, Storable a) => M.STVector s a -> M.STVector s a -> Int -> Int -> Int -> t (ST s) () duplicateData src dest sourceIndex size destIndex = lift $ aux sourceIndex destIndex diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/JuicyPixels-3.2.7/src/Codec/Picture/Gif.hs new/JuicyPixels-3.2.7.1/src/Codec/Picture/Gif.hs --- old/JuicyPixels-3.2.7/src/Codec/Picture/Gif.hs 2016-01-25 23:33:56.000000000 +0100 +++ new/JuicyPixels-3.2.7.1/src/Codec/Picture/Gif.hs 2016-05-30 12:34:56.000000000 +0200 @@ -615,8 +615,7 @@ pixelAt palette (fromIntegral $ backgroundIndex wholeDescriptor) 0 | otherwise = PixelRGB8 0 0 0 -gifAnimationApplyer :: forall px. - (Pixel px, ColorConvertible PixelRGB8 px) +gifAnimationApplyer :: forall px. (ColorConvertible PixelRGB8 px) => (Int, Int) -> Image px -> Image px -> (Image px, Maybe GraphicControlExtension, Image px) -> (Maybe GraphicControlExtension, GifImage) @@ -671,24 +670,22 @@ where hdr = gifScreenDescriptor $ gifHeader img decodeFirstGifImage _ = Left "No image in gif file" --- | Transform a raw gif image to an image, witout --- modifying the pixels. --- This function can output the following pixel types : +-- | Transform a raw gif image to an image, without modifying the pixels. This +-- function can output the following images: -- --- * PixelRGB8 +-- * 'ImageRGB8' -- --- * PixelRGBA8 +-- * 'ImageRGBA8' -- decodeGif :: B.ByteString -> Either String DynamicImage decodeGif img = decode img >>= (fmap fst . decodeFirstGifImage) --- | Transform a raw gif image to an image, witout --- modifying the pixels. --- This function can output the following pixel types : +-- | Transform a raw gif image to an image, without modifying the pixels. This +-- function can output the following images: -- --- * PixelRGB8 +-- * 'ImageRGB8' -- --- * PixelRGBA8 +-- * 'ImageRGBA8' -- -- Metadatas include Width & Height information. -- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/JuicyPixels-3.2.7/src/Codec/Picture/HDR.hs new/JuicyPixels-3.2.7.1/src/Codec/Picture/HDR.hs --- old/JuicyPixels-3.2.7/src/Codec/Picture/HDR.hs 2016-01-25 23:33:56.000000000 +0100 +++ new/JuicyPixels-3.2.7.1/src/Codec/Picture/HDR.hs 2016-05-30 12:34:56.000000000 +0200 @@ -168,10 +168,9 @@ c -> (:) <$> parsePair c <*> decodeInfos --- | Decode an HDR (radiance) image, the resulting pixel --- type can be : +-- | Decode an HDR (radiance) image, the resulting image can be: -- --- * PixelRGBF +-- * 'ImageRGBF' -- decodeHDR :: B.ByteString -> Either String DynamicImage decodeHDR = fmap fst . decodeHDRWithMetadata diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/JuicyPixels-3.2.7/src/Codec/Picture/Jpg/Common.hs new/JuicyPixels-3.2.7.1/src/Codec/Picture/Jpg/Common.hs --- old/JuicyPixels-3.2.7/src/Codec/Picture/Jpg/Common.hs 2016-01-25 23:33:57.000000000 +0100 +++ new/JuicyPixels-3.2.7.1/src/Codec/Picture/Jpg/Common.hs 2016-05-30 12:34:56.000000000 +0200 @@ -135,7 +135,7 @@ zigZagOrderForward = VS.generate 64 inv where inv i = fromMaybe 0 $ VS.findIndex (i ==) zigZagOrder -zigZagReorderForward :: (Storable a, Num a) +zigZagReorderForward :: (Storable a) => MutableMacroBlock s a -> MutableMacroBlock s a -> ST s (MutableMacroBlock s a) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/JuicyPixels-3.2.7/src/Codec/Picture/Jpg.hs new/JuicyPixels-3.2.7.1/src/Codec/Picture/Jpg.hs --- old/JuicyPixels-3.2.7/src/Codec/Picture/Jpg.hs 2016-01-25 23:33:56.000000000 +0100 +++ new/JuicyPixels-3.2.7.1/src/Codec/Picture/Jpg.hs 2016-05-30 12:34:56.000000000 +0200 @@ -535,33 +535,31 @@ [_,_,_,_] -> pure JpgColorSpaceCMYK _ -> Nothing --- | Try to decompress a jpeg file and decompress. The colorspace is still --- YCbCr if you want to perform computation on the luma part. You can --- convert it to RGB using 'convertImage' from the 'ColorSpaceConvertible' --- typeclass. +-- | Try to decompress and decode a jpeg file. The colorspace is still +-- YCbCr if you want to perform computation on the luma part. You can convert it +-- to RGB using 'convertImage' from the 'ColorSpaceConvertible' typeclass. -- --- This function can output the following pixel types : +-- This function can output the following images: -- --- * PixelY8 +-- * 'ImageY8' -- --- * PixelYA8 +-- * 'ImageYA8' -- --- * PixelRGB8 +-- * 'ImageRGB8' -- --- * PixelCMYK8 +-- * 'ImageCMYK8' -- --- * PixelYCbCr8 +-- * 'ImageYCbCr8' -- decodeJpeg :: B.ByteString -> Either String DynamicImage decodeJpeg = fmap fst . decodeJpegWithMetadata -- | Equivalent to 'decodeJpeg' but also extracts metadatas. -- --- Extract the following metadatas from the JFIF bloc: +-- Extract the following metadatas from the JFIF block: -- --- * DpiX --- --- * DpiY +-- * 'Codec.Picture.Metadata.DpiX' +-- * 'Codec.Picture.Metadata.DpiY' -- -- Exif metadata are also extracted if present. -- @@ -988,9 +986,9 @@ -- This function also allow to create JPEG files with the following color -- space: -- --- * Y (Pixel8) for greyscale. --- * RGB (PixelRGB8) with no color downsampling on any plane --- * CMYK (PixelCMYK8) with no color downsampling on any plane +-- * Y ('Pixel8') for greyscale. +-- * RGB ('PixelRGB8') with no color downsampling on any plane +-- * CMYK ('PixelCMYK8') with no color downsampling on any plane -- encodeDirectJpegAtQualityWithMetadata :: forall px. (JpgEncodable px) => Word8 -- ^ Quality factor diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/JuicyPixels-3.2.7/src/Codec/Picture/Png/Export.hs new/JuicyPixels-3.2.7.1/src/Codec/Picture/Png/Export.hs --- old/JuicyPixels-3.2.7/src/Codec/Picture/Png/Export.hs 2016-01-25 23:33:57.000000000 +0100 +++ new/JuicyPixels-3.2.7.1/src/Codec/Picture/Png/Export.hs 2016-05-30 12:34:56.000000000 +0200 @@ -197,23 +197,23 @@ h = imageHeight pal isTooBig v = fromIntegral v >= w --- | Encode a dynamic image in bmp if possible, supported pixel type are : +-- | Encode a dynamic image in PNG if possible, supported images are: -- --- - Y8 +-- * 'ImageY8' -- --- - Y16 +-- * 'ImageY16' -- --- - YA8 +-- * 'ImageYA8' -- --- - YA16 +-- * 'ImageYA16' -- --- - RGB8 +-- * 'ImageRGB8' -- --- - RGB16 +-- * 'ImageRGB16' -- --- - RGBA8 +-- * 'ImageRGBA8' -- --- - RGBA16 +-- * 'ImageRGBA16' -- encodeDynamicPng :: DynamicImage -> Either String Lb.ByteString encodeDynamicPng (ImageRGB8 img) = Right $ encodePng img diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/JuicyPixels-3.2.7/src/Codec/Picture/Png.hs new/JuicyPixels-3.2.7.1/src/Codec/Picture/Png.hs --- old/JuicyPixels-3.2.7/src/Codec/Picture/Png.hs 2016-01-25 23:33:56.000000000 +0100 +++ new/JuicyPixels-3.2.7.1/src/Codec/Picture/Png.hs 2016-05-30 12:34:56.000000000 +0200 @@ -481,23 +481,23 @@ -- in the future. -- The resulting image let you manage the pixel types. -- --- This function can output the following pixel types: +-- This function can output the following images: -- --- * PixelY8 +-- * 'ImageY8' -- --- * PixelY16 +-- * 'ImageY16' -- --- * PixelYA8 +-- * 'ImageYA8' -- --- * PixelYA16 +-- * 'ImageYA16' -- --- * PixelRGB8 +-- * 'ImageRGB8' -- --- * PixelRGB16 +-- * 'ImageRGB16' -- --- * PixelRGBA8 +-- * 'ImageRGBA8' -- --- * PixelRGBA16 +-- * 'ImageRGBA16' -- decodePng :: B.ByteString -> Either String DynamicImage decodePng = fmap fst . decodePngWithMetadata diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/JuicyPixels-3.2.7/src/Codec/Picture/Tga.hs new/JuicyPixels-3.2.7.1/src/Codec/Picture/Tga.hs --- old/JuicyPixels-3.2.7/src/Codec/Picture/Tga.hs 2016-01-25 23:33:56.000000000 +0100 +++ new/JuicyPixels-3.2.7.1/src/Codec/Picture/Tga.hs 2016-05-30 12:34:56.000000000 +0200 @@ -441,13 +441,13 @@ -- | Transform a raw tga image to an image, without modifying -- the underlying pixel type. -- --- This function can output the following pixel types: +-- This function can output the following images: -- --- * PixelY8 +-- * 'ImageY8' -- --- * PixelRGB8 +-- * 'ImageRGB8' -- --- * PixelRGBA8 +-- * 'ImageRGBA8' -- decodeTga :: B.ByteString -> Either String DynamicImage decodeTga byte = runGetStrict get byte >>= (fmap fst . unparse) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/JuicyPixels-3.2.7/src/Codec/Picture/Tiff.hs new/JuicyPixels-3.2.7.1/src/Codec/Picture/Tiff.hs --- old/JuicyPixels-3.2.7/src/Codec/Picture/Tiff.hs 2016-01-25 23:33:56.000000000 +0100 +++ new/JuicyPixels-3.2.7.1/src/Codec/Picture/Tiff.hs 2016-05-30 12:34:56.000000000 +0200 @@ -757,27 +757,27 @@ -- | Decode a tiff encoded image while preserving the underlying -- pixel type (except for Y32 which is truncated to 16 bits). -- --- This function can output the following pixel types: +-- This function can output the following images: -- --- * PixelY8 +-- * 'ImageY8' -- --- * PixelY16 +-- * 'ImageY16' -- --- * PixelYA8 +-- * 'ImageYA8' -- --- * PixelYA16 +-- * 'ImageYA16' -- --- * PixelRGB8 +-- * 'ImageRGB8' -- --- * PixelRGB16 +-- * 'ImageRGB16' -- --- * PixelRGBA8 +-- * 'ImageRGBA8' -- --- * PixelRGBA16 +-- * 'ImageRGBA16' -- --- * PixelCMYK8 +-- * 'ImageCMYK8' -- --- * PixelCMYK16 +-- * 'ImageCMYK16' -- decodeTiff :: B.ByteString -> Either String DynamicImage decodeTiff = fmap fst . decodeTiffWithMetadata @@ -785,8 +785,8 @@ -- | Like 'decodeTiff' but also provides some metdata present -- in the Tiff file. -- --- The metadata extracted are the DpiX & DpiY information alongside --- the EXIF informations. +-- The metadata extracted are the 'Codec.Picture.Metadata.DpiX' & +-- 'Codec.Picture.Metadata.DpiY' information alongside the EXIF informations. decodeTiffWithMetadata :: B.ByteString -> Either String (DynamicImage, Metadatas) decodeTiffWithMetadata file = runGetStrict (getP file) file >>= go where diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/JuicyPixels-3.2.7/src/Codec/Picture/Types.hs new/JuicyPixels-3.2.7.1/src/Codec/Picture/Types.hs --- old/JuicyPixels-3.2.7/src/Codec/Picture/Types.hs 2016-01-25 23:33:57.000000000 +0100 +++ new/JuicyPixels-3.2.7.1/src/Codec/Picture/Types.hs 2016-05-30 12:34:56.000000000 +0200 @@ -8,8 +8,9 @@ {-# LANGUAGE Rank2Types #-} {-# LANGUAGE BangPatterns #-} {-# LANGUAGE CPP #-} --- | Module providing the basic types for image manipulation in the library. --- Defining the types used to store all those _Juicy Pixels_ +{-# LANGUAGE DeriveDataTypeable #-} +-- | Module provides basic types for image manipulation in the library. +-- Defined types are used to store all of those __Juicy Pixels__ module Codec.Picture.Types( -- * Types -- ** Image types Image( .. ) @@ -111,6 +112,7 @@ import Foreign.ForeignPtr( castForeignPtr ) import Foreign.Storable ( Storable ) import Data.Bits( unsafeShiftL, unsafeShiftR, (.|.), (.&.) ) +import Data.Typeable ( Typeable ) import Data.Word( Word8, Word16, Word32, Word64 ) import Data.Vector.Storable ( (!) ) import qualified Data.Vector.Storable as V @@ -145,6 +147,7 @@ -- component within each pixel. , imageData :: V.Vector (PixelBaseComponent a) } + deriving (Typeable) -- | Type for the palette used in Gif & PNG files. type Palette = Image PixelRGB8 @@ -159,40 +162,51 @@ -- | Define the plane for the red color component data PlaneRed = PlaneRed + deriving (Typeable) -- | Define the plane for the green color component data PlaneGreen = PlaneGreen + deriving (Typeable) -- | Define the plane for the blue color component data PlaneBlue = PlaneBlue + deriving (Typeable) -- | Define the plane for the alpha (transparency) component data PlaneAlpha = PlaneAlpha + deriving (Typeable) -- | Define the plane for the luma component data PlaneLuma = PlaneLuma + deriving (Typeable) -- | Define the plane for the Cr component data PlaneCr = PlaneCr + deriving (Typeable) -- | Define the plane for the Cb component data PlaneCb = PlaneCb + deriving (Typeable) -- | Define plane for the cyan component of the -- CMYK color space. data PlaneCyan = PlaneCyan + deriving (Typeable) -- | Define plane for the magenta component of the -- CMYK color space. data PlaneMagenta = PlaneMagenta + deriving (Typeable) -- | Define plane for the yellow component of the -- CMYK color space. data PlaneYellow = PlaneYellow + deriving (Typeable) -- | Define plane for the black component of -- the CMYK color space. data PlaneBlack = PlaneBlack + deriving (Typeable) -- | Extract a color plane from an image given a present plane in the image -- examples: @@ -294,6 +308,7 @@ -- you should use the helpers functions. , mutableImageData :: M.STVector s (PixelBaseComponent a) } + deriving (Typeable) -- | `O(n)` Yield an immutable copy of an image by making a copy of it freezeImage :: (Storable (PixelBaseComponent px), PrimMonad m) @@ -372,6 +387,7 @@ | ImageCMYK8 (Image PixelCMYK8) -- | An image in the colorspace CMYK and 16 bits precision | ImageCMYK16 (Image PixelCMYK16) + deriving (Typeable) -- | Helper function to help extract information from dynamic -- image. To get the width of a dynamic image, you can use @@ -468,7 +484,7 @@ -- data PixelYA8 = PixelYA8 {-# UNPACK #-} !Pixel8 -- Luminance {-# UNPACK #-} !Pixel8 -- Alpha value - deriving (Eq, Ord, Show) + deriving (Eq, Ord, Show, Typeable) -- | Pixel type storing 16bit Luminance (Y) and alpha (A) information. -- Values are stored in the following order: @@ -479,7 +495,7 @@ -- data PixelYA16 = PixelYA16 {-# UNPACK #-} !Pixel16 -- Luminance {-# UNPACK #-} !Pixel16 -- Alpha value - deriving (Eq, Ord, Show) + deriving (Eq, Ord, Show, Typeable) -- | Classic pixel type storing 8bit red, green and blue (RGB) information. -- Values are stored in the following order: @@ -493,7 +509,7 @@ data PixelRGB8 = PixelRGB8 {-# UNPACK #-} !Pixel8 -- Red {-# UNPACK #-} !Pixel8 -- Green {-# UNPACK #-} !Pixel8 -- Blue - deriving (Eq, Ord, Show) + deriving (Eq, Ord, Show, Typeable) -- | Pixel type storing value for the YCCK color space: -- @@ -509,7 +525,7 @@ {-# UNPACK #-} !Pixel8 {-# UNPACK #-} !Pixel8 {-# UNPACK #-} !Pixel8 - deriving (Eq, Ord, Show) + deriving (Eq, Ord, Show, Typeable) -- | Pixel type storing 16bit red, green and blue (RGB) information. -- Values are stored in the following order: @@ -523,7 +539,7 @@ data PixelRGB16 = PixelRGB16 {-# UNPACK #-} !Pixel16 -- Red {-# UNPACK #-} !Pixel16 -- Green {-# UNPACK #-} !Pixel16 -- Blue - deriving (Eq, Ord, Show) + deriving (Eq, Ord, Show, Typeable) -- | HDR pixel type storing floating point 32bit red, green and blue (RGB) information. -- Same value range and comments apply as for 'PixelF'. @@ -538,7 +554,7 @@ data PixelRGBF = PixelRGBF {-# UNPACK #-} !PixelF -- Red {-# UNPACK #-} !PixelF -- Green {-# UNPACK #-} !PixelF -- Blue - deriving (Eq, Ord, Show) + deriving (Eq, Ord, Show, Typeable) -- | Pixel type storing 8bit luminance, blue difference and red difference (YCbCr) information. -- Values are stored in the following order: @@ -552,7 +568,7 @@ data PixelYCbCr8 = PixelYCbCr8 {-# UNPACK #-} !Pixel8 -- Y luminance {-# UNPACK #-} !Pixel8 -- Cb blue difference {-# UNPACK #-} !Pixel8 -- Cr red difference - deriving (Eq, Ord, Show) + deriving (Eq, Ord, Show, Typeable) -- | Pixel type storing 8bit cyan, magenta, yellow and black (CMYK) information. -- Values are stored in the following order: @@ -569,7 +585,7 @@ {-# UNPACK #-} !Pixel8 -- Magenta {-# UNPACK #-} !Pixel8 -- Yellow {-# UNPACK #-} !Pixel8 -- Black - deriving (Eq, Ord, Show) + deriving (Eq, Ord, Show, Typeable) -- | Pixel type storing 16bit cyan, magenta, yellow and black (CMYK) information. -- Values are stored in the following order: @@ -586,7 +602,7 @@ {-# UNPACK #-} !Pixel16 -- Magenta {-# UNPACK #-} !Pixel16 -- Yellow {-# UNPACK #-} !Pixel16 -- Black - deriving (Eq, Ord, Show) + deriving (Eq, Ord, Show, Typeable) -- | Classical pixel type storing 8bit red, green, blue and alpha (RGBA) information. @@ -604,7 +620,7 @@ {-# UNPACK #-} !Pixel8 -- Green {-# UNPACK #-} !Pixel8 -- Blue {-# UNPACK #-} !Pixel8 -- Alpha - deriving (Eq, Ord, Show) + deriving (Eq, Ord, Show, Typeable) -- | Pixel type storing 16bit red, green, blue and alpha (RGBA) information. -- Values are stored in the following order: @@ -621,7 +637,7 @@ {-# UNPACK #-} !Pixel16 -- Green {-# UNPACK #-} !Pixel16 -- Blue {-# UNPACK #-} !Pixel16 -- Alpha - deriving (Eq, Ord, Show) + deriving (Eq, Ord, Show, Typeable) -- | Definition of pixels used in images. Each pixel has a color space, and a representative -- component (Word8 or Float). diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/JuicyPixels-3.2.7/src/Codec/Picture.hs new/JuicyPixels-3.2.7.1/src/Codec/Picture.hs --- old/JuicyPixels-3.2.7/src/Codec/Picture.hs 2016-01-25 23:33:56.000000000 +0100 +++ new/JuicyPixels-3.2.7.1/src/Codec/Picture.hs 2016-05-30 12:34:56.000000000 +0200 @@ -10,8 +10,8 @@ -- To use the library without thinking about it, look after 'decodeImage' and -- 'readImage'. -- --- Generally, the read* functions read the images from a file and try to decode --- it, and the decode* functions try to decode a bytestring. +-- Generally, the @read*@ functions read the images from a file and try to decode +-- it, and the @decode*@ functions try to decode a bytestring. -- -- For an easy image writing use the 'saveBmpImage', 'saveJpgImage' & 'savePngImage' -- functions