packages feed

Gifcurry-2.1.0.0: README.md

![Gifcurry](http://i.imgur.com/jhU7puN.png)

# Gifcurry

## GUI

![GUI](screenshots/gui.gif)

## Sample GIF

![Caminandes 3: Llamigos (2016) - Blender Foundation](example_gifs/caminandes3.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 \
  -i inputFile \
  -o outputFile \
  -s startTime \
  -d durationTime \
  -w widthSize \
  -q qualityPercent \
  -f fontChoice \
  -t topText \
  -b bottomText
```

## CLI Example

```Bash
~/gifcurry ❯❯❯ ./gifcurry_cli \
  -i ./03_caminandes_llamigos_1080p.mp4 \
  -o ./out.gif \
  -s 42 \
  -d 4 \
  -w 600 \
  -q 100 \
  -f 'Roboto Condensed Bold Italic' \
  -t 'Download' \
  -b 'Gifcurry'

 _____ _  __                           
|  __ (_)/ _|                          
| |  \/_| |_ ___ _   _ _ __ _ __ _   _ 
| | __| |  _/ __| | | | '__| '__| | | |
| |_\ \ | || (__| |_| | |  | |  | |_| |
 \____/_|_| \___|\__,_|_|  |_|   \__, |
                                  __/ |
                                 |___/ 

Gifcurry (C) 2016 David Lettier. http://www.lettier.com/

Input file: ./03_caminandes_llamigos_1080p.mp4
Output file: ./out.gif
Start second: 42.000
Duration: 4.000 seconds
GIF width: 600px
Quality: 100.0%
Font Choice: Roboto Condensed Bold Italic
Top text: Download
Bottom text: Gifcurry

Writing temporary frames to... ./frames13465
Font matched: Roboto-Condensed-Bold-Italic
Writing your GIF to... ./out.gif
Done.
```

## 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)
* [FFmpeg](https://www.ffmpeg.org/download.html)
* [ImageMagick](http://www.imagemagick.org/script/download.php)
* [GTK+](http://www.gtk.org/download/index.php)

## Install & Run

### Ubuntu/Mint

```bash
# Install FFmpeg & ImageMagick
sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next
sudo apt-get update
sudo apt-get install ffmpeg imagemagick
# Find the latest release at https://github.com/lettier/gifcurry/releases
wget https://github.com/lettier/gifcurry/releases/download/*/gifcurry-linux*.tar.gz
tar xvfz gifcurry-linux*.tar.gz
cd gifcurry-linux*/bin
./gifcurry_gui
./gifcurry_cli -?
```

### Arch Linux

```bash
# Install FFmpeg and ImageMagick
# Install yaourt (https://archlinux.fr/yaourt-en)
# AUR package: https://aur.archlinux.org/packages/gifcurry/
yaourt -S gifcurry
gifcurry_gui
gifcurry_cli -?
```

### macOS Sierra

#### Binaries

```bash
# If you don't have Homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install ffmpeg
brew install imagemagick
brew install ghostscript
brew install wget
brew install gnome-icon-theme
# Find the latest release at https://github.com/lettier/gifcurry/releases
wget https://github.com/lettier/gifcurry/releases/download/*/gifcurry-macosx*.tar.gz
tar xvfz gifcurry-macosx*.tar.gz
cd gifcurry-macosx*/bin
./gifcurry_gui
./gifcurry_cli -?
```

#### Compile

```bash
# If you don't have Homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew update
brew install xcode
brew install git
brew install ghc
sudo chown -R $(whoami):admin /usr/local/bin
brew link ghc
brew install cabal-install
brew install pkg-config
brew install glib
brew install gtk+3
brew install cairo
brew install pango
brew install ffmpeg
brew install imagemagick
brew install ghostscript
brew install gnome-icon-theme
mkdir gifcurry
cd gifcurry
cabal sandbox init
cabal update
cabal install alex happy -j
cabal install gtk2hs-buildtools -j
cabal install gifcurry -j
cd .cabal-sandbox/bin/
./gifcurry_gui
./gifcurry_cli -?
```

### Hackage

```bash
# Install ghc and cabal-install
# Install ffmpeg and imagemagick
cabal update
cabal install alex happy -j
cabal install gtk2hs-buildtools -j
cabal install gifcurry -j
cd ~/.cabal/bin
./gifcurry_gui
./gifcurry_cli -?
```

### Github

```bash
# Install ghc and cabal-install
# Install ffmpeg and imagemagick
# Install GNU Make
git clone git@github.com:lettier/gifcurry.git
cd gifcurry/
make
make run_gui
make run_cli CLI_ARGS='-?'

# Or you can do

# Install ghc and cabal-install
# Install ffmpeg and imagemagick
git clone git@github.com:lettier/gifcurry.git
cd gifcurry/
cabal sandbox init
cabal update
cabal install alex happy -j
cabal install gtk2hs-buildtools -j
cabal install -j --dependencies-only
cabal configure
cabal build -j
cabal install -j --enable-relocatable
./.cabal-sandbox/bin/gifcurry_gui
./.cabal-sandbox/bin/gifcurry_cli -?
```

## License

For license information, see [LICENSE](LICENSE).

_(C) 2016 David Lettier._  
http://www.lettier.com/