JuicyPixels 3.2.1 → 3.2.2
raw patch · 16 files changed
+201/−130 lines, 16 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- JuicyPixels.cabal +86/−86
- changelog +3/−0
- src/Codec/Picture/BitWriter.hs +6/−1
- src/Codec/Picture/ColorQuant.hs +6/−1
- src/Codec/Picture/Gif.hs +7/−1
- src/Codec/Picture/Gif/LZWEncoding.hs +5/−1
- src/Codec/Picture/HDR.hs +6/−1
- src/Codec/Picture/Jpg.hs +7/−1
- src/Codec/Picture/Jpg/Common.hs +5/−0
- src/Codec/Picture/Jpg/DefaultTable.hs +22/−22
- src/Codec/Picture/Jpg/Progressive.hs +6/−1
- src/Codec/Picture/Jpg/Types.hs +7/−1
- src/Codec/Picture/Png/Type.hs +10/−10
- src/Codec/Picture/Tga.hs +9/−2
- src/Codec/Picture/Tiff.hs +8/−1
- src/Codec/Picture/VectorByteConversion.hs +8/−1
JuicyPixels.cabal view
@@ -1,86 +1,86 @@-Name: JuicyPixels-Version: 3.2.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==>>- .- This library can load and store images in PNG,Bitmap, Jpeg, Radiance, Tiff and Gif images.--homepage: https://github.com/Twinside/Juicy.Pixels-License: BSD3-License-file: LICENSE-Author: Vincent Berthoux-Maintainer: vincent.berthoux@gmail.com-Category: Codec, Graphics, Image-Stability: Stable-Build-type: Simple---- Constraint on the version of Cabal needed to build this package.-Cabal-version: >= 1.10--extra-source-files: changelog, docimages/*.png, docimages/*.svg-extra-doc-files: docimages/*.png, docimages/*.svg--Source-Repository head- Type: git- Location: git://github.com/Twinside/Juicy.Pixels.git--Source-Repository this- Type: git- Location: git://github.com/Twinside/Juicy.Pixels.git- Tag: v3.2.1--Flag Mmap- Description: Enable the file loading via mmap (memory map)- Default: False--Library- hs-source-dirs: src- Default-Language: Haskell2010- Exposed-modules: Codec.Picture,- Codec.Picture.Bitmap,- Codec.Picture.Gif,- Codec.Picture.Png,- Codec.Picture.Jpg,- Codec.Picture.HDR,- Codec.Picture.Tga,- Codec.Picture.Tiff,- Codec.Picture.Saving,- Codec.Picture.Types,- Codec.Picture.ColorQuant-- Ghc-options: -O3 -Wall- Ghc-prof-options: -rtsopts -Wall -prof -auto-all- Build-depends: base >= 4 && < 5,- bytestring >= 0.9 && < 0.11,- mtl >= 1.1 && < 2.3,- binary >= 0.5 && < 0.8,- zlib >= 0.5.3.1 && < 0.6,- transformers >= 0.2,- vector >= 0.9 && < 0.11,- primitive >= 0.4 && < 0.6,- deepseq >= 1.1 && < 1.5,- containers >= 0.4.2 && < 0.6-- if flag(Mmap)- Build-depends: mmap- CC-Options: "-DWITH_MMAP_BYTESTRING"-- -- Modules not exported by this package.- Other-modules: Codec.Picture.Jpg.DefaultTable,- Codec.Picture.Jpg.FastIdct,- Codec.Picture.Jpg.FastDct,- Codec.Picture.Jpg.Types,- Codec.Picture.Jpg.Common,- Codec.Picture.Jpg.Progressive,- Codec.Picture.Gif.LZW,- Codec.Picture.Gif.LZWEncoding,- Codec.Picture.Png.Export,- Codec.Picture.Png.Type,- Codec.Picture.BitWriter,- Codec.Picture.InternalHelper,- Codec.Picture.VectorByteConversion-- Install-Includes: src/Codec/Picture/ConvGraph.hs- Include-Dirs: src/Codec/Picture-+Name: JuicyPixels +Version: 3.2.2 +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==>> + . + This library can load and store images in PNG,Bitmap, Jpeg, Radiance, Tiff and Gif images. + +homepage: https://github.com/Twinside/Juicy.Pixels +License: BSD3 +License-file: LICENSE +Author: Vincent Berthoux +Maintainer: vincent.berthoux@gmail.com +Category: Codec, Graphics, Image +Stability: Stable +Build-type: Simple + +-- Constraint on the version of Cabal needed to build this package. +Cabal-version: >= 1.10 + +extra-source-files: changelog, docimages/*.png, docimages/*.svg +extra-doc-files: docimages/*.png, docimages/*.svg + +Source-Repository head + Type: git + Location: git://github.com/Twinside/Juicy.Pixels.git + +Source-Repository this + Type: git + Location: git://github.com/Twinside/Juicy.Pixels.git + Tag: v3.2.2 + +Flag Mmap + Description: Enable the file loading via mmap (memory map) + Default: False + +Library + hs-source-dirs: src + Default-Language: Haskell2010 + Exposed-modules: Codec.Picture, + Codec.Picture.Bitmap, + Codec.Picture.Gif, + Codec.Picture.Png, + Codec.Picture.Jpg, + Codec.Picture.HDR, + Codec.Picture.Tga, + Codec.Picture.Tiff, + Codec.Picture.Saving, + Codec.Picture.Types, + Codec.Picture.ColorQuant + + Ghc-options: -O3 -Wall + Ghc-prof-options: -rtsopts -Wall -prof -auto-all + Build-depends: base >= 4 && < 5, + bytestring >= 0.9 && < 0.11, + mtl >= 1.1 && < 2.3, + binary >= 0.5 && < 0.8, + zlib >= 0.5.3.1 && < 0.6, + transformers >= 0.2, + vector >= 0.9 && < 0.11, + primitive >= 0.4 && < 0.6, + deepseq >= 1.1 && < 1.5, + containers >= 0.4.2 && < 0.6 + + if flag(Mmap) + Build-depends: mmap + CC-Options: "-DWITH_MMAP_BYTESTRING" + + -- Modules not exported by this package. + Other-modules: Codec.Picture.Jpg.DefaultTable, + Codec.Picture.Jpg.FastIdct, + Codec.Picture.Jpg.FastDct, + Codec.Picture.Jpg.Types, + Codec.Picture.Jpg.Common, + Codec.Picture.Jpg.Progressive, + Codec.Picture.Gif.LZW, + Codec.Picture.Gif.LZWEncoding, + Codec.Picture.Png.Export, + Codec.Picture.Png.Type, + Codec.Picture.BitWriter, + Codec.Picture.InternalHelper, + Codec.Picture.VectorByteConversion + + Install-Includes: src/Codec/Picture/ConvGraph.hs + Include-Dirs: src/Codec/Picture +
changelog view
@@ -1,5 +1,8 @@ -*-change-log-*- +v3.2.2 January 2015 + * Squashing GHC 7.10 warnings + v3.2.1 December 2014 * Bumping deepseq dependencies preparing for GHC 7.10 release.
src/Codec/Picture/BitWriter.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE Rank2Types #-} +{-# LANGUAGE CPP #-} -- | This module implement helper functions to read & write data -- at bits level. module Codec.Picture.BitWriter( BoolReader @@ -24,8 +25,12 @@ , runBoolReaderWith ) where -import Data.STRef +#if !MIN_VERSION_base(4,8,0) import Control.Applicative( (<$>), (<*>) ) +#endif + +import Data.STRef +import Control.Applicative( (<$>) ) import Control.Monad( when ) import Control.Monad.ST( ST ) import qualified Control.Monad.Trans.State.Strict as S
src/Codec/Picture/ColorQuant.hs view
@@ -2,6 +2,7 @@ {-# LANGUAGE BangPatterns #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE TypeFamilies #-} +{-# LANGUAGE CPP #-} -- | This module provide some color quantisation algorithm -- in order to help in the creation of paletted images. -- The most important function is `palettize` which will @@ -14,7 +15,11 @@ , PaletteOptions( .. ) ) where -import Control.Applicative (Applicative (..), (<$>)) +#if !MIN_VERSION_base(4,8,0) +import Control.Applicative (Applicative (..)) +#endif + +import Control.Applicative ((<$>)) import Data.Bits (unsafeShiftL, unsafeShiftR, (.&.), (.|.)) import Data.List (elemIndex) import Data.Maybe (fromMaybe)
src/Codec/Picture/Gif.hs view
@@ -1,6 +1,7 @@ {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE ScopedTypeVariables #-} +{-# LANGUAGE CPP #-} -- | Module implementing GIF decoding. module Codec.Picture.Gif ( -- * Reading decodeGif @@ -20,7 +21,12 @@ , greyPalette ) where -import Control.Applicative( pure, (<$>), (<*>) ) +#if !MIN_VERSION_base(4,8,0) +import Control.Applicative( pure, (<*>) ) +#endif + +import Control.Applicative( (<$>) ) + import Control.Monad( replicateM, replicateM_, unless ) import Control.Monad.ST( runST ) import Control.Monad.Trans.Class( lift )
src/Codec/Picture/Gif/LZWEncoding.hs view
@@ -1,12 +1,16 @@ {-# LANGUAGE BangPatterns, CPP #-} module Codec.Picture.Gif.LZWEncoding( lzwEncode ) where +#if !MIN_VERSION_base(4,8,0) +import Data.Monoid( mempty ) +#endif + import Control.Applicative( (<$>) ) import Control.Monad.ST( runST ) import qualified Data.ByteString.Lazy as L import Data.Maybe( fromMaybe ) -import Data.Monoid( mempty ) import Data.Word( Word8 ) + #if MIN_VERSION_containers(0,5,0) import qualified Data.IntMap.Strict as I #else
src/Codec/Picture/HDR.hs view
@@ -10,11 +10,16 @@ , writeRLENewStyleHDR ) where +#if !MIN_VERSION_base(4,8,0) +import Control.Applicative( pure, (<*>) ) +#endif + +import Control.Applicative( (<$>) ) + import Data.Bits( Bits, (.&.), (.|.), unsafeShiftL, unsafeShiftR ) import Data.Char( ord, chr, isDigit ) import Data.Word( Word8 ) import Data.Monoid( (<>) ) -import Control.Applicative( pure, (<$>), (<*>) ) import Control.Monad( when, foldM, foldM_, forM, forM_, unless ) import Control.Monad.Trans.Class( lift ) import qualified Data.ByteString as B
src/Codec/Picture/Jpg.hs view
@@ -4,6 +4,7 @@ {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE BangPatterns #-} {-# LANGUAGE TypeFamilies #-} +{-# LANGUAGE CPP #-} {-# OPTIONS_GHC -fspec-constr-count=5 #-} -- | Module used for JPEG file loading and writing. module Codec.Picture.Jpg( decodeJpeg @@ -11,8 +12,13 @@ , encodeJpeg ) where +#if !MIN_VERSION_base(4,8,0) +import Control.Applicative( pure ) +#endif + +import Control.Applicative( (<$>) ) + import Control.Arrow( (>>>) ) -import Control.Applicative( pure, (<$>) ) import Control.Monad( when, forM_ ) import Control.Monad.ST( ST, runST ) import Control.Monad.Trans( lift )
src/Codec/Picture/Jpg/Common.hs view
@@ -1,5 +1,6 @@ {-# LANGUAGE BangPatterns #-} {-# LANGUAGE TypeFamilies #-} +{-# LANGUAGE CPP #-} module Codec.Picture.Jpg.Common ( DctCoefficients , JpgUnpackerParameter( .. ) @@ -18,7 +19,11 @@ , decodeRestartInterval ) where +#if !MIN_VERSION_base(4,8,0) import Control.Applicative( (<$>), pure ) +#endif + +import Control.Applicative( (<$>) ) import Control.Monad( replicateM, when ) import Control.Monad.ST( ST, runST ) import Data.Bits( unsafeShiftL, unsafeShiftR, (.&.) )
src/Codec/Picture/Jpg/DefaultTable.hs view
@@ -3,35 +3,35 @@ -- | Module used by the jpeg decoder internally, shouldn't be used -- in user code. module Codec.Picture.Jpg.DefaultTable( DctComponent( .. ) - , HuffmanTree( .. ) - , HuffmanTable - , HuffmanPackedTree - , MacroBlock - , QuantificationTable - , HuffmanWriterCode - , scaleQuantisationMatrix - , makeMacroBlock - , makeInverseTable - , buildHuffmanTree - , packHuffmanTree - , huffmanPackedDecode + , HuffmanTree( .. ) + , HuffmanTable + , HuffmanPackedTree + , MacroBlock + , QuantificationTable + , HuffmanWriterCode + , scaleQuantisationMatrix + , makeMacroBlock + , makeInverseTable + , buildHuffmanTree + , packHuffmanTree + , huffmanPackedDecode - , defaultChromaQuantizationTable + , defaultChromaQuantizationTable - , defaultLumaQuantizationTable + , defaultLumaQuantizationTable - , defaultAcChromaHuffmanTree - , defaultAcChromaHuffmanTable + , defaultAcChromaHuffmanTree + , defaultAcChromaHuffmanTable - , defaultAcLumaHuffmanTree - , defaultAcLumaHuffmanTable + , defaultAcLumaHuffmanTree + , defaultAcLumaHuffmanTable - , defaultDcChromaHuffmanTree - , defaultDcChromaHuffmanTable + , defaultDcChromaHuffmanTree + , defaultDcChromaHuffmanTable , defaultDcLumaHuffmanTree - , defaultDcLumaHuffmanTable - ) where + , defaultDcLumaHuffmanTable + ) where import Data.Int( Int16 ) import Foreign.Storable ( Storable )
src/Codec/Picture/Jpg/Progressive.hs view
@@ -2,12 +2,17 @@ {-# LANGUAGE TypeSynonymInstances #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE ScopedTypeVariables #-} +{-# LANGUAGE CPP #-} module Codec.Picture.Jpg.Progressive ( JpgUnpackerParameter( .. ) , progressiveUnpack ) where -import Control.Applicative( pure, (<$>) ) +#if !MIN_VERSION_base(4,8,0) +import Control.Applicative( pure ) +#endif + +import Control.Applicative( (<$>) ) import Control.Monad( when, forM_ ) import Control.Monad.ST( ST ) import Control.Monad.Trans( lift )
src/Codec/Picture/Jpg/Types.hs view
@@ -1,5 +1,6 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeFamilies #-} +{-# LANGUAGE CPP #-} module Codec.Picture.Jpg.Types( MutableMacroBlock , createEmptyMutableMacroBlock , printMacroBlock @@ -19,7 +20,12 @@ , dctBlockSize ) where -import Control.Applicative( (<$>), (<*>)) + +#if !MIN_VERSION_base(4,8,0) +import Control.Applicative( (<*>)) +#endif + +import Control.Applicative( (<$>) ) import Control.Monad( when, replicateM, forM, forM_, unless ) import Control.Monad.ST( ST ) import Data.Bits( (.|.), (.&.), unsafeShiftL, unsafeShiftR )
src/Codec/Picture/Png/Type.hs view
@@ -119,9 +119,9 @@ data PngFilter = -- | Filt(x) = Orig(x), Recon(x) = Filt(x) FilterNone - -- | Filt(x) = Orig(x) - Orig(a), Recon(x) = Filt(x) + Recon(a) + -- | Filt(x) = Orig(x) - Orig(a), Recon(x) = Filt(x) + Recon(a) | FilterSub - -- | Filt(x) = Orig(x) - Orig(b), Recon(x) = Filt(x) + Recon(b) + -- | Filt(x) = Orig(x) - Orig(b), Recon(x) = Filt(x) + Recon(b) | FilterUp -- | Filt(x) = Orig(x) - floor((Orig(a) + Orig(b)) / 2), -- Recon(x) = Filt(x) + floor((Recon(a) + Recon(b)) / 2) @@ -183,10 +183,10 @@ (fail $ "Invalid CRC : " ++ show computedCrc ++ ", " ++ show crc) return PngRawChunk { - chunkLength = size, - chunkData = imgData, - chunkCRC = crc, - chunkType = chunkSig + chunkLength = size, + chunkData = imgData, + chunkCRC = crc, + chunkType = chunkSig } instance Binary PngIHdr where @@ -219,10 +219,10 @@ interlace <- get _crc <- getWord32be return PngIHdr { - width = w, - height = h, - bitDepth = depth, - colourType = colorType, + width = w, + height = h, + bitDepth = depth, + colourType = colorType, compressionMethod = compression, filterMethod = filtermethod, interlaceMethod = interlace
src/Codec/Picture/Tga.hs view
@@ -4,6 +4,7 @@ {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE BangPatterns #-} +{-# LANGUAGE CPP #-} -- | Module implementing function to read and write -- Targa (*.tga) files. module Codec.Picture.Tga( decodeTga @@ -12,8 +13,15 @@ , writeTga ) where + +#if !MIN_VERSION_base(4,8,0) +import Data.Monoid( mempty ) +import Control.Applicative( (<*>), pure ) +#endif + +import Control.Applicative( (<$>) ) + import Control.Monad.ST( ST, runST ) -import Control.Applicative( (<$>), (<*>), pure ) import Data.Bits( (.&.) , (.|.) , bit @@ -21,7 +29,6 @@ , setBit , unsafeShiftL , unsafeShiftR ) -import Data.Monoid( mempty ) import Data.Word( Word8, Word16 ) import Data.Binary( Binary( .. ), encode ) import Data.Binary.Get( Get
src/Codec/Picture/Tiff.hs view
@@ -4,6 +4,7 @@ {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE ScopedTypeVariables #-} +{-# LANGUAGE CPP #-} -- | Module implementing TIFF decoding. -- -- Supported compression schemes: @@ -26,7 +27,13 @@ -- module Codec.Picture.Tiff( decodeTiff, TiffSaveable, encodeTiff, writeTiff ) where -import Control.Applicative( (<$>), (<*>), pure ) + +#if !MIN_VERSION_base(4,8,0) +import Control.Applicative( (<*>), pure ) +#endif + +import Control.Applicative( (<$>) ) + import Control.Monad( when, replicateM, foldM_, unless ) import Control.Monad.ST( ST, runST ) import Control.Monad.Writer.Strict( execWriter, tell, Writer )
src/Codec/Picture/VectorByteConversion.hs view
@@ -1,13 +1,20 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeFamilies #-} +{-# LANGUAGE CPP #-} module Codec.Picture.VectorByteConversion( blitVector , toByteString , imageFromUnsafePtr ) where import Data.Word( Word8 ) import Data.Vector.Storable( Vector, unsafeToForeignPtr, unsafeFromForeignPtr0 ) -import Foreign.ForeignPtr.Safe( ForeignPtr, castForeignPtr ) import Foreign.Storable( Storable, sizeOf ) + +#if !MIN_VERSION_base(4,8,0) +import Foreign.ForeignPtr.Safe( ForeignPtr, castForeignPtr ) +#else +import Foreign.ForeignPtr( ForeignPtr, castForeignPtr ) +#endif + import qualified Data.ByteString as B import qualified Data.ByteString.Internal as S