Convert Figma logo to code with AI

GNOME logogimp

Read-only mirror of https://gitlab.gnome.org/GNOME/gimp

4,802
667
4,802
0

Top Related Projects

28,551

Animated sprite editor & pixel art tool (Windows, macOS, Linux)

2,667

MyPaint is a simple drawing and painting program that works well with Wacom-style graphics tablets.

11,038

A simple web-based tool for Spriting and Pixel art.

Video Editor for Linux

Quick Overview

GIMP (GNU Image Manipulation Program) is a free and open-source raster graphics editor used for image manipulation, retouching, and creation. It is a powerful tool for digital artists, photographers, and anyone who needs to work with images.

Pros

  • Versatile: GIMP supports a wide range of image formats, including JPEG, PNG, GIF, and TIFF, making it suitable for various use cases.
  • Cross-platform: GIMP is available on multiple operating systems, including Windows, macOS, and Linux, ensuring accessibility across different platforms.
  • Customizable: GIMP offers a highly customizable interface, allowing users to tailor the workspace to their specific needs.
  • Active Community: GIMP has a large and active community of users and developers, providing a wealth of resources, tutorials, and plugins.

Cons

  • Learning Curve: GIMP can have a steeper learning curve compared to some commercial image editing software, especially for beginners.
  • Limited Scripting Language: GIMP's scripting language, Script-Fu, is not as widely used or as powerful as the scripting capabilities of some other image editing tools.
  • Performance Issues: GIMP may experience performance issues when working with large or high-resolution images, especially on older or less powerful hardware.
  • Limited RAW Support: GIMP's support for RAW image formats is not as comprehensive as some other image editing software.

Code Examples

N/A (GIMP is not a code library)

Getting Started

N/A (GIMP is not a code library)

Competitor Comparisons

28,551

Animated sprite editor & pixel art tool (Windows, macOS, Linux)

Pros of Aseprite

  • Aseprite is a dedicated pixel art and sprite editor, providing a focused and specialized tool for this type of digital art.
  • The application has a clean and intuitive user interface, making it easy for both beginners and experienced artists to work efficiently.
  • Aseprite offers a wide range of features and tools specifically tailored for pixel art creation, such as advanced pixel-level editing, animation tools, and export options.

Cons of Aseprite

  • Aseprite is a commercial software, requiring a one-time purchase or subscription, which may be a barrier for some users.
  • The application is primarily focused on pixel art and may not provide the same level of functionality or versatility as a more general-purpose image editing tool like GIMP.
  • The development and support for Aseprite is primarily driven by a single company, which could potentially limit the pace of new feature additions or community involvement.

Code Comparison

GIMP (GNOME/gimp):

import gimp
from gimpfu import *

def my_plugin(image, drawable):
    pdb.gimp_image_scale(image, 800, 600)
    pdb.gimp_drawable_invert(drawable)
    pdb.gimp_displays_flush()

register(
    "python_fu_my_plugin",
    "My Plugin",
    "Scales the image and inverts the drawable",
    "Your Name",
    "Open Source",
    "2023",
    "My Plugin",
    "*",
    [
        (PF_IMAGE, "image", "Input Image", None),
        (PF_DRAWABLE, "drawable", "Input Drawable", None),
    ],
    [],
    my_plugin,
    menu="<Image>/Filters/My Plugin")

main()

Aseprite (aseprite/aseprite):

#include "app/app.h"
#include "app/commands/cmd_set_palette_entry.h"
#include "app/context.h"
#include "app/document.h"
#include "app/transaction.h"
#include "doc/palette.h"

void setColorAtIndex(int index, app::Color color) {
    app::Context* context = app::Context::current();
    app::Document* doc = context->activeDocument();
    app::Transaction transaction(context, "Set Palette Entry");
    doc->setPaletteEntry(index, color);
    transaction.commit();
}
2,667

