diff --git a/.gitignore b/.gitignore index 9b9b20a..fc3d0bc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +._gifcurry_trash_/* +gifcurry-linux-* .cabal-sandbox/* .stack-work/* *.stack* diff --git a/CHANGELOG.md b/CHANGELOG.md index e6076c9..7f6e2f1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,54 @@ ------------------------------------------------------------------------------- +### 4.0.0.0 + +#### Added + +- Multiple dynamic text overlays +- Text overlay YAML file option `-t` to CLI +- Text fill and outline color configuration +- Text start and duration time configuration +- Text origin, x translation, and y translation configuration +- Text overlay preview to GUI +- Text left and top placement entries to GUI +- Text rotation configuration +- Text outline size configuration +- Outline and fill color selectors to GUI +- Pattern to GUI crop preview +- `textOverlayOriginFromString` to library API +- `qualityFromString` to library API +- `TextOverlays` to library API +- `TextOverlay` to library API +- `TextOverlayOrigin` to library API +- `Quality` to library API +- Text overlay validation +- Time slices and video position display custom widget +- Video position clock +- Pause button for video preview +- A complete theme +- An icon set + +#### Changed + +- Quality percent to quality nominal +- CLI Logo +- CLI help information +- GUI shows only file selection, info, and status on start up +- GUI crop preview color +- GUI preview size +- GUI icon size +- GUI first and last frame preview draw area to match the image size +- GUI takes the video URI from the inVideoPropertiesRef instead of the inFileChooserDialog during save +- Save as video bypasses GIF creation and goes straight to video creation +- Video output configuration + +#### Removed + +- CLI Icon + +------------------------------------------------------------------------------- + ### 3.0.0.2 #### Added diff --git a/Gifcurry.cabal b/Gifcurry.cabal index fa3b22c..5d1dd09 100644 --- a/Gifcurry.cabal +++ b/Gifcurry.cabal @@ -1,5 +1,5 @@ name: Gifcurry -version: 3.0.0.2 +version: 4.0.0.0 synopsis: GIF creation utility. description: Your open source video to GIF maker. homepage: https://github.com/lettier/gifcurry @@ -12,23 +12,86 @@ category: Application , Library , Graphics build-type: Simple -extra-source-files: README.md - , LICENSE - , CHANGELOG.md +extra-source-files: ./README.md + , ./LICENSE + , ./CHANGELOG.md + , ./makefile , ./lib/GtkMainSyncAsync.hs , ./lib/GiCairoCairoBridge.hs , ./lib/LICENSE , ./src/dev/Paths_Gifcurry.hs , ./src/data/style.css + , ./src/data/style-3-18.css + , ./src/data/style-3-20.css + , ./src/data/about-dialog-button-image.svg + , ./src/data/check-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/gifcurry-logo.svg , ./src/data/gifcurry-icon.svg - , ./src/data/about-dialog-button-image.svg - , ./makefile + , ./src/data/info-icon.svg + , ./src/data/left-icon.svg + , ./src/data/minus-icon.svg + , ./src/data/open-icon.svg + , ./src/data/plus-icon.svg + , ./src/data/pause-icon.svg + , ./src/data/pen-icon.svg + , ./src/data/right-icon.svg + , ./src/data/save-as-gif-icon.svg + , ./src/data/save-as-video-icon.svg + , ./src/data/save-icon.svg + , ./src/data/spiral-icon.svg + , ./src/data/start-icon.svg + , ./src/data/text-icon.svg + , ./src/data/up-icon.svg + , ./src/data/upload-icon.svg + , ./src/data/warning-icon.svg + , ./src/data/width-icon.svg + , ./src/data/x-icon.svg + , ./src/data/pattern.svg + , ./src/data/gray-pattern.png + , ./src/data/purple-pattern.png + , ./src/data/green-pattern.png + , ./src/data/orange-pattern.png data-files: data/gui.glade , data/style.css + , data/style-3-18.css + , data/style-3-20.css + , data/about-dialog-button-image.svg + , data/check-icon.svg + , data/crop-icon.svg + , data/down-icon.svg + , data/end-icon.svg + , data/error-icon.svg + , data/file-icon.svg , data/gifcurry-logo.svg , data/gifcurry-icon.svg - , data/about-dialog-button-image.svg + , data/info-icon.svg + , data/left-icon.svg + , data/minus-icon.svg + , data/open-icon.svg + , data/plus-icon.svg + , data/pause-icon.svg + , data/pen-icon.svg + , data/right-icon.svg + , data/save-as-gif-icon.svg + , data/save-as-video-icon.svg + , data/save-icon.svg + , data/spiral-icon.svg + , data/start-icon.svg + , data/text-icon.svg + , data/up-icon.svg + , data/upload-icon.svg + , data/warning-icon.svg + , data/width-icon.svg + , data/x-icon.svg + , data/gray-pattern.png + , data/purple-pattern.png + , data/green-pattern.png + , data/orange-pattern.png data-dir: ./src/ cabal-version: >= 1.10 @@ -37,13 +100,14 @@ source-repository head location: https://github.com/lettier/gifcurry library - exposed-modules: Gifcurry + exposed-modules: Gifcurry 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.* + , filemanip == 0.3.6.* hs-source-dirs: ./src , ./src/lib/ ghc-options: -Wall -freverse-errors @@ -56,24 +120,29 @@ executable gifcurry_gui , haskell-gi-base == 0.21.* , gi-gobject == 2.0.* , gi-glib == 2.0.* + , gi-pango == 1.0.* , gi-gdk == 3.0.* + , gi-gdkpixbuf == 2.0.15 , gi-gtk == 3.0.* , gi-cairo == 1.0.* , gi-gst == 1.0.* , gi-gstvideo == 1.0.* , cairo == 0.13.* + , pango == 0.13.* , bytestring == 0.10.* , process >= 1.2 && <= 1.4.4 , temporary >= 1.2 && < 1.3 , directory == 1.3.* , text == 1.2.* , filepath == 1.4.* + , filemanip == 0.3.6.* , transformers == 0.5.* other-modules: Paths_Gifcurry , GuiRecords , GuiCapabilities , Gifcurry , GuiStyle + , GuiTextOverlays , GuiPreview , GuiMisc @@ -95,6 +164,10 @@ executable gifcurry_cli , cmdargs == 0.10.* , text == 1.2.* , filepath == 1.4.* + , filemanip == 0.3.6.* + , aeson == 1.1.2.* + , bytestring == 0.10.8.* + , yaml == 0.8.23.* other-modules: Gifcurry ghc-options: -Wall -freverse-errors hs-source-dirs: ./src/ diff --git a/README.md b/README.md index 146cf23..2bad952 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -![Gifcurry](https://i.imgur.com/1omeH3m.png) +![Gifcurry](https://i.imgur.com/9pS8Ibp.png) # Tell me about Gifcurry. -Gifcurry is your only open source video to GIF maker built with Haskell. +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. @@ -13,104 +13,127 @@ And for the Haskell programmers out there, there is also a library 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 video" and do your part to rid the world of GIFs. +Just select "Save as a Video" and do your part to rid the world of GIFs. -Enjoy memes? Great! Gifcurry can add text to the top and/or the bottom of your GIF. -Just type in some text for the top or type in some text for the bottom or type in -some pithy text for both the top and bottom—Gifcurry don't care. -Oh and you can select the font too so you're never too far from Comic Sans. +Enjoy memes? 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. -Gifcurry caters to the power user with its crop tool. +Did you know Gifcurry slices...and dices? You can crop from the left, the right, the top, and/or the bottom. -With Gifcurry, you can cut out anything you don't want. +With Gifcurry, you can slice up some tasty GIFs. -Is Gifcurry another Electron app? No way! Gifcurry is 100% #electronfree. +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. -"So...Gifcurry is just FFmpeg and ImageMagick." Nope. +"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! ## What do I need Gifcurry for? -Need to show off that new UI feature in a pull request? 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. -Have an idea of the perfect GIF to close out that email? 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. Gifcurry comes in handy for all sorts of scenarios. ## What does the GUI look like? -![Gifcurry GUI](https://i.imgur.com/dVpQfHq.gif) +![Gifcurry GUI](https://i.imgur.com/IhB50O1.gif) -## Got any sample GIFs? - -![GIF](https://i.imgur.com/alxcMli.gif) -![GIF](https://i.imgur.com/FUjIBm2.gif) ## How do I use the command line interface (CLI)? -```bash +```text gifcurry_cli [OPTIONS] FILE IO: - -i --input-file=FILE The input video file path and name. - -o --output-file=FILE The output GIF file path and name. - -m --save-as-video If present, saves the GIF as a video. + -i --input-file=FILE The input video file path and name. + -o --output-file=FILE The output GIF file path and name. + -m --save-as-video If present, saves the GIF as a video. TIME: - -s --start-time=NUM The start time (in seconds) for the first frame. - -d --duration-time=NUM How long the GIF lasts (in seconds) from the - start time. + -s --start-time=NUM The start time (in seconds) for the first + frame. + -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 scale - to match. - -q --quality-percent=NUM From 1 (very low quality) to 100 (the best - quality). Controls how many colors are used and how - many frames per second there are. -TEXT: - -f --font-choice=TEXT Choose your desired font for the top and bottom - text. - -t --top-text=TEXT The text you wish to add to the top of the GIF. - -b --bottom-text=TEXT The text you wish to add to the bottom of the - GIF. + -w --width-size=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. 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. - -T --top-crop=NUM The amount you wish to crop from the top. - -B --bottom-crop=NUM The amount you wish to crop from the bottom. -INFO: - -? --help Display help message - -V --version Print version information + -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. + -T --top-crop=NUM The amount you wish to crop from the top. + -B --bottom-crop=NUM The amount you wish to crop from the bottom. +TEXT: + -t --text-overlays-file=FILE The text overlays YAML file path and name. + The format is: + - text: ... + fontFamily: ... + fontStyle: ... + fontStretch: ... + fontWeight: ... + fontSize: ... + origin: ... + xTranslation: ... + yTranslation: ... + rotation: ... + startTime: ... + durationTime: ... + outlineSize: ... + outlineColor: ... + fillColor: ... + - text: ... + ... + + + -? --help Display help message + -V --version Print version information + +Visit https://github.com/lettier/gifcurry for more information. ``` ## Got a CLI example? ```text gifcurry_cli \ --i ~/Videos/video.webm -o ~/tmp/test -m \ --L 25 -R 25 -T 25 -B 25 \ --s 149.11 -d 1 \ --f 'fira sans' -t 'Top Text' -b 'Bottom Text' - - ppDPPPDbDDpp - pDPPPP )DPDp ) - PPPPP )pp DPPp ppppp PPP pDbDD - p )PPP PPPD PPPD pDPDPPPDP PPP - bP DPP pPPP )PPPb (PPP PPP )PPPPPP pDPPPDb PPP PPb PPbpDPP PPbpPP ·DPb pPD - (PPb )D (PPD bPPP PPP DDDDD PPP PPP PPb PPP PPb PPPP PPPP (PP pPPC - (PPPp PPP b )PPP DPPp PPP PPP PPP (PPb PPP PPb PPP PPP DPb PPP - PPPb DPPP pPp DPb DPDp PPP PPP PPP DPPp p PPP pPPb PPP PPP PPpPP - )PPPp (DPPP )PPb b (PPDDPPP PPP PPP (PDDDPC PDDP PPC PPP PPP )DPPP - )DPPp )DD DPPPb pbPP - )DPbp (PPPPPb PPC - SPDbDppppPPDPC - -Gifcurry 3.0.0.2 + -i ~/Videos/video.webm \ + -o ~/tmp/test \ + -s 150 \ + -d 1 \ + -t ~/tmp/text-overlays.yaml \ + -w 800 \ + -q High \ + -L 0.1 \ + -R 0.1 \ + -T 0.1 \ + -B 0.1 \ + -m + +         ▄▄▄▄▄▄▄▄                                                                              +     ▄▄████   ▀▀███▄                                                                          +      ████▀   ▄    ▀███           ▄    ▐██▌   ▄███▄                                           +  ▄   ▐███   ████   ▀███      ▄███▀▀██       ███                                              + ▐█▌   ██   ▐███     ████    ███        ▐██ █████▌ ▄█████ ▐██▌  ██▌  ██▄██▌ ██▄██▌ ██▌   ███  + ███   ▐▌   ███      ▐███▌   ███  ████▌ ▐██   ██▌  ███     ▐██▌  ██▌  ███▀   ███▀   ▐██  ███   + ████      ███▀  ▐█   ███▌   ███    ██▌ ▐██   ██▌  ███     ▐██▌  ██▌  ██▌    ██▌     ██▌▐██    + ▐███▄    ▐██▌   ██    ██     ███▄▄▄██▌ ▐██   ██▌   ███▄▄█ ███▄███▌  ██▌    ██▌      ████▌    +  ▀███   ▀███   ▐███   ▀        ▀▀▀▀▀    ▀▀   ▀▀      ▀▀▀    ▀▀▀   ▀▀     ▀▀        ███     +    ███▄   ▀    ████▌                                                                ███▀      +      ▀███▄▄   █████▀                                                                          +          ▀▀▀▀▀▀▀                                                                              + + +Gifcurry 4.0.0.0 (C) 2016 David Lettier lettier.com @@ -121,24 +144,41 @@ lettier.com - Output File: /home/tmp/test.webm - Save As Video: Yes - TIME: - - Start Second: 149.110 + - Start Second: 150.000 - Duration Time: 1.000 seconds - OUTPUT FILE SIZE: - - Width Size: 500px - - Quality Percent: 100.0% + - Width Size: 800px + - Quality: High - TEXT: - - Font Choice: fira sans - - Top Text: Top Text - - Bottom Text: Bottom Text + - Text: This is a test. + - Font: + - Family: Sans + - Size: 30 + - Style: Normal + - Stretch: Normal + - Weight: 800 + - Time: + - Start: 150.000 seconds + - Duration: 20.000 seconds + - Translation: + - Origin: NorthWest + - X: 0.0 + - Y: 0.0 + - Rotation: + - Degrees: 0 + - Outline: + - Size: 10 + - Color: rgb(1,100,10) + - Fill: + - Color: rgb(255,255,0) - CROP: - - Left Crop: 25.000 - - Right crop: 25.000 - - Top Crop: 25.000 - - Bottom Crop: 25.000 - -[INFO] Writing the temporary frames to: /home/.cache/gifcurry/gifcurry-frames17389 -[INFO] Your font choice matched to "Fira-Sans". -[INFO] Saving your GIF to: /home/.cache/gifcurry/gifcurry-frames17389/finished-result.gif + - Left: 0.100 + - Right: 0.100 + - Top: 0.100 + - Bottom: 0.100 + +[INFO] Writing the temporary frames to: /home/.cache/gifcurry/gifcurry-frames30450 +[INFO] Adding text... [INFO] Saving your video to: /home/tmp/test.webm [INFO] All done. ``` @@ -153,15 +193,15 @@ To find the latest version of Gifcurry, head over to the ### I use Linux. 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/3.0.0.2/gifcurry-3.0.0.2-x86_64.AppImage). +[AppImage](https://github.com/lettier/gifcurry/releases/download/4.0.0.0/gifcurry-4.0.0.0-x86_64.AppImage). After you download the -[AppImage](https://github.com/lettier/gifcurry/releases/download/3.0.0.2/gifcurry-3.0.0.2-x86_64.AppImage), +[AppImage](https://github.com/lettier/gifcurry/releases/download/4.0.0.0/gifcurry-4.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/3.0.0.2/gifcurry-3.0.0.2-x86_64.AppImage) +[AppImage](https://github.com/lettier/gifcurry/releases/download/4.0.0.0/gifcurry-4.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). @@ -169,7 +209,7 @@ Download the script, right click on it, select permissions, check the box near e 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/3.0.0.2/gifcurry-linux-3.0.0.2.tar.gz) +[prebuilt version](https://github.com/lettier/gifcurry/releases/download/4.0.0.0/gifcurry-linux-4.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 @@ -215,7 +255,7 @@ 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/3.0.0.2/gifcurry-linux-3.0.0.2.tar.gz) +[prebuilt version](https://github.com/lettier/gifcurry/releases/download/4.0.0.0/gifcurry-linux-4.0.0.0.tar.gz) for Linux. ### I use Mac. @@ -250,6 +290,7 @@ $HOME/.local/bin/gifcurry_gui * [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. diff --git a/docs/gifcurry-ui-0.gif b/docs/gifcurry-ui-0.gif index 84387f8..76652c8 100644 Binary files a/docs/gifcurry-ui-0.gif and b/docs/gifcurry-ui-0.gif differ diff --git a/docs/gifcurry-ui-1.gif b/docs/gifcurry-ui-1.gif index 558dc9d..6043c59 100644 Binary files a/docs/gifcurry-ui-1.gif and b/docs/gifcurry-ui-1.gif differ diff --git a/docs/gifcurry-ui-2.gif b/docs/gifcurry-ui-2.gif index 094e725..bda7531 100644 Binary files a/docs/gifcurry-ui-2.gif and b/docs/gifcurry-ui-2.gif differ diff --git a/docs/gifcurry-ui-3.gif b/docs/gifcurry-ui-3.gif index 5824a74..cb5d2ac 100644 Binary files a/docs/gifcurry-ui-3.gif and b/docs/gifcurry-ui-3.gif differ diff --git a/docs/index.html b/docs/index.html index b4be43d..9ac1773 100644 --- a/docs/index.html +++ b/docs/index.html @@ -125,8 +125,8 @@

ImageMagick.

Linux users can download the - AppImage or - the prebuilt binaries. + AppImage or + the prebuilt binaries. If you'd rather install it, you can do so via pacman (Arch) or diff --git a/docs/screenshot.jpg b/docs/screenshot.jpg index 4a85294..381f131 100644 Binary files a/docs/screenshot.jpg and b/docs/screenshot.jpg differ diff --git a/icon/icon-1-0.svg b/icon/icon-1-0.svg index 075f0bf..00125d5 100644 --- a/icon/icon-1-0.svg +++ b/icon/icon-1-0.svg @@ -1,6 +1,4 @@ - - + height="360" + width="360" + version="1.1" + id="svg4247"> @@ -34,325 +25,203 @@ - - - - - - + d="m 568.74979,47.923777 131.4827,201.742193 -56.4097,104.44198 -65.9398,-80.1473" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m 620.30939,138.88105 -63.8266,110.33378 -93.4282,-127.76124 80.6828,-108.222263 17.6284,26.48706" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="M 567.63459,46.250997 699.78419,249.65402" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + d="m 620.60599,138.81143 -64.1232,110.84259" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + id="path4423" /> + id="path4425" /> + id="path4427" /> + id="path4429" /> + id="path4439" /> + id="path4441" /> + id="path4443" /> + id="path4445" /> + d="m 578.22889,47.923777 131.4827,201.742193 -56.4097,104.44198 -65.9398,-80.1473" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m 629.78839,138.88105 -63.8265,110.33378 -93.4283,-127.76124 80.6829,-108.222263 17.6284,26.48706" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + d="M 577.11369,46.250997 709.26319,249.65402" + style="fill:none;fill-rule:evenodd;stroke:#a427c0;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + d="m 630.08509,138.81143 -64.1232,110.84259" + style="fill:none;fill-rule:evenodd;stroke:#a427c0;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + d="m 588.82319,47.923777 131.4826,201.742193 -56.4097,104.44198 -65.9397,-80.1473" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m 640.38269,138.88105 -63.8266,110.33378 -93.4282,-127.76124 80.6829,-108.222263 17.6284,26.48706" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="M 587.70799,46.250997 719.85749,249.65402" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + d="m 640.67929,138.81143 -64.1232,110.84259" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + id="path4463" /> + id="path4465" /> + id="path4467" /> + id="path4469" /> + preserveAspectRatio="none" + xlink:href="data:image/png;base64,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 8LYAAAAASUVORK5CYII= " + id="image4173" + x="987.93323" + y="-90.259583" /> + d="m 862.07259,73.6407 117.6521,176.19937" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + d="m 860.79409,250.79194 57.432,-85.86931" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + d="m 860.96839,250.36722 -80.5542,-118.985 61.3565,-89.602073 12.4395,19.804663" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + d="m 881.24659,280.79116 39.795,55.55914" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + id="path4198" /> + style="display:inline" + id="layer1"> + d="m 142.48086,276.88801 39.795,55.55914" + id="path4242" /> + d="m 181.96976,332.83382 58.9867,-88.19368" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.02706873px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m 122.02826,246.88879 57.4321,-85.86931" + style="fill:none;fill-rule:evenodd;stroke:#ea2a89;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + d="m 122.20266,246.46407 -80.5543,-118.985 61.3566,-89.602074 12.02058,19.213246" + style="fill:none;fill-rule:evenodd;stroke:#ea2a89;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + d="m 142.48086,276.88801 39.64195,55.75247 58.83485,-87.35195 -117.6509,-175.550981" + style="fill:none;fill-rule:evenodd;stroke:#ea2a89;stroke-width:16;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + d="m 146.07926,246.88879 56.9392,-85.08075" + style="fill:none;fill-rule:evenodd;stroke:#5cb86b;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + d="m 166.92604,276.88801 39.64195,55.75247 58.8349,-87.35195 L 147.75204,69.737549" + style="fill:none;fill-rule:evenodd;stroke:#5cb86b;stroke-width:18;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + d="m 173.67866,246.88879 56.2492,-84.19363" + id="path4288" /> + d="m 194.13126,276.88801 39.6419,55.75247 58.8349,-87.35195 -117.6509,-175.550981" + id="path4292" /> (C) DAVID LETTIER + x="-140.73804" + y="400.33884">(C) DAVID LETTIER + style="display:inline" + id="layer2"> + d="M 122.31861,245.69345 182.53865,157.03618 103.08166,37.71129 42.025227,127.20496 Z" + style="fill:#ea2a89;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + id="path4210" /> + d="M 173.96899,245.69345 234.18903,157.03618 154.73204,37.71129 93.675611,127.20496 Z" + style="fill:#3f9ce6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m 146.25356,246.46407 -80.5542,-118.985 61.3565,-89.602074 12.4395,19.804663" + style="display:inline;fill:none;fill-rule:evenodd;stroke:#5cb86b;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + id="path4290" /> diff --git a/icon/icon-1-1.svg b/icon/icon-1-1.svg index 8edb9c3..d447b00 100644 --- a/icon/icon-1-1.svg +++ b/icon/icon-1-1.svg @@ -1,24 +1,15 @@ - - + height="328.05896" + width="328.05896" + version="1.1" + id="svg4247"> @@ -33,152 +24,75 @@ - - - - - - + transform="translate(12.507442,-35.374773)" + id="g4549"> + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + id="path4244" /> + id="path4246" /> + id="path4248" /> + id="path4250" /> + d="m 115.7164,280.79116 39.64195,55.75247 58.83365,-88.00034" + id="path4252" /> + id="path4266" /> + id="path4268" /> + id="path4270" /> + d="m 139.7673,280.79116 39.64195,55.75247 58.83365,-88.00034" + id="path4272" /> + d="M 148.1927,73.6407 265.8448,249.84007" + style="fill:none;fill-rule:evenodd;stroke:#3f9ce6;stroke-width:6;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + d="m 146.9142,250.79194 56.2492,-84.19363" + style="fill:none;fill-rule:evenodd;stroke:#3f9ce6;stroke-width:6;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + d="M 147.0886,250.36722 66.5343,131.38222 127.8909,41.780147 140.3304,61.58481" + style="fill:none;fill-rule:evenodd;stroke:#3f3f3f;stroke-width:6;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + style="fill:none;fill-rule:evenodd;stroke:#3f3f3f;stroke-width:6;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> (C) DAVID LETTIER + id="tspan4504" + style="font-size:7.5px;line-height:1.25">(C) DAVID LETTIER diff --git a/icon/icon-2.svg b/icon/icon-2.svg index 5b1cbde..c1410fc 100644 --- a/icon/icon-2.svg +++ b/icon/icon-2.svg @@ -6,36 +6,11 @@ xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="57mm" - height="57mm" - viewBox="0 0 57.000001 57" - version="1.1" id="svg8" - sodipodi:docname="icon-3.svg" - inkscape:version="0.92.1 r"> - + version="1.1" + viewBox="0 0 57.000001 57" + height="57mm" + width="57mm"> + transform="translate(-2.857145,-2.6012127)"> + d="M 30.00902,4.9971347 A 25.513393,25.513393 0 0 0 14.616162,10.591115 c 0.133368,0.18103 0.263304,0.36156 0.393258,0.54208 A 25.513393,25.513393 0 0 1 30.693217,5.0178047 25.513393,25.513393 0 0 0 30.00902,4.9971047 Z M 11.255127,13.816235 a 25.513393,25.513393 0 0 0 -6.250264,17.18603 25.513393,25.513393 0 0 0 25.997379,25.01191 25.513393,25.513393 0 0 0 0.382921,-0.0207 25.513393,25.513393 0 0 1 -25.321967,-24.99124 25.513393,25.513393 0 0 1 5.66632,-16.52147 c -0.155829,-0.22395 -0.313022,-0.44708 -0.474389,-0.66456 z" + style="display:inline;opacity:1;fill:#ff29ac;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:10;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke" /> + d="m 32.584056,4.9971347 a 25.513393,25.513393 0 0 0 -0.433565,0.0238 25.513393,25.513393 0 0 1 25.219134,24.9726403 l 5.3e-4,0.031 a 25.513393,25.513393 0 0 1 -5.50561,16.28325 c 0.1834,0.26966 0.3692,0.53514 0.56018,0.79478 a 25.513393,25.513393 0 0 0 6.17275,-17.07803 l -5.3e-4,-0.031 A 25.513393,25.513393 0 0 0 32.584056,4.9971347 Z M 48.613575,49.702415 a 25.513393,25.513393 0 0 1 -15.819712,6.28747 25.513393,25.513393 0 0 0 0.783415,0.0243 25.513393,25.513393 0 0 0 15.502927,-5.66839 c -0.1577,-0.21469 -0.31368,-0.42907 -0.46663,-0.64337 z" + style="display:inline;opacity:1;fill:#29ffa4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:10;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke" /> + d="M 31.59652,4.9971347 A 25.513393,25.513393 0 0 0 15.533936,11.126475 c 3.454616,4.79733 5.736982,9.58836 8.496639,23.93859 l 7.284826,-24.57937 0.451135,0.11162 0.02223,-0.11162 c 7.861179,1.46742 10.534349,4.71687 12.525849,13.20694 3.15251,13.38741 5.09705,18.65842 7.79436,22.62188 a 25.513393,25.513393 0 0 0 5.50095,-16.28997 l -5.3e-4,-0.031 A 25.513393,25.513393 0 0 0 31.59652,4.9971347 Z M 12.254549,14.474595 a 25.513393,25.513393 0 0 0 -5.662186,16.52767 25.513393,25.513393 0 0 0 25.997379,25.01191 25.513393,25.513393 0 0 0 16.268773,-6.304 c -3.38483,-4.74042 -5.64381,-9.58763 -8.370031,-23.76393 l -7.28431,24.57938 -0.451652,-0.11162 -0.02222,0.11162 c -7.861171,-1.46742 -10.534351,-4.71687 -12.52585,-13.20695 -3.212296,-13.64125 -5.171564,-18.85363 -7.949903,-22.84408 z m 22.52679,0.85214 -7.606255,23.40684 H 25.02638 c 0.8393,3.5098 2.013317,5.65789 4.711855,6.95152 l 7.605739,-23.40736 h 2.149221 c -0.839229,-3.50953 -2.013754,-5.65733 -4.711856,-6.951 z" + id="path4679" /> + d="M 31.350966,4.9971347 A 25.513393,25.513393 0 0 0 15.288382,11.126475 c 3.454616,4.79733 5.736982,9.58836 8.496639,23.93859 l 7.284826,-24.57937 0.451135,0.11162 0.02223,-0.11162 c 7.861179,1.46742 10.534343,4.71687 12.525843,13.20694 3.15251,13.38741 5.09705,18.65842 7.79436,22.62188 a 25.513393,25.513393 0 0 0 5.50095,-16.28997 l -5.3e-4,-0.031 A 25.513393,25.513393 0 0 0 31.350966,4.9971347 Z M 12.008995,14.474595 a 25.513393,25.513393 0 0 0 -5.662186,16.52767 25.513393,25.513393 0 0 0 25.997379,25.01191 25.513393,25.513393 0 0 0 16.268767,-6.304 c -3.38483,-4.74042 -5.64381,-9.58763 -8.370025,-23.76393 l -7.28431,24.57938 -0.451652,-0.11162 -0.02222,0.11162 c -7.861171,-1.46742 -10.534351,-4.71687 -12.52585,-13.20695 -3.212296,-13.64125 -5.171564,-18.85363 -7.949903,-22.84408 z m 22.52679,0.85214 -7.606255,23.40684 h -2.148704 c 0.8393,3.5098 2.013317,5.65789 4.711855,6.95152 l 7.605739,-23.40736 h 2.149221 c -0.839229,-3.50953 -2.013754,-5.65733 -4.711856,-6.951 z" + style="display:inline;opacity:1;fill:#1b59a2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:10;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke" /> + d="M 31.067353,4.9971347 A 25.513393,25.513393 0 0 0 15.004769,11.126475 c 3.454616,4.79733 5.736982,9.58836 8.496639,23.93859 l 7.284826,-24.57937 0.451135,0.11162 0.02223,-0.11162 c 7.861179,1.46742 10.534346,4.71687 12.525846,13.20694 3.15251,13.38741 5.09705,18.65842 7.79436,22.62188 a 25.513393,25.513393 0 0 0 5.50095,-16.28997 l -5.3e-4,-0.031 A 25.513393,25.513393 0 0 0 31.067353,4.9971347 Z M 11.725382,14.474595 a 25.513393,25.513393 0 0 0 -5.662186,16.52767 25.513393,25.513393 0 0 0 25.997379,25.01191 25.513393,25.513393 0 0 0 16.26877,-6.304 c -3.38483,-4.74042 -5.64381,-9.58763 -8.370028,-23.76393 l -7.28431,24.57938 -0.451652,-0.11162 -0.02222,0.11162 c -7.861171,-1.46742 -10.534351,-4.71687 -12.52585,-13.20695 -3.212296,-13.64125 -5.171564,-18.85363 -7.949903,-22.84408 z m 22.52679,0.85214 -7.606255,23.40684 h -2.148704 c 0.8393,3.5098 2.013317,5.65789 4.711855,6.95152 l 7.605739,-23.40736 h 2.149221 c -0.839229,-3.50953 -2.013754,-5.65733 -4.711856,-6.951 z" + style="display:inline;opacity:1;fill:#5294e2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:10;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke" /> + transform="translate(-3.1131187,-1.2102795)"> + Gifcurr + λ Gifcurr λ - Gifcurr λ - λ + id="tspan6123">λ Gifcurr + y="38.733902" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:35.27777863px;font-family:'Fira Sans';-inkscape-font-specification:'Fira Sans Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#444a58;fill-opacity:1;stroke-width:0.26458332px">Gifcurr + id="g4644" + transform="translate(-2.857145,-2.6012127)"> + d="M 23.810702,55.129827 C 17.778485,53.503104 9.0148866,48.566654 5.6981798,36.315722" + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1107.35998535;stroke-opacity:0" /> © 2018 David Lettier + dy="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0">© 2018 David Lettier diff --git a/icon/icon-3.svg b/icon/icon-3.svg index 7e72a67..1decc73 100644 --- a/icon/icon-3.svg +++ b/icon/icon-3.svg @@ -5,34 +5,34 @@ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" - width="55.240219mm" - height="55.272121mm" - viewBox="0 0 55.240221 55.272122" + id="svg8" version="1.1" - id="svg8"> + viewBox="0 0 55.240221 55.272122" + height="55.272121mm" + width="55.240219mm"> + width="1.0769389" + x="-0.038469434" + id="filter1015" + style="color-interpolation-filters:sRGB"> + id="feGaussianBlur1017" + stdDeviation="2.0172845" /> + width="1.1200387" + x="-0.060019407" + id="filter1023" + style="color-interpolation-filters:sRGB"> + id="feGaussianBlur1025" + stdDeviation="1.2333967" /> + id="g1094"> + style="display:inline;opacity:1;fill:#13082a;fill-opacity:0.60784314;fill-rule:nonzero;stroke:none;stroke-width:0.58234793;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke;filter:url(#filter1023)" /> + transform="translate(-125.34941,72.964581)"> + id="path884" /> + id="path878" /> + id="path886" /> + id="path888" /> + id="path890" /> + id="path892" /> + id="path894" /> + id="path851" /> diff --git a/logo/logo-1.svg b/logo/logo-1.svg index e0b2d66..d568aea 100644 --- a/logo/logo-1.svg +++ b/logo/logo-1.svg @@ -1,24 +1,15 @@ - - + height="384" + width="384" + version="1.1" + id="svg4247"> @@ -33,198 +24,120 @@ - - - - - - + d="m 125.90653,283.63875 39.795,55.55914" + id="path4242" /> + d="m 165.39543,339.58456 58.9867,-88.19368" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.02706873px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="M 106.73243,76.488293 224.38453,252.68766" + style="fill:none;fill-rule:evenodd;stroke:#ea2a89;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + d="m 105.45393,253.63953 57.4321,-85.86931" + style="fill:none;fill-rule:evenodd;stroke:#ea2a89;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + d="m 105.62833,253.21481 -80.554303,-118.985 61.3566,-89.60207 12.02058,19.213246" + style="fill:none;fill-rule:evenodd;stroke:#3f3f3f;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + d="m 125.90653,283.63875 39.64195,55.75247 58.83365,-88.00034" + style="fill:none;fill-rule:evenodd;stroke:#3f3f3f;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + d="M 130.78343,76.488293 248.43553,252.68766" + style="fill:none;fill-rule:evenodd;stroke:#5cb86b;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + d="m 129.50493,253.63953 56.9392,-85.08075" + style="fill:none;fill-rule:evenodd;stroke:#5cb86b;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + d="m 129.67923,253.21481 -80.554203,-118.985 61.356503,-89.60207 12.4395,19.804663" + style="fill:none;fill-rule:evenodd;stroke:#3f3f3f;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + d="m 149.95743,283.63875 39.64195,55.75247 58.83365,-88.00034" + style="fill:none;fill-rule:evenodd;stroke:#3f3f3f;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + id="path4286" /> + d="m 157.10433,253.63953 56.2492,-84.19363" + id="path4288" /> + id="path4290" /> + d="m 177.55693,283.63875 39.6419,55.75247 58.8337,-88.00034" + id="path4292" /> + transform="rotate(0.19415858)" + aria-label="Gifcurry"> + d="m 257.95808,163.97894 q -0.35156,0.46875 -0.95703,1.15235 -0.58593,0.66406 -1.58203,1.28906 -0.99609,0.60547 -2.46094,1.05469 -1.44531,0.42968 -3.51562,0.42968 -2.20703,0 -4.04297,-0.74218 -1.81641,-0.74219 -3.125,-2.22657 -1.30859,-1.48437 -2.03125,-3.73046 -0.72266,-2.2461 -0.72266,-5.23438 v -5.35156 q 0,-11.9336 9.55079,-11.9336 2.07031,0 3.67187,0.60547 1.62109,0.58594 2.73438,1.71875 1.11328,1.11328 1.73828,2.73438 0.625,1.62109 0.74218,3.67187 h -3.57421 q -0.21485,-2.65625 -1.48438,-4.14062 -1.25,-1.50391 -3.80859,-1.50391 -1.64063,0 -2.77344,0.54688 -1.13281,0.54687 -1.85547,1.66015 -0.70312,1.09375 -1.03516,2.75391 -0.3125,1.64062 -0.3125,3.84766 v 5.39062 q 0,2.26563 0.44922,3.94531 0.44922,1.67969 1.26953,2.77344 0.83985,1.09375 2.01172,1.64063 1.17188,0.52734 2.61719,0.52734 1.23047,0 2.07031,-0.21484 0.83985,-0.21485 1.38672,-0.52735 0.56641,-0.3125 0.89844,-0.625 0.33203,-0.3125 0.56641,-0.52734 v -6.5625 h -5.19532 v -3.04688 h 8.76953 z" /> + d="m 267.07918,167.5141 h -3.45703 v -21.13281 h 3.45703 z m -3.65235,-26.73828 q 0,-0.87891 0.48829,-1.48438 0.48828,-0.60547 1.46484,-0.60547 0.97656,0 1.46484,0.625 0.50782,0.60547 0.50782,1.46485 0,0.8789 -0.48829,1.46484 -0.48828,0.58594 -1.48437,0.58594 -0.97656,0 -1.46484,-0.58594 -0.48829,-0.58594 -0.48829,-1.46484 z" /> + d="m 274.01277,167.5141 v -18.33984 h -2.7539 v -2.79297 h 2.7539 v -2.22657 q 0,-1.69921 0.41016,-3.00781 0.42969,-1.32812 1.21094,-2.22656 0.78125,-0.89844 1.91406,-1.34766 1.13281,-0.46875 2.53906,-0.46875 1.03516,0 2.08984,0.33203 l -0.17578,2.92969 q -0.33203,-0.0781 -0.76172,-0.11719 -0.42968,-0.0586 -0.82031,-0.0586 -1.40625,0 -2.1875,1.03516 -0.76172,1.01562 -0.76172,2.92968 v 2.22657 h 3.61328 v 2.79297 h -3.61328 v 18.33984 z" /> + d="m 292.02058,164.95551 q 0.76172,0 1.44532,-0.23438 0.68359,-0.23437 1.21093,-0.72266 0.52735,-0.50781 0.83985,-1.26953 0.33203,-0.78125 0.39062,-1.875 h 3.26172 q -0.0586,1.58203 -0.66406,2.89063 -0.58594,1.28906 -1.5625,2.22656 -0.95703,0.91797 -2.22656,1.42578 -1.26953,0.50781 -2.69532,0.50781 -2.05078,0 -3.57421,-0.66406 -1.50391,-0.66406 -2.5,-1.91406 -0.9961,-1.25 -1.48438,-3.06641 -0.48828,-1.8164 -0.48828,-4.12109 v -2.38281 q 0,-2.30469 0.48828,-4.10157 0.48828,-1.8164 1.48438,-3.0664 0.99609,-1.26953 2.5,-1.9336 1.5039,-0.66406 3.55468,-0.66406 1.60157,0 2.89063,0.52735 1.30859,0.50781 2.22656,1.5039 0.9375,0.97656 1.46484,2.40235 0.52735,1.42578 0.58594,3.22265 h -3.26172 q -0.11718,-2.34375 -1.13281,-3.51562 -0.99609,-1.17188 -2.77344,-1.17188 -1.36718,0 -2.24609,0.48828 -0.87891,0.48828 -1.40625,1.38672 -0.50781,0.87891 -0.72266,2.12891 -0.19531,1.25 -0.19531,2.79297 v 2.38281 q 0,1.5625 0.19531,2.83203 0.19532,1.25 0.70313,2.14844 0.52734,0.8789 1.40625,1.36719 0.89844,0.46875 2.28515,0.46875 z" /> + d="m 313.97371,165.65863 q -0.82031,1.07422 -2.07031,1.66016 -1.23047,0.58593 -2.94922,0.58593 -1.3086,0 -2.38281,-0.42968 -1.07422,-0.44922 -1.83594,-1.38672 -0.76172,-0.95703 -1.19141,-2.44141 -0.41015,-1.5039 -0.41015,-3.61328 v -13.65234 h 3.4375 v 13.6914 q 0,1.42578 0.2539,2.36328 0.27344,0.91797 0.6836,1.46485 0.42968,0.52734 0.95703,0.74219 0.54687,0.19531 1.07422,0.19531 1.71875,0 2.7539,-0.76172 1.03516,-0.76172 1.58203,-2.05078 v -15.64453 h 3.45703 v 21.13281 h -3.28125 z" /> + d="m 331.29793,149.62347 q -0.41016,-0.0781 -0.76172,-0.0976 -0.35156,-0.0391 -0.80078,-0.0391 -1.40625,0 -2.32422,0.78125 -0.89844,0.78125 -1.38672,2.1289 v 15.11719 h -3.45703 v -21.13281 h 3.35937 l 0.0586,2.14843 q 0.64453,-1.17187 1.60156,-1.85546 0.97656,-0.6836 2.32422,-0.6836 0.15625,0 0.35156,0.0391 0.21485,0.0195 0.41016,0.0586 0.19531,0.0391 0.35156,0.0976 0.17578,0.0391 0.25391,0.0781 z" /> + d="m 343.48543,149.62347 q -0.41016,-0.0781 -0.76172,-0.0976 -0.35156,-0.0391 -0.80078,-0.0391 -1.40625,0 -2.32422,0.78125 -0.89844,0.78125 -1.38672,2.1289 v 15.11719 h -3.45703 v -21.13281 h 3.35937 l 0.0586,2.14843 q 0.64453,-1.17187 1.60156,-1.85546 0.97656,-0.6836 2.32422,-0.6836 0.15625,0 0.35156,0.0391 0.21485,0.0195 0.41016,0.0586 0.19531,0.0391 0.35156,0.0976 0.17578,0.0391 0.25391,0.0781 z" /> + d="m 353.11433,161.77191 3.84766,-15.39062 h 3.67188 l -6.99219,24.39453 q -0.23438,0.78125 -0.66406,1.69922 -0.41016,0.91797 -1.05469,1.69922 -0.64453,0.80078 -1.5625,1.32812 -0.89844,0.54688 -2.08985,0.54688 -0.19531,0 -0.44921,-0.0391 -0.25391,-0.0391 -0.50782,-0.0976 -0.2539,-0.0391 -0.48828,-0.0977 -0.21484,-0.0391 -0.35156,-0.0781 v -2.92969 q 0.11719,0.0391 0.37109,0.0586 0.27344,0.0195 0.39063,0.0195 0.76172,0 1.34765,-0.17578 0.58594,-0.17578 1.03516,-0.58594 0.46875,-0.39062 0.80078,-1.05468 0.35156,-0.66407 0.625,-1.64063 l 0.60547,-2.08984 -6.21094,-20.95703 h 3.76953 z" /> (C) DAVID LETTIER + x="-160.13664" + y="380.55551">(C) DAVID LETTIER Gifcurry + x="236.35316" + y="-52.491615" + style="font-size:40px;line-height:1.25">Gifcurry diff --git a/logo/logo-2-dark-theme.svg b/logo/logo-2-dark-theme.svg index 1c12957..da7dcf4 100644 --- a/logo/logo-2-dark-theme.svg +++ b/logo/logo-2-dark-theme.svg @@ -6,44 +6,11 @@ xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - id="svg8" - version="1.1" - viewBox="0 0 190.297 54.21814" - height="54.21814mm" width="190.297mm" - sodipodi:docname="logo-2-dark-theme.svg" - inkscape:version="0.92.1 r" - inkscape:export-filename="/home/lettier/github/gifcurry/logo/logo-2.png" - inkscape:export-xdpi="119.93034" - inkscape:export-ydpi="119.93034"> - + height="54.21814mm" + viewBox="0 0 190.297 54.21814" + version="1.1" + id="svg8"> + id="g4638"> + d="M 30.00902,4.9971347 A 25.513393,25.513393 0 0 0 14.616162,10.591115 c 0.133368,0.18103 0.263304,0.36156 0.393258,0.54208 A 25.513393,25.513393 0 0 1 30.693217,5.0178047 25.513393,25.513393 0 0 0 30.00902,4.9971047 Z M 11.255127,13.816235 a 25.513393,25.513393 0 0 0 -6.250264,17.18603 25.513393,25.513393 0 0 0 25.997379,25.01191 25.513393,25.513393 0 0 0 0.382921,-0.0207 25.513393,25.513393 0 0 1 -25.321967,-24.99124 25.513393,25.513393 0 0 1 5.66632,-16.52147 c -0.155829,-0.22395 -0.313022,-0.44708 -0.474389,-0.66456 z" + id="path6070" /> + d="m 32.584056,4.9971347 a 25.513393,25.513393 0 0 0 -0.433565,0.0238 25.513393,25.513393 0 0 1 25.219134,24.9726403 l 5.3e-4,0.031 a 25.513393,25.513393 0 0 1 -5.50561,16.28325 c 0.1834,0.26966 0.3692,0.53514 0.56018,0.79478 a 25.513393,25.513393 0 0 0 6.17275,-17.07803 l -5.3e-4,-0.031 A 25.513393,25.513393 0 0 0 32.584056,4.9971347 Z M 48.613575,49.702415 a 25.513393,25.513393 0 0 1 -15.819712,6.28747 25.513393,25.513393 0 0 0 0.783415,0.0243 25.513393,25.513393 0 0 0 15.502927,-5.66839 c -0.1577,-0.21469 -0.31368,-0.42907 -0.46663,-0.64337 z" + id="path6068" /> + d="M 31.59652,4.9971347 A 25.513393,25.513393 0 0 0 15.533936,11.126475 c 3.454616,4.79733 5.736982,9.58836 8.496639,23.93859 l 7.284826,-24.57937 0.451135,0.11162 0.02223,-0.11162 c 7.861179,1.46742 10.534349,4.71687 12.525849,13.20694 3.15251,13.38741 5.09705,18.65842 7.79436,22.62188 a 25.513393,25.513393 0 0 0 5.50095,-16.28997 l -5.3e-4,-0.031 A 25.513393,25.513393 0 0 0 31.59652,4.9971347 Z M 12.254549,14.474595 a 25.513393,25.513393 0 0 0 -5.662186,16.52767 25.513393,25.513393 0 0 0 25.997379,25.01191 25.513393,25.513393 0 0 0 16.268773,-6.304 c -3.38483,-4.74042 -5.64381,-9.58763 -8.370031,-23.76393 l -7.28431,24.57938 -0.451652,-0.11162 -0.02222,0.11162 c -7.861171,-1.46742 -10.534351,-4.71687 -12.52585,-13.20695 -3.212296,-13.64125 -5.171564,-18.85363 -7.949903,-22.84408 z m 22.52679,0.85214 -7.606255,23.40684 H 25.02638 c 0.8393,3.5098 2.013317,5.65789 4.711855,6.95152 l 7.605739,-23.40736 h 2.149221 c -0.839229,-3.50953 -2.013754,-5.65733 -4.711856,-6.951 z" + style="display:inline;opacity:1;fill:#1b59a2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:10;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke" /> + d="M 31.350966,4.9971347 A 25.513393,25.513393 0 0 0 15.288382,11.126475 c 3.454616,4.79733 5.736982,9.58836 8.496639,23.93859 l 7.284826,-24.57937 0.451135,0.11162 0.02223,-0.11162 c 7.861179,1.46742 10.534343,4.71687 12.525843,13.20694 3.15251,13.38741 5.09705,18.65842 7.79436,22.62188 a 25.513393,25.513393 0 0 0 5.50095,-16.28997 l -5.3e-4,-0.031 A 25.513393,25.513393 0 0 0 31.350966,4.9971347 Z M 12.008995,14.474595 a 25.513393,25.513393 0 0 0 -5.662186,16.52767 25.513393,25.513393 0 0 0 25.997379,25.01191 25.513393,25.513393 0 0 0 16.268767,-6.304 c -3.38483,-4.74042 -5.64381,-9.58763 -8.370025,-23.76393 l -7.28431,24.57938 -0.451652,-0.11162 -0.02222,0.11162 c -7.861171,-1.46742 -10.534351,-4.71687 -12.52585,-13.20695 -3.212296,-13.64125 -5.171564,-18.85363 -7.949903,-22.84408 z m 22.52679,0.85214 -7.606255,23.40684 h -2.148704 c 0.8393,3.5098 2.013317,5.65789 4.711855,6.95152 l 7.605739,-23.40736 h 2.149221 c -0.839229,-3.50953 -2.013754,-5.65733 -4.711856,-6.951 z" + id="path4681" /> + d="M 31.067353,4.9971347 A 25.513393,25.513393 0 0 0 15.004769,11.126475 c 3.454616,4.79733 5.736982,9.58836 8.496639,23.93859 l 7.284826,-24.57937 0.451135,0.11162 0.02223,-0.11162 c 7.861179,1.46742 10.534346,4.71687 12.525846,13.20694 3.15251,13.38741 5.09705,18.65842 7.79436,22.62188 a 25.513393,25.513393 0 0 0 5.50095,-16.28997 l -5.3e-4,-0.031 A 25.513393,25.513393 0 0 0 31.067353,4.9971347 Z M 11.725382,14.474595 a 25.513393,25.513393 0 0 0 -5.662186,16.52767 25.513393,25.513393 0 0 0 25.997379,25.01191 25.513393,25.513393 0 0 0 16.26877,-6.304 c -3.38483,-4.74042 -5.64381,-9.58763 -8.370028,-23.76393 l -7.28431,24.57938 -0.451652,-0.11162 -0.02222,0.11162 c -7.861171,-1.46742 -10.534351,-4.71687 -12.52585,-13.20695 -3.212296,-13.64125 -5.171564,-18.85363 -7.949903,-22.84408 z m 22.52679,0.85214 -7.606255,23.40684 h -2.148704 c 0.8393,3.5098 2.013317,5.65789 4.711855,6.95152 l 7.605739,-23.40736 h 2.149221 c -0.839229,-3.50953 -2.013754,-5.65733 -4.711856,-6.951 z" + id="path4648" /> + Gifcurr + λ Gifcurr λ - Gifcurr λ - λ + id="tspan6123">λ Gifcurr + y="34.74176" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:35.27777863px;font-family:'Fira Sans';-inkscape-font-specification:'Fira Sans Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#dfdfdf;fill-opacity:1;stroke-width:0.26458332px;">Gifcurr + transform="translate(-3.1131187,-3.9921436)" + id="g4644"> + id="path4614" /> © 2018 David Lettier + id="tspan4585">© 2018 David Lettier diff --git a/logo/logo-2.svg b/logo/logo-2.svg index 9f0e675..3d75c39 100644 --- a/logo/logo-2.svg +++ b/logo/logo-2.svg @@ -6,44 +6,11 @@ xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - id="svg8" - version="1.1" - viewBox="0 0 190.297 54.21814" - height="54.21814mm" width="190.297mm" - sodipodi:docname="logo-2.svg" - inkscape:version="0.92.1 r" - inkscape:export-filename="/home/lettier/github/gifcurry/logo/logo-2.png" - inkscape:export-xdpi="119.93034" - inkscape:export-ydpi="119.93034"> - + height="54.21814mm" + viewBox="0 0 190.297 54.21814" + version="1.1" + id="svg8"> + id="g4638"> + d="M 30.00902,4.9971347 A 25.513393,25.513393 0 0 0 14.616162,10.591115 c 0.133368,0.18103 0.263304,0.36156 0.393258,0.54208 A 25.513393,25.513393 0 0 1 30.693217,5.0178047 25.513393,25.513393 0 0 0 30.00902,4.9971047 Z M 11.255127,13.816235 a 25.513393,25.513393 0 0 0 -6.250264,17.18603 25.513393,25.513393 0 0 0 25.997379,25.01191 25.513393,25.513393 0 0 0 0.382921,-0.0207 25.513393,25.513393 0 0 1 -25.321967,-24.99124 25.513393,25.513393 0 0 1 5.66632,-16.52147 c -0.155829,-0.22395 -0.313022,-0.44708 -0.474389,-0.66456 z" + id="path6070" /> + d="m 32.584056,4.9971347 a 25.513393,25.513393 0 0 0 -0.433565,0.0238 25.513393,25.513393 0 0 1 25.219134,24.9726403 l 5.3e-4,0.031 a 25.513393,25.513393 0 0 1 -5.50561,16.28325 c 0.1834,0.26966 0.3692,0.53514 0.56018,0.79478 a 25.513393,25.513393 0 0 0 6.17275,-17.07803 l -5.3e-4,-0.031 A 25.513393,25.513393 0 0 0 32.584056,4.9971347 Z M 48.613575,49.702415 a 25.513393,25.513393 0 0 1 -15.819712,6.28747 25.513393,25.513393 0 0 0 0.783415,0.0243 25.513393,25.513393 0 0 0 15.502927,-5.66839 c -0.1577,-0.21469 -0.31368,-0.42907 -0.46663,-0.64337 z" + id="path6068" /> + d="M 31.59652,4.9971347 A 25.513393,25.513393 0 0 0 15.533936,11.126475 c 3.454616,4.79733 5.736982,9.58836 8.496639,23.93859 l 7.284826,-24.57937 0.451135,0.11162 0.02223,-0.11162 c 7.861179,1.46742 10.534349,4.71687 12.525849,13.20694 3.15251,13.38741 5.09705,18.65842 7.79436,22.62188 a 25.513393,25.513393 0 0 0 5.50095,-16.28997 l -5.3e-4,-0.031 A 25.513393,25.513393 0 0 0 31.59652,4.9971347 Z M 12.254549,14.474595 a 25.513393,25.513393 0 0 0 -5.662186,16.52767 25.513393,25.513393 0 0 0 25.997379,25.01191 25.513393,25.513393 0 0 0 16.268773,-6.304 c -3.38483,-4.74042 -5.64381,-9.58763 -8.370031,-23.76393 l -7.28431,24.57938 -0.451652,-0.11162 -0.02222,0.11162 c -7.861171,-1.46742 -10.534351,-4.71687 -12.52585,-13.20695 -3.212296,-13.64125 -5.171564,-18.85363 -7.949903,-22.84408 z m 22.52679,0.85214 -7.606255,23.40684 H 25.02638 c 0.8393,3.5098 2.013317,5.65789 4.711855,6.95152 l 7.605739,-23.40736 h 2.149221 c -0.839229,-3.50953 -2.013754,-5.65733 -4.711856,-6.951 z" + style="display:inline;opacity:1;fill:#1b59a2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:10;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke" /> + d="M 31.350966,4.9971347 A 25.513393,25.513393 0 0 0 15.288382,11.126475 c 3.454616,4.79733 5.736982,9.58836 8.496639,23.93859 l 7.284826,-24.57937 0.451135,0.11162 0.02223,-0.11162 c 7.861179,1.46742 10.534343,4.71687 12.525843,13.20694 3.15251,13.38741 5.09705,18.65842 7.79436,22.62188 a 25.513393,25.513393 0 0 0 5.50095,-16.28997 l -5.3e-4,-0.031 A 25.513393,25.513393 0 0 0 31.350966,4.9971347 Z M 12.008995,14.474595 a 25.513393,25.513393 0 0 0 -5.662186,16.52767 25.513393,25.513393 0 0 0 25.997379,25.01191 25.513393,25.513393 0 0 0 16.268767,-6.304 c -3.38483,-4.74042 -5.64381,-9.58763 -8.370025,-23.76393 l -7.28431,24.57938 -0.451652,-0.11162 -0.02222,0.11162 c -7.861171,-1.46742 -10.534351,-4.71687 -12.52585,-13.20695 -3.212296,-13.64125 -5.171564,-18.85363 -7.949903,-22.84408 z m 22.52679,0.85214 -7.606255,23.40684 h -2.148704 c 0.8393,3.5098 2.013317,5.65789 4.711855,6.95152 l 7.605739,-23.40736 h 2.149221 c -0.839229,-3.50953 -2.013754,-5.65733 -4.711856,-6.951 z" + id="path4681" /> + d="M 31.067353,4.9971347 A 25.513393,25.513393 0 0 0 15.004769,11.126475 c 3.454616,4.79733 5.736982,9.58836 8.496639,23.93859 l 7.284826,-24.57937 0.451135,0.11162 0.02223,-0.11162 c 7.861179,1.46742 10.534346,4.71687 12.525846,13.20694 3.15251,13.38741 5.09705,18.65842 7.79436,22.62188 a 25.513393,25.513393 0 0 0 5.50095,-16.28997 l -5.3e-4,-0.031 A 25.513393,25.513393 0 0 0 31.067353,4.9971347 Z M 11.725382,14.474595 a 25.513393,25.513393 0 0 0 -5.662186,16.52767 25.513393,25.513393 0 0 0 25.997379,25.01191 25.513393,25.513393 0 0 0 16.26877,-6.304 c -3.38483,-4.74042 -5.64381,-9.58763 -8.370028,-23.76393 l -7.28431,24.57938 -0.451652,-0.11162 -0.02222,0.11162 c -7.861171,-1.46742 -10.534351,-4.71687 -12.52585,-13.20695 -3.212296,-13.64125 -5.171564,-18.85363 -7.949903,-22.84408 z m 22.52679,0.85214 -7.606255,23.40684 h -2.148704 c 0.8393,3.5098 2.013317,5.65789 4.711855,6.95152 l 7.605739,-23.40736 h 2.149221 c -0.839229,-3.50953 -2.013754,-5.65733 -4.711856,-6.951 z" + id="path4648" /> - Gifcurr - λ + id="g4631"> Gifcurr λ + Gifcurr λ + x="173.11317" + id="tspan6154">λ λ + Gifcurr + x="61.230457" + id="tspan6127">Gifcurr + transform="translate(-3.1131187,-3.9921436)" + id="g4644"> + id="path4614" /> © 2018 David Lettier + id="tspan4585">© 2018 David Lettier diff --git a/logo/logo-3.svg b/logo/logo-3.svg index b96761c..325c746 100644 --- a/logo/logo-3.svg +++ b/logo/logo-3.svg @@ -5,39 +5,11 @@ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" id="svg8" version="1.1" viewBox="0 0 191.61173 55.272122" height="55.272121mm" - width="191.61172mm" - sodipodi:docname="logo-3.svg" - inkscape:version="0.92.2 2405546, 2018-03-11"> - + width="191.61172mm"> @@ -98,213 +66,179 @@ + + + (C) 2018 David Lettier + + + style="display:inline;fill:#3e2a69;fill-opacity:0.39215687;filter:url(#filter912)"> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:35.27777863px;line-height:125%;font-family:'Fira Sans';-inkscape-font-specification:'Fira Sans Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#3e2a69;fill-opacity:0.39215687;stroke:none;stroke-width:0.25672138px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path961" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:35.27777863px;line-height:125%;font-family:'Fira Sans';-inkscape-font-specification:'Fira Sans Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#3e2a69;fill-opacity:0.39215687;stroke:none;stroke-width:0.25672138px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path963" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:35.27777863px;line-height:125%;font-family:'Fira Sans';-inkscape-font-specification:'Fira Sans Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#3e2a69;fill-opacity:0.39215687;stroke:none;stroke-width:0.25672138px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path965" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:35.27777863px;line-height:125%;font-family:'Fira Sans';-inkscape-font-specification:'Fira Sans Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#3e2a69;fill-opacity:0.39215687;stroke:none;stroke-width:0.25672138px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path967" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:35.27777863px;line-height:125%;font-family:'Fira Sans';-inkscape-font-specification:'Fira Sans Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#3e2a69;fill-opacity:0.39215687;stroke:none;stroke-width:0.25672138px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path969" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:35.27777863px;line-height:125%;font-family:'Fira Sans';-inkscape-font-specification:'Fira Sans Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#3e2a69;fill-opacity:0.39215687;stroke:none;stroke-width:0.25672138px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path971" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:35.27777863px;line-height:125%;font-family:'Fira Sans';-inkscape-font-specification:'Fira Sans Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#3e2a69;fill-opacity:0.39215687;stroke:none;stroke-width:0.25672138px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path973" /> + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:35.27777863px;line-height:125%;font-family:'Fira Sans';-inkscape-font-specification:'Fira Sans Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#3e2a69;fill-opacity:0.39215687;stroke:none;stroke-width:0.25672138px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path975" /> + id="path1063" /> + id="path1067" /> + id="path1065" /> + id="path1069" /> + id="path1031" /> + id="path1033" /> + id="path1035" /> + id="path1037" /> + d="m 175.8193,50.5131 -0.65036,-3.696788 c 3.49141,-0.547672 4.58675,-1.471869 5.57941,-4.073312 h -1.91685 l -5.51095,-17.525514 5.3398,-1.232262 3.32027,14.616004 c 1.30071,-7.87279 2.39606,-11.090364 4.58675,-14.616004 l 5.20288,1.711476 c -2.43029,3.286034 -3.55987,6.708986 -5.71633,15.848266 -1.47186,6.36669 -4.34714,8.112396 -10.23462,8.968134 z" /> + d="m 77.281721,18.440243 c -6.36669,0 -11.364199,4.381379 -11.364199,12.425315 0,8.112396 3.628328,12.459544 10.884986,12.459544 2.977968,0 6.058625,-0.924197 8.52315,-2.498754 V 29.085624 h -9.070822 l 0.547672,3.970624 h 3.080656 v 5.374034 c -0.992655,0.547672 -2.05377,0.787279 -3.217574,0.787279 -3.286033,0 -4.929051,-2.12223 -4.929051,-8.352003 0,-5.887477 2.464526,-8.352002 5.784789,-8.352002 1.916853,0 3.217575,0.581902 4.826362,1.814164 l 2.84105,-2.977967 c -1.951082,-1.711476 -4.449837,-2.90951 -7.907019,-2.90951 z" /> + d="m 91.642074,14.983062 c -1.882624,0 -3.183345,1.334951 -3.183345,3.080657 0,1.745706 1.300721,3.080656 3.183345,3.080656 1.882624,0 3.217574,-1.33495 3.217574,-3.080656 0,-1.745706 -1.33495,-3.080657 -3.217574,-3.080657 z m 2.738361,9.584265 h -5.408264 v 18.175874 h 5.408264 z" /> + d="m 106.917,20.76785 c 0.78728,0 1.81416,0.171148 2.84105,0.684591 l 1.47187,-3.52564 c -1.33495,-0.684591 -3.08066,-1.163804 -4.96328,-1.163804 -4.65522,0 -6.948596,2.704132 -6.948596,6.195543 v 1.608787 h -2.738361 v 3.765247 h 2.738361 v 14.410627 h 5.408266 V 28.332574 h 3.69679 l 0.5819,-3.765247 h -4.27869 v -1.40341 c 0,-1.711476 0.61613,-2.396067 2.19069,-2.396067 z" /> + d="m 118.30527,23.985426 c -5.4425,0 -8.89968,4.039082 -8.89968,9.823871 0,5.750559 3.42295,9.515805 9.00236,9.515805 2.49876,0 4.44984,-0.821507 6.12709,-2.156459 L 122.1732,37.81415 c -1.30072,0.821509 -2.19069,1.232263 -3.49141,1.232263 -2.15646,0 -3.5941,-1.232263 -3.5941,-5.271346 0,-4.073312 1.33495,-5.64787 3.66256,-5.64787 1.23226,0 2.29338,0.410754 3.45718,1.300721 l 2.32761,-3.217574 c -1.74571,-1.471869 -3.69679,-2.224918 -6.22977,-2.224918 z" /> + d="m 141.81239,24.567327 h -5.40827 v 12.630692 c -0.78728,1.369181 -1.81416,2.12223 -2.94374,2.12223 -1.12957,0 -1.74571,-0.547672 -1.74571,-2.396066 V 24.567327 h -5.40825 v 13.041446 c 0,3.525641 1.67724,5.716329 5.06597,5.716329 2.39606,0 4.176,-0.958425 5.51095,-2.875279 l 0.2396,2.293378 h 4.68945 z" /> + d="m 155.92404,24.053884 c -2.088,0 -3.86793,1.506099 -4.68944,4.039083 l -0.44499,-3.52564 h -4.72367 v 18.175874 h 5.40827 v -9.002364 c 0.5819,-2.772591 1.50609,-4.449837 3.76524,-4.449837 0.61613,0 1.06111,0.102689 1.64301,0.239607 l 0.85575,-5.237116 c -0.5819,-0.171147 -1.12958,-0.239607 -1.81417,-0.239607 z" /> + d="m 169.62922,24.053884 c -2.088,0 -3.86794,1.506099 -4.68945,4.039083 l -0.44498,-3.52564 h -4.72367 v 18.175874 h 5.40826 v -9.002364 c 0.5819,-2.772591 1.5061,-4.449837 3.76525,-4.449837 0.61613,0 1.06112,0.102689 1.64302,0.239607 l 0.85573,-5.237116 c -0.5819,-0.171147 -1.12956,-0.239607 -1.81416,-0.239607 z" /> + id="path1029" /> + id="path1039" /> + id="path1041" /> + id="path1043" /> + id="path1053" /> + id="path1045" /> + id="path1047" /> + id="path1049" /> + id="path1051" /> + id="path1055" /> + id="path1057" /> + id="path1059" /> + id="path1061" /> + style="display:inline;opacity:1;vector-effect:none;fill:#491ea4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.32291663;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1107.35998535;stroke-opacity:1" /> + style="display:inline;opacity:1;fill:#3c147c;fill-opacity:0.60000002;fill-rule:nonzero;stroke:none;stroke-width:0.58234793;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke;filter:url(#filter948)" /> + id="path884" /> + id="path878" /> + id="path886" /> + id="path888" /> + id="path890" /> + id="path892" /> + id="path894" /> + id="path851" /> + id="path4934" /> + id="path4944" /> + id="path4946" /> + id="path4948" /> + id="path4950" /> + id="path4952" /> + id="path4954" /> + id="path4942" /> diff --git a/makefile b/makefile index dfe3630..c82cc84 100644 --- a/makefile +++ b/makefile @@ -3,61 +3,70 @@ .RECIPEPREFIX != ps -STACK=stack --allow-different-user -STACK_PATH_LOCAL_BIN=`$(STACK) path --local-bin` -STACK_GHC_EXE=`$(STACK) path --compiler-exe` -STACK_GHC_BIN=`$(STACK) path --compiler-bin` -STACK_PATHS=$(STACK_PATH_LOCAL_BIN):$(STACK_GHC_BIN) -CABAL=env PATH=$(PATH):$(STACK_PATHS) $(STACK_PATH_LOCAL_BIN)/cabal -CABAL_SANDBOX_DIR=".cabal-sandbox" -_APPLICATIONS_DESKTOP_DIR="$(CABAL_SANDBOX_DIR)/share/applications" -_ICONS_HICOLOR_SCALABLE_APPS_DIR="$(CABAL_SANDBOX_DIR)/share/icons/hicolor/scalable/apps" +_GIFCURRY_VERSION="4.0.0.0" +_STACK=stack --allow-different-user +_GHC_VERSION=`$(_STACK) ghc -- --version | sed 's|The Glorious Glasgow Haskell Compilation System, version ||g'` +_STACK_PATH_LOCAL_BIN=`$(_STACK) path --local-bin` +_STACK_GHC_EXE=`$(_STACK) path --compiler-exe` +_STACK_GHC_BIN=`$(_STACK) path --compiler-bin` +_STACK_PATHS=$(_STACK_PATH_LOCAL_BIN):$(_STACK_GHC_BIN) +_CABAL=env PATH=$(PATH):$(_STACK_PATHS) $(_STACK_PATH_LOCAL_BIN)/cabal +_CABAL_SANDBOX_DIR=".cabal-sandbox" +_METAINFO_DIR="$(_CABAL_SANDBOX_DIR)/share/metainfo" +_APPLICATIONS_DESKTOP_DIR="$(_CABAL_SANDBOX_DIR)/share/applications" +_ICONS_HICOLOR_SCALABLE_APPS_DIR="$(_CABAL_SANDBOX_DIR)/share/icons/hicolor/scalable/apps" _PACKAGING_LINUX_COMMON_DIR="./packaging/linux/common" -VERSION='3.0.0.2' +_GIFCURRY_LINUX_PACKAGE_DIR="gifcurry-linux-$(_GIFCURRY_VERSION)" -export PATH := $(PATH):$(STACK_PATH_LOCAL_BIN) +export PATH := $(PATH):$(_STACK_PATH_LOCAL_BIN) all: setup update sandbox_clean clean alex happy haskell_gi gtk2hs_buildtools install_dependencies configure build cabal_install -setup: - $(STACK) setup && $(STACK) update && \ - $(STACK) install Cabal && \ - $(STACK) install cabal-install +none: + +setup: none + $(_STACK) setup && $(_STACK) update && \ + $(_STACK) install Cabal && \ + $(_STACK) install cabal-install alex: setup - $(STACK) install alex + $(_STACK) install alex happy: setup - $(STACK) install happy + $(_STACK) install happy haskell_gi: setup - $(STACK) install haskell-gi + $(_STACK) install haskell-gi gtk2hs_buildtools: setup - $(STACK) install gtk2hs-buildtools + $(_STACK) install gtk2hs-buildtools sandbox: setup - $(CABAL) sandbox init + $(_CABAL) sandbox init clean: setup - $(CABAL) clean + $(_CABAL) clean check: setup - $(CABAL) check + $(_CABAL) check sandbox_clean: setup - $(CABAL) sandbox init && $(CABAL) sandbox delete && $(CABAL) sandbox init + $(_CABAL) sandbox init && $(_CABAL) sandbox delete && $(_CABAL) sandbox init update: sandbox - $(CABAL) --require-sandbox update + $(_CABAL) --require-sandbox update install_dependencies: sandbox - $(CABAL) --require-sandbox install -j -w $(STACK_GHC_EXE) --only-dependencies + $(_CABAL) --require-sandbox install -j -w $(_STACK_GHC_EXE) --only-dependencies configure: sandbox - $(CABAL) --require-sandbox configure -w $(STACK_GHC_EXE) + $(_CABAL) --require-sandbox configure -w $(_STACK_GHC_EXE) + +appdata_xml: sandbox + mkdir -p $(_METAINFO_DIR) && \ + cp $(_PACKAGING_LINUX_COMMON_DIR)/com.lettier.gifcurry.appdata.xml $(_METAINFO_DIR)/ -applications_desktop: sandbox +applications_desktop: appdata_xml mkdir -p $(_APPLICATIONS_DESKTOP_DIR) && \ cp $(_PACKAGING_LINUX_COMMON_DIR)/com.lettier.gifcurry.desktop $(_APPLICATIONS_DESKTOP_DIR)/ @@ -66,13 +75,33 @@ icons_hicolor_scalable_apps: applications_desktop cp $(_PACKAGING_LINUX_COMMON_DIR)/com.lettier.gifcurry.svg $(_ICONS_HICOLOR_SCALABLE_APPS_DIR)/ build: configure - $(CABAL) --require-sandbox build -j - -cabal_install: applications_desktop icons_hicolor_scalable_apps build - $(CABAL) --require-sandbox install -j -w $(STACK_GHC_EXE) --enable-relocatable + $(_CABAL) --require-sandbox build -j + +cabal_install: appdata_xml applications_desktop icons_hicolor_scalable_apps build + $(_CABAL) --require-sandbox install -j -w $(_STACK_GHC_EXE) --enable-relocatable + +package_cabal_sandbox_for_linux: cabal_install + rm -rf "._gifcurry_trash_" && \ + mkdir -p "._gifcurry_trash_" && \ + mkdir -p $(_GIFCURRY_LINUX_PACKAGE_DIR) && \ + touch "$(_GIFCURRY_LINUX_PACKAGE_DIR).tar.gz" && \ + mv "$(_GIFCURRY_LINUX_PACKAGE_DIR).tar.gz" "._gifcurry_trash_/" && \ + mv $(_GIFCURRY_LINUX_PACKAGE_DIR) "._gifcurry_trash_" && \ + mkdir -p $(_GIFCURRY_LINUX_PACKAGE_DIR) && \ + cp -R "$(_CABAL_SANDBOX_DIR)/." $(_GIFCURRY_LINUX_PACKAGE_DIR) && \ + find "$(_GIFCURRY_LINUX_PACKAGE_DIR)/share/x86_64-linux-ghc-$(_GHC_VERSION)/" -mindepth 1 -maxdepth 1 -type d \ + -not -path '*Gifcurry*' -exec mv {} "._gifcurry_trash_/" \; && \ + find "$(_GIFCURRY_LINUX_PACKAGE_DIR)/lib/x86_64-linux-ghc-$(_GHC_VERSION)/" -mindepth 1 -maxdepth 1 -type d \ + -exec mv {} "._gifcurry_trash_/" \; && \ + find "$(_GIFCURRY_LINUX_PACKAGE_DIR)/bin/" -type f -not -name '*gifcurry*' -exec mv {} "._gifcurry_trash_/" \; && \ + find "$(_GIFCURRY_LINUX_PACKAGE_DIR)/" -mindepth 1 -maxdepth 1 -type d -not -path '*bin*' -not -path '*lib*' -not -path '*share*' \ + -exec mv {} "._gifcurry_trash_/" \; && \ + find "$(_GIFCURRY_LINUX_PACKAGE_DIR)/" -mindepth 1 -maxdepth 1 -type f -not -path '*bin*' -not -path '*lib*' -not -path '*share*' \ + -exec mv {} "._gifcurry_trash_/" \; && \ + tar -zcvf "$(_GIFCURRY_LINUX_PACKAGE_DIR).tar.gz" $(_GIFCURRY_LINUX_PACKAGE_DIR) release: check build - $(CABAL) sdist + $(_CABAL) sdist run_gui: cabal_install ./.cabal-sandbox/bin/gifcurry_gui @@ -81,10 +110,10 @@ run_cli: cabal_install ./.cabal-sandbox/bin/gifcurry_cli $(CLI_ARGS) build_docs: setup - $(CABAL) haddock --hyperlink-source \ + $(_CABAL) haddock --hyperlink-source \ --html-location='http://hackage.haskell.org/package/Gifcurry/docs' \ --contents-location='http://hackage.haskell.org/package/Gifcurry' && \ mkdir -p ./haddock && \ - cp -R ./dist/doc/html/Gifcurry/ ./haddock/Gifcurry-$(VERSION)-docs && \ + cp -R ./dist/doc/html/Gifcurry/ ./haddock/Gifcurry-$(_GIFCURRY_VERSION)-docs && \ cd ./haddock && \ - tar --format=ustar -cvf ./Gifcurry-$(VERSION)-docs.tar Gifcurry-$(VERSION)-docs + tar --format=ustar -cvf ./Gifcurry-$(_GIFCURRY_VERSION)-docs.tar Gifcurry-$(_GIFCURRY_VERSION)-docs diff --git a/packaging/linux/app-image/gifcurry-app-image-install.sh b/packaging/linux/app-image/gifcurry-app-image-install.sh index a46b34b..8128110 100755 --- a/packaging/linux/app-image/gifcurry-app-image-install.sh +++ b/packaging/linux/app-image/gifcurry-app-image-install.sh @@ -3,7 +3,7 @@ # (C) 2017 David Lettier # lettier.com -GIFCURRY_VERSION="3.0.0.2" +GIFCURRY_VERSION="4.0.0.0" GIFCURRY_RELEASES_DOWNLOAD="https://github.com/lettier/gifcurry/releases/download/$GIFCURRY_VERSION" GIFCURRY_PACKAGING_LINUX_COMMON="https://raw.githubusercontent.com/lettier/gifcurry/master/packaging/linux/common" GIFCURRY_APP_IMAGE="gifcurry-$GIFCURRY_VERSION-x86_64.AppImage" diff --git a/packaging/linux/arch-aur/PKGBUILD b/packaging/linux/arch-aur/PKGBUILD index e97cf78..edede83 100755 --- a/packaging/linux/arch-aur/PKGBUILD +++ b/packaging/linux/arch-aur/PKGBUILD @@ -1,7 +1,7 @@ # Maintainer: Lettier _name=gifcurry -_ver=3.0.0.2 +_ver=4.0.0.0 _xrev=0 pkgname=${_name} diff --git a/packaging/linux/app-image/com.lettier.gifcurry.appdata.xml b/packaging/linux/common/com.lettier.gifcurry.appdata.xml similarity index 77% rename from packaging/linux/app-image/com.lettier.gifcurry.appdata.xml rename to packaging/linux/common/com.lettier.gifcurry.appdata.xml index 26d2723..4c8084b 100644 --- a/packaging/linux/app-image/com.lettier.gifcurry.appdata.xml +++ b/packaging/linux/common/com.lettier.gifcurry.appdata.xml @@ -1,7 +1,7 @@ - com.lettier.gifcurry.desktop + com.lettier.gifcurry CC-BY-SA-3.0 BSD-3-Clause Gifcurry @@ -17,12 +17,9 @@ com.lettier.gifcurry.desktop - The main Gifcurry window - https://i.imgur.com/Xw5h21W.png + Gifcurry + https://i.imgur.com/NG29XOB.png https://github.com/lettier/gifcurry - - gifcurry_gui - diff --git a/packaging/linux/snap/snapcraft.yaml b/packaging/linux/snap/snapcraft.yaml index e2ebb71..7b2f690 100644 --- a/packaging/linux/snap/snapcraft.yaml +++ b/packaging/linux/snap/snapcraft.yaml @@ -1,5 +1,5 @@ name: gifcurry -version: '3.0.0.2' +version: '4.0.0.0' summary: Your open source video to GIF maker. type: app description: | diff --git a/packaging/mac/gifcurry-mac-install-script.command b/packaging/mac/gifcurry-mac-install-script.command index 05c76fc..cfdbe27 100644 --- a/packaging/mac/gifcurry-mac-install-script.command +++ b/packaging/mac/gifcurry-mac-install-script.command @@ -16,6 +16,7 @@ brew install \ libav \ libogg \ libvorbis \ + libvpx \ pkg-config \ gobject-introspection \ cairo \ @@ -26,17 +27,21 @@ brew install \ gnome-icon-theme \ openh264 \ theora \ - ffmpeg \ imagemagick \ ghostscript \ gstreamer \ gst-libav \ gst-plugins-base \ gst-plugins-good +brew install ffmpeg --with-libvpx brew install --with-gtk+3 gst-plugins-bad wget -qO- https://get.haskellstack.org/ | sh -s - -f +cd $HOME/Downloads/ git clone https://github.com/lettier/gifcurry.git cd gifcurry/ +git pull +git reset --hard origin/master +git pull LIBFFIPKGCONFIG=`find /usr/local/Cellar -path '*libffi*' -type d -name 'pkgconfig' 2>/dev/null | tr '\n' ':' | sed 's/:$//'` export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$LIBFFIPKGCONFIG stack setup diff --git a/src/cli/Main.hs b/src/cli/Main.hs index 311dbf9..f8a1086 100644 --- a/src/cli/Main.hs +++ b/src/cli/Main.hs @@ -6,34 +6,81 @@ {-# LANGUAGE DeriveDataTypeable + , OverloadedStrings , NamedFieldPuns #-} {-# OPTIONS_GHC -fno-cse #-} -import Control.Monad +import System.Directory import System.Console.CmdArgs +import Control.Monad +import Data.Text (pack, unpack, strip) +import Data.Maybe +import Data.Yaml +import qualified Data.ByteString.Char8 as DBC import qualified Gifcurry data CliArgs = CliArgs - { input_file :: String - , output_file :: String - , save_as_video :: Bool - , start_time :: Float - , duration_time :: Float - , width_size :: Int - , quality_percent :: Float - , font_choice :: String - , top_text :: String - , bottom_text :: String - , left_crop :: Float - , right_crop :: Float - , top_crop :: Float - , bottom_crop :: Float + { input_file :: String + , output_file :: String + , save_as_video :: Bool + , start_time :: Float + , duration_time :: Float + , width_size :: Int + , quality :: String + , left_crop :: Float + , right_crop :: Float + , top_crop :: Float + , bottom_crop :: Float + , text_overlays_file :: String } deriving (Data, Typeable, Show, Eq) +data TextOverlay = + TextOverlay + { text :: String + , fontFamily :: String + , fontStyle :: String + , fontStretch :: String + , fontWeight :: Int + , fontSize :: Int + , origin :: String + , xTranslation :: Float + , yTranslation :: Float + , rotation :: Int + , startTime :: Float + , durationTime :: Float + , outlineSize :: Int + , outlineColor :: String + , fillColor :: String + } + deriving (Show) + +instance FromJSON TextOverlay where + parseJSON = + withObject + "TextOverlay" + (\ obj -> + TextOverlay + <$> obj .: "text" + <*> obj .:? "fontFamily" .!= "Sans" + <*> obj .:? "fontStyle" .!= "Normal" + <*> obj .:? "fontStretch" .!= "Normal" + <*> obj .:? "fontWeight" .!= 400 + <*> obj .:? "fontSize" .!= 30 + <*> obj .:? "origin" .!= "Center" + <*> obj .:? "xTranslation" .!= 0.0 + <*> obj .:? "yTranslation" .!= 0.0 + <*> obj .:? "rotation" .!= 0 + <*> obj .: "startTime" + <*> obj .: "durationTime" + <*> obj .:? "outlineSize" .!= 10 + <*> obj .:? "outlineColor" .!= "rgba(0,0,0)" + <*> obj .:? "fillColor" .!= "rgba(255,255,255)" + ) + programName :: String programName = "gifcurry_cli" @@ -77,30 +124,13 @@ cliArgs = = 500 &= groupname "OUTPUT FILE SIZE" &= help "How wide the GIF needs to be. Height will scale to match." - , quality_percent - = 100.0 + , quality + = "medium" &= groupname "OUTPUT FILE SIZE" &= help - ( "From 1 (very low quality) to 100 (the best quality). " - ++ "Controls how many colors are used and how many frames per second there are." + ( "Controls how many colors are used and the frame rate. \n" + ++ "The options are High, Medium, and Low." ) - , font_choice - = Gifcurry.defaultFontChoice - &= groupname "TEXT" - &= typ "TEXT" - &= help "Choose your desired font for the top and bottom text." - , top_text - = "" - &= groupname "TEXT" - &= typ "TEXT" - &= name "t" - &= help "The text you wish to add to the top of the GIF." - , bottom_text - = "" - &= groupname "TEXT" - &= typ "TEXT" - &= name "b" - &= help "The text you wish to add to the bottom of the GIF." , left_crop = 0.0 &= groupname "CROP" @@ -121,17 +151,77 @@ cliArgs = &= groupname "CROP" &= name "B" &= help "The amount you wish to crop from the bottom." + , text_overlays_file + = "" + &= groupname "TEXT" + &= typFile + &= name "t" + &= help + (unlines + [ "The text overlays YAML file path and name." + , "\n" + , "The format is:" + , "\n" + , "- text: ..." + , "\n" + , " fontFamily: ..." + , "\n" + , " fontStyle: ..." + , "\n" + , " fontStretch: ..." + , "\n" + , " fontWeight: ..." + , "\n" + , " fontSize: ..." + , "\n" + , " origin: ..." + , "\n" + , " xTranslation: ..." + , "\n" + , " yTranslation: ..." + , "\n" + , " rotation: ..." + , "\n" + , " startTime: ..." + , "\n" + , " durationTime: ..." + , "\n" + , " outlineSize: ..." + , "\n" + , " outlineColor: ..." + , "\n" + , " fillColor: ..." + , "\n" + , "- text: ..." + , "\n" + , "..." + , " \n" + , " \n" + ] + ) } - &= summary (info icon) + &= summary "" &= program programName &= details ["Visit https://github.com/lettier/gifcurry for more information.", ""] main :: IO () main = do - cliArgs' <- cmdArgs cliArgs - let params = makeGifParams cliArgs' putStrLn $ info logo - paramsValid <- Gifcurry.gifParamsValid params + cliArgs' <- cmdArgs cliArgs + let text_overlays_file' = unpack $ strip $ pack $ text_overlays_file cliArgs' + textOverlays <- + if null text_overlays_file' + then return [] + else do + text_overlays_file_exists <- doesFileExist text_overlays_file' + text_overlays_data <- + if text_overlays_file_exists + then DBC.readFile text_overlays_file' + else return "" + let maybeTextOverlays = Data.Yaml.decode text_overlays_data :: Maybe [TextOverlay] + makeTextOverlays text_overlays_file' maybeTextOverlays + let params = (makeGifParams cliArgs') { Gifcurry.textOverlays = textOverlays } + paramsValid <- Gifcurry.gifParamsValid params if paramsValid then void $ Gifcurry.gif params else @@ -139,6 +229,66 @@ main = do "[INFO] Type \"" ++ programName ++ " -?\" for help." return () +makeTextOverlays :: String -> Maybe [TextOverlay] -> IO [Gifcurry.TextOverlay] +makeTextOverlays text_overlays_file' maybeTextOverlays = + case maybeTextOverlays of + Nothing -> do + putStrLn $ + "[WARNING] Could not parse the " ++ text_overlays_file' ++ " YAML file!" + return [] + Just textOverlays -> + mapM + (\ + TextOverlay + { text + , fontFamily + , fontStyle + , fontStretch + , fontWeight + , fontSize + , origin + , xTranslation + , yTranslation + , rotation + , startTime + , durationTime + , outlineSize + , outlineColor + , fillColor + } + -> do + origin' <- originFromString origin + return + Gifcurry.TextOverlay + { Gifcurry.textOverlayText = text + , Gifcurry.textOverlayFontFamily = fontFamily + , Gifcurry.textOverlayFontStyle = fontStyle + , Gifcurry.textOverlayFontStretch = fontStretch + , Gifcurry.textOverlayFontWeight = fontWeight + , Gifcurry.textOverlayFontSize = fontSize + , Gifcurry.textOverlayOrigin = origin' + , Gifcurry.textOverlayXTranslation = xTranslation + , Gifcurry.textOverlayYTranslation = yTranslation + , Gifcurry.textOverlayRotation = rotation + , Gifcurry.textOverlayStartTime = startTime + , Gifcurry.textOverlayDurationTime = durationTime + , Gifcurry.textOverlayOutlineSize = outlineSize + , Gifcurry.textOverlayOutlineColor = outlineColor + , Gifcurry.textOverlayFillColor = fillColor + } + ) + textOverlays + where + originFromString :: String -> IO Gifcurry.TextOverlayOrigin + originFromString origin' = do + let maybeOrigin = Gifcurry.textOverlayOriginFromString origin' + case maybeOrigin of + Nothing -> do + putStrLn $ + "[WARNING] Origin " ++ origin' ++ " not valid! Defaulting to Center." + return Gifcurry.TextOverlayOriginCenter + Just origin'' -> return origin'' + makeGifParams :: CliArgs -> Gifcurry.GifParams makeGifParams CliArgs @@ -148,10 +298,7 @@ makeGifParams , start_time , duration_time , width_size - , quality_percent - , font_choice - , top_text - , bottom_text + , quality , left_crop , right_crop , top_crop @@ -165,10 +312,9 @@ makeGifParams , Gifcurry.startTime = start_time , Gifcurry.durationTime = duration_time , Gifcurry.widthSize = width_size - , Gifcurry.qualityPercent = quality_percent - , Gifcurry.fontChoice = font_choice - , Gifcurry.topText = top_text - , Gifcurry.bottomText = bottom_text + , Gifcurry.quality = fromMaybe Gifcurry.QualityMedium $ + Gifcurry.qualityFromString quality + , Gifcurry.textOverlays = [] , Gifcurry.leftCrop = left_crop , Gifcurry.rightCrop = right_crop , Gifcurry.topCrop = top_crop @@ -179,36 +325,17 @@ logo :: String logo = unlines [ "" - , " ppDPPPDbDDpp " - , " pDPPPP )DPDp ) " - , " PPPPP )pp DPPp ppppp PPP pDbDD " - , " p )PPP PPPD PPPD pDPDPPPDP PPP " - , " bP DPP pPPP )PPPb (PPP PPP )PPPPPP pDPPPDb PPP PPb PPbpDPP PPbpPP ·DPb pPD " - , " (PPb )D (PPD bPPP PPP DDDDD PPP PPP PPb PPP PPb PPPP PPPP (PP pPPC " - , " (PPPp PPP b )PPP DPPp PPP PPP PPP (PPb PPP PPb PPP PPP DPb PPP " - , " PPPb DPPP pPp DPb DPDp PPP PPP PPP DPPp p PPP pPPb PPP PPP PPpPP " - , " )PPPp (DPPP )PPb b (PPDDPPP PPP PPP (PDDDPC PDDP PPC PPP PPP )DPPP " - , " )DPPp )DD DPPPb pbPP " - , " )DPbp (PPPPPb PPC " - , " SPDbDppppPPDPC " - , "" - ] - -icon :: String -icon = - unlines - [ "" - , " ppDPPPDbDDpp " - , " pDPPPP )DPDp " - , " PPPPP )pp DPPp " - , " p )PPP PPPD PPPD " - , " bP DPP pPPP )PPPb " - , " (PPb )D (PPD bPPP " - , " (PPPp PPP b )PPP " - , " PPPb DPPP pPp DPb " - , " )PPPp (DPPP )PPb b " - , " )DPPp )DD DPPPb " - , " )DPbp (PPPPPb " - , " SPDbDppppPPDPC " + , "         ▄▄▄▄▄▄▄▄                                                                             "  + , "     ▄▄████   ▀▀███▄                                                                         "  + , "      ████▀   ▄    ▀███           ▄    ▐██▌   ▄███▄                                          "  + , "  ▄   ▐███   ████   ▀███      ▄███▀▀██       ███                                             " + , " ▐█▌   ██   ▐███     ████    ███        ▐██ █████▌ ▄█████ ▐██▌  ██▌  ██▄██▌ ██▄██▌ ██▌   ███ "  + , " ███   ▐▌   ███      ▐███▌   ███  ████▌ ▐██   ██▌  ███     ▐██▌  ██▌  ███▀   ███▀   ▐██  ███  "  + , " ████      ███▀  ▐█   ███▌   ███    ██▌ ▐██   ██▌  ███     ▐██▌  ██▌  ██▌    ██▌     ██▌▐██   "  + , " ▐███▄    ▐██▌   ██    ██     ███▄▄▄██▌ ▐██   ██▌   ███▄▄█ ███▄███▌  ██▌    ██▌      ████▌   "  + , "  ▀███   ▀███   ▐███   ▀        ▀▀▀▀▀    ▀▀   ▀▀      ▀▀▀    ▀▀▀   ▀▀     ▀▀        ███    "  + , "    ███▄   ▀    ████▌                                                                ███▀     "  + , "      ▀███▄▄   █████▀                                                                         "  + , "          ▀▀▀▀▀▀▀                                                                             "  , "" ] diff --git a/src/data/about-dialog-button-image.svg b/src/data/about-dialog-button-image.svg index 6b34c7d..3e9ecff 100644 --- a/src/data/about-dialog-button-image.svg +++ b/src/data/about-dialog-button-image.svg @@ -5,49 +5,13 @@ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="30" height="30" viewBox="0 0 30 30" version="1.1" - id="svg8" - sodipodi:docname="about-dialog-button-image.svg" - inkscape:version="0.92.2 2405546, 2018-03-11"> - + id="svg8"> - - - + + + (C) 2018 David Lettier + + @@ -79,28 +48,24 @@ + style="display:inline;opacity:1;fill:#ffffff;fill-opacity:0;fill-rule:nonzero;stroke:none;stroke-width:0.1846476;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke" />