GIMP and Standards

GIMP is supposed to integrate well into your workflow. Thus is needs to interoperate with other applications and your desktop. Standards are there to make this happen and so we try to follow established (and sometimes even proposed) standards. Below you will find a list with links to specifications that a GIMP developer may find useful.

Image File Formats

Extensible Markup Language (XML)

Describes the XML markup language, used to store the menu layout, the startup tips, help indices and other things.

Graphics Interchange Format

Describes the GIF file format, used in the GIF plug-in. GIF is bad, don't use it.

JPEG (Joint Photographic Experts Group)

Describes the JPEG JFIF file format, used in the JPEG plug-in.

JNG (JPEG Network Graphics) Format

GIMP doesn't use this format yet but it would be nice to extend the MNG plug-in to use it and to add a dedicated JNG plug-in.

MNG (Multiple-image Network Graphics) Format

Describes the MNG file format, used in the MNG plug-in.

Portable Network Graphics (PNG)

Describes the PNG file format, used in the PNG plug-in. GIMP also reads patterns in the PNG file format and it stores thumbnails as PNG images.

Scalable Vector Graphics (SVG) 1.1

Describes the SVG file format, used in the SVG plug-in. GIMP uses SVG for import and export of paths and it also loads gradients from SVG files.

TIFF 6.0

Describes the TIFF file format, used in the TIFF plug-in. See also the Unofficial TIFF Home Page.

Extensible Metadata Platform (XMP)

Describes XMP, a labeling technology that allows to embed data about a file, known as metadata, into the file itself.

Digital Negative (DNG)

Specifies DNG, a format, proposed by Adobe, aiming to become a standard for storing raw data from digital cameras.

Color Management

sRGB Color Space

Describes sRGB, a color space proposed as a standard default color space for the Internet and other interested vendors.

ICC Specification

Specifies the profile format defined by the International Color Consortium (ICC). The intent of this format is to provide a cross-platform device profile format that can be used to translate color data between device colorspaces.

ICC Profiles In X Specification

This is a specification for associating ICC color profiles with X screens. GIMP 2.4 implements this proposed standard.

Desktop Standards

Desktop Entry Specification

This document describes desktop entries: files describing information about an application such as the name, icon, and description. GIMP installs such a .desktop file.

Desktop Message Bus

D-Bus is a message bus for the desktop. If available, GIMP uses it to detect if another GIMP instance is already running. In the future, GIMP might make even more use of D-Bus.

File URI Specification

Specifies how URIs for normal UNIX filenames (file: URIs) are interpreted and created. This functionality is provided by GLib,

GNOME Human Interface Guidelines

We don't follow this spec to the word but we try to adopt as much of these guidelines as makes sense.

Recent File Storage Specification

Provides a standard mechanism for storing a list of recently used files. Supported since GIMP version 2.1.6.

Shared MIME Database

The shared MIME database contains common MIME types, descriptions, and rules for determining the types of files. GIMP file plug-ins should use the MIME types and descriptions defined here.

Startup Notification

Specifies a mechanism allowing a desktop environment to track application startup to provide user feedback. GTK+ provides support for this protocol.

Thumbnail Managing Standard

Deals with the permanent storage of previews for file content. In particular, it tries to define a general and widely accepted standard for this task. GIMP 2.0 implements this standard and dropped support for the old-fashioned .xvpics.

Standards specific to the X window system

Clipboards

Not a formal specification, but explains the consensus of the Qt and GTK+ developers on how the X clipboard works.

Clipboard Manager

The Clipboard Manager specification describes how applications can actively store the contents of the clipboard when the application is quit. This requires that a compliant clipboard manager is running.

Drag-and-Drop Protocol for the X Window System

XDND defines a standard for drag and drop on X11. It is implemented by GTK+.

Direct Save Protocol for the X Window System

XDS defines an extension to XDND that allow users to save a file by simply dragging it to a file manager window. GIMP 2.4 supports this protocol.

Extended Window Manager Hints

The Window Manager Specification is meant to unify the GNOME and KDE window manager hint conventions.

Inter-Client Communication Conventions Manual (ICCCM)

This spec defines the interaction between X11 clients. In particular it talks about selections, cut buffers, window and session management, manipulation of shared resources and device color characterization.

XSETTINGS

The XSETTINGS protocol provides a mechanism for applications written with different toolkits to share simple configuration settings such as double-click-times and background colors. GTK+ hides this from us.

Programming Standards

GIMP Hackordnung

The last section from the file HACKING as found in the GIMP source tree explains how the GIMP source code should be formatted.

GNU coding standards

A guide to writing portable, robust and reliable programs. Also defines the GNU coding style.

ISO/IEC 9899

ISO 9899 is the international standard for the C programming language.


Copyright © 2003-2011 The GIMP Development Team. webmaster@gimp.org
Validate XHTML