MyPaint is a simple drawing and painting program that works well with Wacom-style graphics tablets.

Pros of mypaint

  • Lightweight and fast, with a focus on simplicity and performance
  • Highly customizable with a wide range of brushes and tools
  • Supports a variety of input devices, including graphics tablets and styluses

Cons of mypaint

  • Lacks some of the advanced features and functionality found in GIMP, such as layer blending modes and advanced selection tools
  • Smaller community and fewer third-party plugins and extensions compared to GIMP
  • Limited support for file formats, with a focus on open-source formats like OpenRaster

Code Comparison

GIMP (GNOME/gimp):

import gimp
from gimpfu import *

def my_plugin(image, drawable):
    pdb.gimp_image_scale(image, 800, 600)
    pdb.gimp_drawable_invert(drawable)
    pdb.gimp_image_merge_visible_layers(image, CLIP_TO_IMAGE)
    pdb.gimp_displays_flush()

register(
    "my_plugin",
    "My GIMP Plugin",
    "Scales the image, inverts the drawable, and merges visible layers",
    "Your Name",
    "Copyright (C) 2023 Your Name",
    "2023",
    "<Image>/Filters/My Plugin",
    "*",
    [],
    [],
    my_plugin)

main()

mypaint (mypaint/mypaint):

import mypaint.lib
import mypaint.brushlib

def my_brush_stroke(surface, x, y, pressure, xtilt, ytilt, dtime):
    brush = mypaint.brushlib.Brush()
    brush.load_from_string(brush_string)
    brush.stroke_to(surface, x, y, pressure, xtilt, ytilt, dtime)

def my_plugin():
    doc = mypaint.lib.Document()
    layer = doc.layer_new()
    doc.layer_add(layer)
    doc.stroke_to(layer, my_brush_stroke, 100, 100, 0.5, 0.0, 0.0, 0.1)
    doc.save("output.ora")

my_plugin()
11,038

A simple web-based tool for Spriting and Pixel art.

Pros of Piskel

  • Simplicity: Piskel is a lightweight and user-friendly pixel art editor, making it a great choice for quick and simple image creation.
  • Web-based: Piskel is a web-based application, allowing users to access and use it from any device with a web browser, without the need for installation.
  • Collaboration: Piskel offers real-time collaboration features, enabling multiple users to work on the same project simultaneously.

Cons of Piskel

  • Limited Functionality: Compared to GIMP, Piskel has a more limited set of features and tools, which may not be suitable for more complex image editing tasks.
  • Lack of Advanced Editing Options: Piskel lacks some of the advanced editing options and customization features found in GIMP, such as layer management, advanced color correction, and complex selection tools.

Code Comparison

GIMP (GNOME/gimp):

import gimp
from gimpfu import *

def my_plugin(image, drawable):
    pdb.gimp_image_scale(image, 800, 600)
    pdb.gimp_drawable_invert(drawable)
    pdb.gimp_image_merge_visible_layers(image, CLIP_TO_IMAGE)
    pdb.gimp_file_save(image, drawable, "output.png", "output.png")

register(
    "python_fu_my_plugin",
    "My Plugin",
    "Scales the image, inverts the drawable, and saves the result",
    "Your Name",
    "Open source",
    "2023",
    "<Image>/Filters/My Plugin",
    "*",
    [],
    [],
    my_plugin)

main()

Piskel (piskelapp/piskel):

// Create a new canvas
var canvas = new Piskel.createCanvas(32, 32);

// Add a new layer
var layer = canvas.addLayer('Layer 1');

// Draw a pixel on the canvas
layer.setPixel(10, 10, [255, 0, 0]);

// Export the canvas as a PNG
var png = canvas.renderAsPng();

Video Editor for Linux

Pros of Flowblade

  • Flowblade is a lightweight and fast video editor, making it a good choice for systems with limited resources.
  • The user interface is designed to be intuitive and easy to use, with a focus on simplicity.
  • Flowblade supports a wide range of video and audio formats, making it a versatile tool for various projects.

