packages feed

Gifcurry 2.1.0.0 → 2.1.1.0

raw patch · 6 files changed

+96/−61 lines, 6 filesdep ~basedep ~directorydep ~process

Dependency ranges changed: base, directory, process

Files

Gifcurry.cabal view
@@ -1,14 +1,16 @@ name:                 Gifcurry-version:              2.1.0.0-synopsis:             Create animated GIFs, overlaid with optional text, from video files.-description:          GIF creation utility.+version:              2.1.1.0+synopsis:             GIF creation utility.+description:          Create animated GIFs, optionally overlaid with text, from video files. homepage:             https://github.com/lettier/gifcurry license:              Apache-2.0 license-file:         LICENSE author:               Lettier maintainer:           Lettier copyright:            (C) 2016 David Lettier-category:             Graphics+category:               Application+                      , Library+                      , Graphics build-type:           Simple extra-source-files:     README.md                       , ./src/dev/Paths_Gifcurry.hs@@ -26,42 +28,42 @@  library   exposed-modules:    Gifcurry-  build-depends:        base >=4.7 && <=4.9.0.0-                      , process >=1.2 && <=1.4.2.0-                      , temporary >=1.2 && <1.3-                      , directory ==1.2.*-                      , text ==1.2.*-                      , filepath ==1.4.*+  build-depends:        base >= 4.7 && < 5+                      , process >= 1.2 && <= 1.4.4+                      , temporary >= 1.2 && < 1.3+                      , directory == 1.3.*+                      , text == 1.2.*+                      , filepath == 1.4.*   hs-source-dirs:       ./src                       , ./src/lib/   ghc-options:        -Wall   default-language:   Haskell2010 -executable gifcurry_gui+executable            gifcurry_gui   main-is:            Main.hs-  build-depends:        base >=4.7 && <=4.9.0.0-                      , gtk3 >=0.14 && <0.15-                      , process >=1.2 && <=1.4.2.0-                      , temporary >=1.2 && <1.3-                      , directory ==1.2.*-                      , text ==1.2.*-                      , filepath ==1.4.*+  build-depends:        base >= 4.7 && < 5+                      , gtk3 >= 0.14 && < 0.15+                      , process >= 1.2 && <= 1.4.4+                      , temporary >= 1.2 && < 1.3+                      , directory == 1.3.*+                      , text == 1.2.*+                      , filepath == 1.4.*   other-modules:      Paths_Gifcurry, Gifcurry-  ghc-options:        -O3 -threaded -with-rtsopts=-N -Wall+  ghc-options:        -threaded -with-rtsopts=-N -Wall   hs-source-dirs:       ./src/                       , ./src/gui/                       , ./src/lib/   default-language:   Haskell2010 -executable gifcurry_cli+executable            gifcurry_cli   main-is:            Main.hs-  build-depends:        base >=4.7 && <=4.9.0.0-                      , process >=1.2 && <=1.4.2.0-                      , temporary >=1.2 && <1.3-                      , directory == 1.2.*-                      , cmdargs ==0.10.*-                      , text ==1.2.*-                      , filepath ==1.4.*+  build-depends:        base >= 4.7 && < 5+                      , process >= 1.2 && <= 1.4.4+                      , temporary >= 1.2 && < 1.3+                      , directory == 1.3.*+                      , cmdargs == 0.10.*+                      , text == 1.2.*+                      , filepath == 1.4.*   other-modules:      Gifcurry   ghc-options:        -Wall   hs-source-dirs:       ./src/
README.md view
@@ -2,23 +2,21 @@  # Gifcurry -## GUI+Create animated GIFs, optionally overlaid with text, from video files. -![GUI](screenshots/gui.gif)+## Screenshots +![GUI](https://i.imgur.com/QxX0eXT.gif)+ ## Sample GIF -![Caminandes 3: Llamigos (2016) - Blender Foundation](example_gifs/caminandes3.gif)  +![Caminandes 3: Llamigos (2016) - Blender Foundation](https://i.imgur.com/FJW2gBc.gif)   Credit: [Caminandes 3: Llamigos (2016) - Blender Foundation](http://www.caminandes.com/) -## Description--Create animated GIFs, overlaid with optional text, from video files.- ## CLI Usage  ```bash-$ gifcurry_cli \+gifcurry_cli \   -i inputFile \   -o outputFile \   -s startTime \@@ -53,7 +51,9 @@                                   __/ |                                  |___/  -Gifcurry (C) 2016 David Lettier. http://www.lettier.com/+Gifcurry 2.1.1.0+(C) 2016 David Lettier+lettier.com  Input file: ./03_caminandes_llamigos_1080p.mp4 Output file: ./out.gif@@ -74,14 +74,14 @@ ## Dependencies  * [Haskell](https://www.haskell.org/platform/)-  * [alex](https://hackage.haskell.org/package/alex)-  * [happy](https://hackage.haskell.org/package/happy)-  * [gtk2hs-buildtools](https://hackage.haskell.org/package/gtk2hs-buildtools)-  * [cmdargs](https://hackage.haskell.org/package/cmdargs)-  * [System.IO.Temp (temporary)](https://hackage.haskell.org/package/temporary)-  * [Graphics.UI.Gtk (gtk)](https://hackage.haskell.org/package/gtk3)-  * [System.Directory (directory)](https://hackage.haskell.org/package/directory)-  * [System.FilePath (filepath)](https://hackage.haskell.org/package/filepath)+    * [alex](https://hackage.haskell.org/package/alex)+    * [happy](https://hackage.haskell.org/package/happy)+    * [gtk2hs-buildtools](https://hackage.haskell.org/package/gtk2hs-buildtools)+    * [cmdargs](https://hackage.haskell.org/package/cmdargs)+    * [System.IO.Temp (temporary)](https://hackage.haskell.org/package/temporary)+    * [Graphics.UI.Gtk (gtk)](https://hackage.haskell.org/package/gtk3)+    * [System.Directory (directory)](https://hackage.haskell.org/package/directory)+    * [System.FilePath (filepath)](https://hackage.haskell.org/package/filepath) * [FFmpeg](https://www.ffmpeg.org/download.html) * [ImageMagick](http://www.imagemagick.org/script/download.php) * [GTK+](http://www.gtk.org/download/index.php)@@ -215,5 +215,7 @@  For license information, see [LICENSE](LICENSE). -_(C) 2016 David Lettier._  -http://www.lettier.com/+## Copyright++_(C) 2016 David Lettier_  +[lettier.com](http://www.lettier.com/)
src/cli/Main.hs view
@@ -1,4 +1,8 @@--- David Lettier (C) 2016. http://www.lettier.com/+{-+  Gifcurry+  (C) 2016 David Lettier+  lettier.com+-}  {-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE NamedFieldPuns #-}@@ -19,6 +23,9 @@     , bottomText :: String   } deriving (Data, Typeable, Show, Eq) +info :: String+info = "Gifcurry " ++ Gifcurry.versionNumber ++ "\n(C) 2016 David Lettier\nlettier.com"+ cliArgs :: CliArgs cliArgs = CliArgs {       inputFile      = ""        &= typFile &= help "The input video file path and name."@@ -31,7 +38,7 @@     , topText        = ""                   &= help "The text you wish to add to the top of the GIF."     , bottomText     = ""                   &= help "The text you wish to add to the bottom of the GIF."   -- VERSION-  } &= summary "Gifcurry 2.1.0.0 (C) 2016 David Lettier"+  } &= summary info     &= program "gifcurry_cli"  main :: IO ()@@ -106,5 +113,5 @@     , " \\____/_|_| \\___|\\__,_|_|  |_|   \\__, |"     , "                                  __/ |"     , "                                 |___/ "-    , "\nGifcurry (C) 2016 David Lettier. https://www.lettier.com/"+    , info   ]
src/dev/Paths_Gifcurry.hs view
@@ -1,3 +1,9 @@+{-+  Gifcurry+  (C) 2016 David Lettier+  lettier.com+-}+ module Paths_Gifcurry where  getDataFileName :: FilePath -> IO FilePath
src/gui/Main.hs view
@@ -1,4 +1,8 @@--- David Lettier (C) 2016. http://www.lettier.com/+{-+  Gifcurry+  (C) 2016 David Lettier+  lettier.com+-}  import System.Directory import System.Process
src/lib/Gifcurry.hs view
@@ -1,4 +1,8 @@--- David Lettier (C) 2016. http://www.lettier.com/+{-+  Gifcurry+  (C) 2016 David Lettier+  lettier.com+-}  {-# LANGUAGE OverloadedStrings #-} @@ -9,6 +13,7 @@     , GifParams(..)     , defaultGifParams     , gifParamsValid+    , versionNumber   ) where  import System.Process@@ -36,6 +41,10 @@     , bottomText :: String   } deriving (Show, Read) +-- | The version number.+versionNumber :: String+versionNumber = "2.1.1.0"+ -- | Specifies default parameters for 'startTime', 'durationTime', 'widthSize', 'qualityPercent', and 'fontChoice'. defaultGifParams :: GifParams defaultGifParams = GifParams {@@ -156,6 +165,9 @@       , "\nWriting temporary frames to... " ++ tmpdir     ] +frameFileExtension :: String+frameFileExtension = "png"+ tryFfmpeg :: GifParams -> String -> IO (Either IOError String) tryFfmpeg   GifParams {@@ -181,14 +193,14 @@         , "-t"         , dts         , "-r"-        , "15"+        , "12"         , "-q:v"-        , "2"+        , "31"         , "-vf"         , "scale=" ++ wss ++ ":-1"         , "-f"         , "image2"-        , tmpdir ++ "/%010d.png"+        , tmpdir ++ "/%010d." ++ frameFileExtension       ]  tryConvert :: GifParams -> String -> IO (Either IOError String)@@ -205,17 +217,19 @@     let params = [                     "-quiet"                   , "-delay"-                  , "6"+                  , "8.3"+                  , tmpdir ++ "/*." ++ frameFileExtension+                  , "-coalesce"                   , "-colors"                   , show $ ncolors qp-                  , "-coalesce"-                  , "-layers"-                  , "OptimizeTransparency"-                  , "-layers"-                  , "RemoveDups"-                  , tmpdir ++ "/*.png"                   , "-dither"                   , "FloydSteinberg"+                  , "-layers"+                  , "remove-dups"+                  , "-layers"+                  , "compare-any"+                  , "-layers"+                  , "optimize-transparency"                   , "-loop"                   , "0"                 ]