Coder Social home page Coder Social logo

mattbierner / gif-shift Goto Github PK

View Code? Open in Web Editor NEW
5.0 4.0 0.0 21.21 MB

Web app for drawing in dimensions not only of sight but of time

Home Page: https://mattbierner.github.io/gif-shift/

License: MIT License

JavaScript 9.82% HTML 1.40% Makefile 0.65% C 2.32% TypeScript 81.60% SCSS 4.22%

gif-shift's Introduction

Gif Shift

Web app for drawing in dimensions not only of sight but of time.

Using Gif Shift

Links

Related projects

  • Scanline.gif — Programmatically shifting which frame each pixel in a gif samples from.
  • Gif Mask — Remixing gifs using image masks.

Usage

Gif Shift lets you edit gifs using a paintbrush that doesn't change the pixel contents of the gif, but instead changes which frame in the gif that pixel samples from. Imagine the brush as either pulling the painted pixels forwards in time so that they sample from future frames, or pushing them backwards so that they sample from past frames. You can use this to create still images that sample from multiple frames of a gif or to create new animated gifs.

Loading a gif

To load a gif, either:

  • Drag and drop a gif from your computer to the timeline at the bottom of the screen.

  • Use the search button next to the timeline to find a gif on Giphy.

Gif shift stores the loaded gif and editing state in your browser. No data is uploaded to a server.

Editing

The editing tools in Gif Shift do not change the gif's pixel data but instead shift each pixel forward or backwards in time. The amount of shift is controlled by the Frame Shift slider:

The shift slider

With a frame shift of 3 for example, every pixel painted using the brush tool will sample from three frames in the future instead of from the current frame.

Gif Shift include a few basic tools you can use to apply these shifts:

Tools

  • Brush (b) — Apply the current shift. The size of the brush is controlled by stroke.
  • Eraser (e) — Clear the current shift. The size of the eraser is controlled by stroke.
  • Line (g) — Draw a line that demarcates which part of the image should be shifted.
  • Quick Shift — Quickly shift part of the image (such as the left half or bottom half).

You can also view the current shift mask by selecting mask in the bottom bar of the editor:

Viewing the shift mask

  • Black — No shift.
  • 100% red — The pixel has been shifted the entire length of the gif forwards.
  • 30% red (dark red) — The frame has been shifted GIF_FRAME_COUNT * 0.30 frames forward.
  • 100% blue — The pixel has been shifted the entire length of the gif backwards.
  • 30% blue (dark blue) — The frame has been shifted GIF_FRAME_COUNT * 0.30 frames backwards.

Building

The site is mainly written in TypeScript using react. It is bundled using webpack and served using Jekyll

To run the site:

$ npm install
$ npm run build
$ jekyll serve 

The main scripts are under src/. The bundled JavaScript is output to js/

Credits

Gif Encoder

Gif encoder from GifCap.

Icons

gif-shift's People

Contributors

mattbierner avatar dependabot[bot] avatar

Stargazers

Mel Massadian avatar Dmitry Kozlovtsev avatar Subhan Bakhtiyarov avatar Michael Demarais avatar Warren A. Kalolo avatar

Watchers

 avatar James Cloos avatar Michael Demarais avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.