Cons of Flowblade

  • Flowblade has a smaller user community and fewer resources available compared to GIMP, which may make it more challenging to find support and documentation.
  • The feature set of Flowblade is more limited than GIMP, with fewer advanced editing tools and plugins available.
  • Flowblade may not be as well-suited for complex or professional-level video editing tasks as some other video editing software.

Code Comparison

Here's a brief comparison of the code structure between GIMP and Flowblade:

GIMP (GNOME/gimp):

def gimp_plugin_main(argv):
    """Main function for GIMP plugins."""
    gimp.main(argv[0], argv[1], argv[2], plugin_main)

def plugin_main(img, drawable):
    """Main function for a GIMP plugin."""
    # Plugin code goes here
    pass

Flowblade (jliljebl/flowblade):

def main():
    """Main function for Flowblade."""
    app = Gtk.Application(application_id="com.janne.flowblade")
    app.connect("activate", on_activate)
    app.run(sys.argv)

def on_activate(app):
    """Callback function for Gtk.Application activation."""
    # Application code goes here
    pass

The key differences are that GIMP uses a more plugin-oriented structure, while Flowblade uses a Gtk.Application-based approach. Both follow common Python and GTK conventions, but the overall structure and entry points differ to suit the respective project's needs.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

               ------------------------------
               GNU Image Manipulation Program
                  2.99 Development Branch
               ------------------------------

This is an unstable development release, an intermediate state on the way to the next stable release: GIMP 3.0. GIMP 2.99 may or may not do what you expect. Save your work early and often. If you want a stable version, please use GIMP 2.10 instead.

If you think you found a bug in this version, please make sure that it hasn't been reported earlier and that it is not just new stuff that is still being worked on and obviously not quite finished yet.

If you want to hack on GIMP, please read the file devel-docs/README.md. For detailed installation instructions, see the file INSTALL.

  1. Web Resources ================

GIMP's home page is at:

https://www.gimp.org/

Please be sure to visit this site for information, documentation, tutorials, news, etc. All things GIMP-ish are available from there.

The latest version of GIMP can be found at:

https://www.gimp.org/downloads/

We also have a website dedicated to documentation at:

    https://docs.gimp.org/

2. Contributing

GIMP source code can be found at:

https://gitlab.gnome.org/GNOME/gimp/

Resources for contributors:

    https://developer.gimp.org/

In particular, you may want to look in the "Core Development" section. Some articles of particular interest for newcomers could be:

  1. Discussion Channels ======================

We have several discussion channels dedicated to GIMP user and development discussion. There is more info at:

    https://www.gimp.org/discuss.html

For the real junkies, there are IRC channels (e.g. #gimp or #gimp-user) devoted to GIMP on GIMPNet (a private free software oriented network). Many of the developers hang out there. Some of the GIMPNet servers are:

irc.gimp.org:6667
irc.us.gimp.org:6667
irc.eu.gimp.org:6667

More discussion channels, such as forums, will be listed on the above "discuss" page when they are moderated by a team member. Links to archives of former discussion methods (e.g. mailing lists) are also included in that page.

  1. Customizing ==============

The look of GIMP's interface can be customized like any other GTK+ app by editing files in ${XDG_CONFIG_HOME}/gtk-3.0/ (settings.ini and gtk.css in particular) or by using "themes" (ready-made customizations). Additionally, GIMP reads ${XDG_CONFIG_HOME}/GIMP/2.99/gimp.css so you can have settings that only apply to GIMP.

You can also manually change the keybindings to any of your choice by editing: ${XDG_CONFIG_HOME}/GIMP/2.99/shortcutsrc.

Have fun,

Spencer Kimball Peter Mattis Federico Mena Manish Singh Sven Neumann Michael Natterer Dave Neary Martin Nordholts Jehan