Skip to content

Godot's GDScript GifExporter port of godot-gifexporter

License

Notifications You must be signed in to change notification settings

novhack/godot-gdgifexporter

 
 

Repository files navigation

Gif exporter for Godot made entirely in GDScript

This is gif exporter for godot made entirely using GDScript. This is based on godot-gifexporter.

The version on master is for Godot 4.x. If you want to use version for Godot 3.x, then please pull changes from branch 3.x. :)

Mentioned in Awesome Godot

Example

extends Node2D


# load gif exporter module
const GIFExporter = preload("res://gdgifexporter/exporter.gd")
# load quantization module that you want to use
const MedianCutQuantization = preload("res://gdgifexporter/quantization/median_cut.gd")


func _ready():
	var img := Image.new()
	# load your image from png file
	img.load('res://image.png')
	# remember to use this image format when exporting
	img.convert(Image.FORMAT_RGBA8)

	# initialize exporter object with width and height of gif canvas
	var exporter = GIFExporter.new(img.get_width(), img.get_height())
	# write image using median cut quantization method and with one second animation delay
	exporter.add_frame(img, 1, MedianCutQuantization)

	# when you have exported all frames of animation you, then you can save data into file
	# open new file with write privlige
	var file: FileAccess = FileAccess.open('user://result.gif', FileAccess.WRITE)
	# save data stream into file
	file.store_buffer(exporter.export_file_data())
	# close the file
	file.close()

Quantization methods

Addon supports two quantization methods:

  • Median Cut
  • Uniform (with small color adjustment)

Both method files are stored in gdgifexporter/quantization directory.

Error Codes

Some methods give error codes. These are used error codes and their meaning:

  • OK = 0 (Everything went okay)
  • EMPTY_IMAGE = 1 (Passed image object has no data in it)
  • BAD_IMAGE_FORMAT = 2 (You are using different image format than FORMAT_RGBA8)

Contributors

If you want to contribute to this code then go ahead! :) Huge thanks to Kinwailo and novhack. This project wouldn't work without their help! Moreover the update to Godot 4.x wouldn't be possible without the contribution of OverloadedOrama, so huge respect for him! :D

Used external libs

About

Godot's GDScript GifExporter port of godot-gifexporter

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • GDScript 100.0%