Skip to content

A C# 8.0 framework for tokenization/transformation of GIF files

License

Notifications You must be signed in to change notification settings

alexqfredrickson/vcvj

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vcvj

Screenshot

A brief introduction

vcvj is a .NET 8.0 (C#) framework for tokenizing and transforming GIF files.

Tokenization

vcvj parses GIF files into semantic components defined by the wonderful and frightening gif89a spec - yielding a VcvjImage object which contains:

  • Data blocks
  • Graphic blocks
  • Table-based images
  • Application extensions
  • And more!

Transformation

Once the GIF is parsed into a VcvjImage object, the VcvjImage API is used to alter the image's grammatical components and save it back into a GIF, with features such as:

  • Randomizing image frames
vcvj.DataStream.RandomizeFrames();

Screenshot

  • Altering color tables
vcvj.DataStream.LogicalScreen.GlobalColorTable.XOR(50);

Screenshot

vcvj.DataStream.LogicalScreen.GlobalColorTable.XOR(100);

Screenshot

vcvj.DataStream.LogicalScreen.GlobalColorTable.Randomize();

Screenshot

vcvj.DataStream.LogicalScreen.GlobalColorTable.RandomizeHalf();

Screenshot

  • Glitching them out beyond comprehension and effectively destroying them
vcvj.DataStream.DeleteRandomCompiledBytes(75000);

Screenshot Screenshot Screenshot

(Note: If you're using Chrome or Firefox, you probably can't see the images above, because modern web browsers perform some kind of sanity check upon encountering malformed GIFs. Luckily, IE and MS Edge don't:)

Screenshot

  • And more!

Configuration

To configure and run vcvj:

  1. Create copies of the app.config.example files in the vcvj and vcvj.Tests projects, name them both app.config, and set the constants (such as WorkingDirectory) as-needed.
  2. Compile and build the solution.

To generate modified GIFs on-the-fly, run the unit tests located in the vcvj.Tests project.

About

A C# 8.0 framework for tokenization/transformation of GIF files

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages