Skip to content

Commit

Permalink
Updates to version 5.0.0.0.
Browse files Browse the repository at this point in the history
  • Loading branch information
lettier committed Oct 31, 2018
1 parent d2563da commit bf0ff79
Show file tree
Hide file tree
Showing 34 changed files with 3,203 additions and 2,080 deletions.
49 changes: 49 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,55 @@

-------------------------------------------------------------------------------

### 5.0.0.0

#### Added

- FPS control
- Color count control
- The ability to load a GIF instead of just video files
- Converts input GIFs to videos and caches the result
- Tooltips to the main toggle buttons
- Additional processing step of reducing each frame's colors if color count < 256 when saving to video
- `PlayableMetadata`
- Color count controls fuzz
- Color count controls output video quality
- Color count preview to first and last frame preview mode
- Additional logging
- `DuplicateRecordFields` to the GUI (GHC 8 only)
- GUI preview resets
- File size icon
- Color count icon
- FPS icon

#### Changed

- `getVideoDurationInSeconds` and `getVideoWidthAndHeight` to `getPlayableMetadata`
- The width size is the size of the output after cropping instead of before
- Uses the longer duration time instead of the shorter stream time
- Switched from floats and doubles to just doubles
- Adjust start and duration time steps based on file duration
- Start and duration time spin buttons now show three decimal places
- GUI preview function arguments to records
- Fix crash when trying to load a directory
- File icon
- Start icon
- End icon

#### Removed

- The quality setting
- Label selection focus on the main toggle buttons
- `qualityFromString`
- `getVideoAverageFrameRateInSeconds`
- `qualityAndFrameRateToGifSettings`
- `qualityAndFrameRateToDelay`
- `qualityAndFrameRateToFrameRate`
- `safeFrameRate`
- `defaultFrameRate`

-------------------------------------------------------------------------------

### 4.0.0.0

