Add gif-h helper to create screen capture

Press key `I` (shift+`i`) to start a screen capture creating a gif with
the captured screen. Hit `I` again to stop the screen recording.

---

Add gif-h helper header only library

Copied from https://github.com/charlietangora/gif-h

3d2657b9ad
This commit is contained in:
Reinhold Gschweicher
2022-06-19 12:29:26 +02:00
committed by NeroBurner
parent ae9a020126
commit a594446ef0
7 changed files with 1075 additions and 1 deletions

45
gif-h/README.md Normal file
View File

@@ -0,0 +1,45 @@
gif-h
=====
This one-header library offers a simple, very limited way to create animated GIFs directly in code.
Those looking for particular cleverness are likely to be disappointed; it's pretty much a straight-ahead
implementation of the GIF format with optional Floyd-Steinberg dithering. (It does at least use delta
encoding - only the changed portions of each frame are saved.)
So resulting files are often quite large. The hope is that it will be handy nonetheless as a quick and easily-integrated way for programs to spit out animations.
Only RGBA8 is currently supported as an input format. (The alpha is ignored.)
Email me : ctangora -at- gmail -dot- com
Usage:
-------------------
Create a GifWriter struct.
Pass the struct to GifBegin() to initialize values and write the file header.
Pass frames of the animation to GifWriteFrame().
Finally, call GifEnd() to close the file handle and free memory.
#include <vector>
#include <cstdint>
#include <gif.h>
int main()
{
int width = 100;
int height = 200;
std::vector<uint8_t> black(width * height * 4, 0);
std::vector<uint8_t> white(width * height * 4, 255);
auto fileName = "bwgif.gif";
int delay = 100;
GifWriter g;
GifBegin(&g, fileName, width, height, delay);
GifWriteFrame(&g, black.data(), width, height, delay);
GifWriteFrame(&g, white.data(), width, height, delay);
GifEnd(&g);
return 0;
}