#### Added
Expand Down
14 changes: 10 additions & 4 deletions Gifcurry.cabal
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: Gifcurry
version: 4.0.0.0
version: 5.0.0.0
synopsis: GIF creation utility.
description: Your open source video to GIF maker.
homepage: https://github.com/lettier/gifcurry
Expand All @@ -12,8 +12,7 @@ category: Application
, Library
, Graphics
build-type: Simple
extra-source-files: ./README.md
, ./LICENSE
extra-source-files: ./LICENSE
, ./CHANGELOG.md
, ./makefile
, ./lib/GtkMainSyncAsync.hs
Expand All @@ -25,11 +24,14 @@ extra-source-files: ./README.md
, ./src/data/style-3-20.css
, ./src/data/about-dialog-button-image.svg
, ./src/data/check-icon.svg
, ./src/data/color-count-icon.svg
, ./src/data/crop-icon.svg
, ./src/data/down-icon.svg
, ./src/data/end-icon.svg
, ./src/data/error-icon.svg
, ./src/data/file-icon.svg
, ./src/data/file-size.svg
, ./src/data/fps-icon.svg
, ./src/data/gifcurry-logo.svg
, ./src/data/gifcurry-icon.svg
, ./src/data/info-icon.svg
Expand Down Expand Up @@ -62,11 +64,14 @@ data-files: data/gui.glade
, data/style-3-20.css
, data/about-dialog-button-image.svg
, data/check-icon.svg
, data/color-count-icon.svg
, data/crop-icon.svg
, data/down-icon.svg
, data/end-icon.svg
, data/error-icon.svg
, data/file-icon.svg
, data/file-size.svg
, data/fps-icon.svg
, data/gifcurry-logo.svg
, data/gifcurry-icon.svg
, data/info-icon.svg
Expand Down Expand Up @@ -125,7 +130,7 @@ executable gifcurry_gui
, gi-gdkpixbuf == 2.0.16
, gi-gtk == 3.0.*
, gi-cairo == 1.0.*
, gi-gst == 1.0.*
, gi-gst == 1.0.16
, gi-gstvideo == 1.0.*
, cairo == 0.13.*
, pango == 0.13.*
Expand All @@ -137,6 +142,7 @@ executable gifcurry_gui
, filepath == 1.4.*
, filemanip == 0.3.6.*
, transformers == 0.5.*
, pureMD5 == 2.1.*
other-modules: Paths_Gifcurry
, GuiRecords
, GuiCapabilities
Expand Down
122 changes: 63 additions & 59 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,55 +1,57 @@
![Gifcurry](https://i.imgur.com/9pS8Ibp.png)
![Gifcurry](https://i.imgur.com/KFZyEqq.png)

# Tell me about Gifcurry.
# Tell me about Gifcurry. :smiley:

Gifcurry is your only open source video-to-GIF maker built with Haskell.
Load a video, make some edits, and save it as a GIF—it's that easy.
Most video formats should work so go wild.
And since it's made with Haskell, you know it's good.
Gifcurry is your only open-source, video-to-GIF maker built with Haskell.
Load a video, make some edits, and save it as a GIF—Gifcurry makes your life easy! :sunglasses:
Most video formats should work, so go wild.
And since it's made with Haskell, you know it's good. :100:

For the command line averse, there is a GUI.
Die-hard terminal aficionado? Gifcurry has you covered with its CLI.
And for the Haskell programmers out there, there is also a library API.
For the command line averse, there is a GUI. :computer_mouse:
Die-hard terminal aficionado? Gifcurry has you covered with its CLI. :desktop_computer:
And for the Haskell programmers out there, there is also a library :books: API.

Gifcurry can save your creation as a GIF or as a video.
So if you hate GIFs with a passion—no problem!
Just select "Save as a Video" and do your part to rid the world of GIFs.
Gifcurry can save your creation as a GIF or as a video. :vhs:
So if you hate :angry: GIFs with a passion—no problem!
Just select "Save as a Video" and do your part to rid :wastebasket: the world of GIFs.

Enjoy memes? Great! Gifcurry can add text all over your GIF.
Enjoy memes? :trollface: Great! Gifcurry can add text all over your GIF.
You can change the font, size, color, position, outline, rotation, and the timing.
Create the next viral meme with Gifcurry.

Did you know Gifcurry slices...and dices?
You can crop from the left, the right, the top, and/or the bottom.
Did you know Gifcurry slices...and dices? :fork_and_knife:
You can crop :scissors: from the left, the right, the top, and/or the bottom.
With Gifcurry, you can slice up some tasty GIFs.

Is Gifcurry another Electron app? No way! Gifcurry is 100% #ElectronFree.
No need to download more RAM, Gifcurry is light as a feather.
Run it all day, run it all year—you'll never notice.
No need to download more RAM :ram:, Gifcurry is light as a feather.
Run :running: it all day, run it all year—you'll never notice.

"So...Gifcurry is just FFmpeg and ImageMagick?"—nope.
Gifcurry hides all the goofy details so you can concentrate on what matters—the almighty GIF.
Making GIFs with Gifcurry is fun so try it out!
Gifcurry hides all the goofy details so you can concentrate on what matters—the almighty :raised_hands: GIF.

## What do I need Gifcurry for?
Become a GIF master :muscle: with Gifcurry!

Want to show off that new UI feature in a pull request? Gifcurry.
Your template doesn't allow video in the hero image? Gifcurry.
No GIF of your favorite movie scene? Gifcurry.
Need a custom animated emoji for Slack? Gifcurry.
Can't find the perfect GIF for that reply-all email? Gifcurry.
Your README needs a GIF? Gifcurry.
That presentation slide could use some animation? Gifcurry.
Video doesn't auto play on iOS? Gifcurry.
## What do I need Gifcurry for? :thinking:

Gifcurry comes in handy for all sorts of scenarios.
:ballot_box_with_check: Want to show off that new UI feature in a pull request? Gifcurry.
:ballot_box_with_check: Your template doesn't allow video in the hero image? Gifcurry.
:ballot_box_with_check: No GIF of your favorite movie scene? Gifcurry.
:ballot_box_with_check: Need a custom animated emoji for Slack? Gifcurry.
:ballot_box_with_check: Can't find the perfect GIF for that reply-all email? Gifcurry.
:ballot_box_with_check: Your README needs a GIF? Gifcurry.
:ballot_box_with_check: That presentation slide could use some animation? Gifcurry.
:ballot_box_with_check: Video doesn't auto play on iOS? Gifcurry.
:ballot_box_with_check: Time to promote your indie game? Gifcurry.

## What does the GUI look like?
Gifcurry comes in handy :wrench: for all sorts of scenarios.

![Gifcurry GUI](https://i.imgur.com/IhB50O1.gif)
## What does the GUI look :eyes: like?

![Gifcurry GUI](https://i.imgur.com/ByyCNuk.gif)

## How do I use the command line interface (CLI)?

## How do I use the command line interface (CLI)? :desktop_computer:

```text
gifcurry_cli [OPTIONS]
Expand All @@ -64,11 +66,11 @@ TIME:
-d --duration-time=NUM How long the GIF lasts (in seconds) from the
start time.
OUTPUT FILE SIZE:
-w --width-size=INT How wide the GIF needs to be. Height will
-w --width=INT How wide the GIF needs to be. Height will
scale to match.
-q --quality=ITEM Controls how many colors are used and the
frame rate.
The options are High, Medium, and Low.
-f --fps=INT How many frames per second the output should
have.
-c --color-count=INT How many colors are used in the output.
CROP:
-L --left-crop=NUM The amount you wish to crop from the left.
-R --right-crop=NUM The amount you wish to crop from the right.
Expand Down Expand Up @@ -112,6 +114,8 @@ gifcurry_cli \
-d 1 \
-t ~/tmp/text-overlays.yaml \
-w 800 \
-f 15 \
-c 100 \
-q High \
-L 0.1 \
-R 0.1 \
Expand All @@ -133,7 +137,7 @@ gifcurry_cli \
          ▀▀▀▀▀▀▀                                                                             
Gifcurry 4.0.0.0
Gifcurry 5.0.0.0
(C) 2016 David Lettier
lettier.com
Expand All @@ -147,8 +151,9 @@ lettier.com
- Start Second: 150.000
- Duration Time: 1.000 seconds
- OUTPUT FILE SIZE:
- Width Size: 800px
- Quality: High
- Width: 800px
- FPS: 15
- Color Count: 100
- TEXT:
- Text: This is a test.
- Font:
Expand All @@ -158,7 +163,7 @@ lettier.com
- Stretch: Normal
- Weight: 800
- Time:
- Start: 150.000 seconds
- Start Second: 150.000
- Duration: 20.000 seconds
- Translation:
- Origin: NorthWest
Expand All @@ -178,44 +183,45 @@ lettier.com
- Bottom: 0.100
[INFO] Writing the temporary frames to: /home/.cache/gifcurry/gifcurry-frames30450
[INFO] Adding text...
[INFO] Adding text.
[INFO] Converting the frames to the specified color count.
[INFO] Saving your video to: /home/tmp/test.webm
[INFO] All done.
```

## How do I get a copy of Gifcurry?
## How do I get a copy of Gifcurry? :floppy_disk:

Gifcurry works on Linux, Mac, and most likely Windows.
Make sure you have FFmpeg, GStreamer, ImageMagick, and GTK+ installed on your machine.
To find the latest version of Gifcurry, head over to the
[releases page](https://github.com/lettier/gifcurry/releases).

### I use Linux.
### I use Linux. :penguin:

If you use Linux then the easiest way to grab a copy of Gifcurry is by downloading the
[AppImage](https://github.com/lettier/gifcurry/releases/download/4.0.0.0/gifcurry-4.0.0.0-x86_64.AppImage).
[AppImage](https://github.com/lettier/gifcurry/releases/download/5.0.0.0/gifcurry-5.0.0.0-x86_64.AppImage).
After you download the
[AppImage](https://github.com/lettier/gifcurry/releases/download/4.0.0.0/gifcurry-4.0.0.0-x86_64.AppImage),
[AppImage](https://github.com/lettier/gifcurry/releases/download/5.0.0.0/gifcurry-5.0.0.0-x86_64.AppImage),
right click on it, select permissions, and check the box near execute.
With that out of the way—you're all set—just double click on the AppImage
and the GUI will fire right up.

You can also download and install the
[AppImage](https://github.com/lettier/gifcurry/releases/download/4.0.0.0/gifcurry-4.0.0.0-x86_64.AppImage)
[AppImage](https://github.com/lettier/gifcurry/releases/download/5.0.0.0/gifcurry-5.0.0.0-x86_64.AppImage)
using the handy
[AppImage install script](https://raw.githubusercontent.com/lettier/gifcurry/master/packaging/linux/app-image/gifcurry-app-image-install.sh)
(right click and save link as).
Download the script, right click on it, select permissions, check the box near execute, and double click on it.
You should now see Gifcurry listed alongside your other installed programs.

If you want the CLI then download the
[prebuilt version](https://github.com/lettier/gifcurry/releases/download/4.0.0.0/gifcurry-linux-4.0.0.0.tar.gz)
[prebuilt version](https://github.com/lettier/gifcurry/releases/download/5.0.0.0/gifcurry-linux-5.0.0.0.tar.gz)
for Linux, extract it, open up your terminal,
`cd` to the bin folder, and then run `gifcurry_cli -?`.
As an added bonus, inside the bin directory is the GUI version
too so now you have both.

#### I use Arch/Manjaro/Antergos/pacman.
#### I use Arch/Manjaro/Antergos/pacman. :ghost:

If you'd rather install Gifcurry via pacman then copy the following into your terminal.

Expand All @@ -233,7 +239,7 @@ gifcurry_cli -?
gifcurry_gui
```

#### I use Ubuntu/Mint/Debian/Deepin/snap.
#### I use Ubuntu/Mint/Debian/Deepin/snap. :cyclone:

Gifcurry is available as a snap from [Snapcraft](https://snapcraft.io/).
If you don't already have `snap`, go ahead and install it using the command `sudo apt install snapd`.
Expand All @@ -245,20 +251,18 @@ For the command line route, paste the following into your terminal.

```bash
snap install gifcurry
sudo snap connect gifcurry:mount-observe
sudo snap connect gifcurry:removable-media
sudo snap connect gifcurry:raw-usb
gifcurry
```

The
[Gifcurry snap](https://snapcraft.io/gifcurry)
only comes with the GUI.
If you want the CLI, download the
[prebuilt version](https://github.com/lettier/gifcurry/releases/download/4.0.0.0/gifcurry-linux-4.0.0.0.tar.gz)
[prebuilt version](https://github.com/lettier/gifcurry/releases/download/5.0.0.0/gifcurry-linux-5.0.0.0.tar.gz)
for Linux.

### I use Mac.
### I use Mac. :apple:

Mac users can download the
[Mac install script](https://raw.githubusercontent.com/lettier/gifcurry/master/packaging/mac/gifcurry-mac-install-script.command)
Expand All @@ -274,7 +278,7 @@ chmod +x gifcurry-mac-install-script.command

After running the install script, a shortcut to both the Gifcurry GUI and CLI will be on your desktop.

### I'm a Haskell developer.
### I'm a Haskell developer. :hammer:

If you develop Haskell programs then the easiest way to build Gifcurry is with
[Haskell Stack](https://docs.haskellstack.org/en/stable/README/).
Expand All @@ -292,26 +296,26 @@ $HOME/.local/bin/gifcurry_cli -?
$HOME/.local/bin/gifcurry_gui
```

## What dependencies does Gifcurry use?
## What dependencies does Gifcurry use? :thinking:

### To run Gifcurry.
### To run Gifcurry. :running:

* [GTK+ >= 3.10](http://www.gtk.org/download/index.php)
* [FFmpeg >= 3](https://www.ffmpeg.org/download.html)
* [GStreamer >= 1.0](https://gstreamer.freedesktop.org/download/)
* [GStreamer Plugins](https://gstreamer.freedesktop.org/modules/)
* [ImageMagick >= 6](http://www.imagemagick.org/script/download.php)

### To build Gifcurry.
### To build Gifcurry. :construction_worker:

* [GObject Introspection](https://wiki.gnome.org/action/show/Projects/GObjectIntrospection)
* [Haskell Stack](https://docs.haskellstack.org/en/stable/README/)

## What is the license?
## What is the license? :scroll:

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

## Who wrote Gifcurry?
## Who wrote Gifcurry? :copyright:

(C) 2016 David Lettier
[lettier.com](http://www.lettier.com/)
Loading

0 comments on commit bf0ff79

Please sign in to comment.