Hacking:GSoC/2012/Ideas

From GIMP Developer Wiki

Jump to: navigation, search

WORK IN PROGRESS!

This page is the official ideas list for GIMP (and GEGL's) application to Google Summer of Code 2012.

GIMP is the Gnu Image Manipulation Program, and GEGL is a Graph based Image Processing Library. GEGL is being designed (mainly, but not only) to be GIMP's new core which will allow better parallelism, better memory management, non-destructive editing and higher bit depths.

For more GEGL ideas, see gegl.org/contribute.html

For history of GIMP and GSoC, along with past ideas, see Hacking:GSOC_Archive, and for details about applications see Hacking:GSOC‎

The GSoC timeline for this year can be found at: www.google-melange.com/document/show/gsoc_program/google/gsoc2012/timeline

Contents

  • 1 Recommended
    • 1.1 Implement GEGL ops that GIMP need
    • 1.2 Implement the free transform tool
    • 1.3 Slicing tool


Recommended

Ideas which are generally considered as good for GSoC this year, and are recommended for students. Note that students are strongly encouraged to come up with their own project - this list is not exhaustive. A submission to gsoc which is just a copy-and paste job of one of these suggestions is not likely to be accepted.

Note about mentors: Some projects have mentors listed for them. These are projects where a specific mentor has already agreed to work with a student if the project is accepted. However, this does not mean that other projects have no mentor! In case projects other than the ones who have a mentor listed here will be accepted, a mentor will be assigned for them.

Note about tasks: Some ideas here may already be claimed by a potential student. If a claim is listed here it's solid enough that, unless the person claiming it gives it up, it wont go to another.

Implement GEGL ops that GIMP need

Category: GEGL, image processing

The migration of GIMP to use GEGL has accelerated - for some GIMP functionality the main hurdle to migrate is having GEGL ops that can act as drop in replacement for the core processing functionality (some ops would be desired directly in GIMP others could likely go directly into GEGL.).

For most code involved, porting to GEGL involves understanding what the current code does; and port or reimplement it as a floating point processing operation (floating point math often ends up shorter and more readable than the 8bit equivalents.)

A list of currently missing :

  • Implementations of layer modes - that behave exactly like the old ones.
  • Stretch HSV
  • Decompose/Compose
  • Alien map
  • Gradient map (needs gradient support)
  • Palette map
  • Rotate colors
  • sample colorize
  • channel mixer
  • Motion blur
  • ... and many other things that currently exist in the Filters menu of GIMP.

Implement the free transform tool

Category: Tools, User Interface

This task is already claimed

The free-transform tool should a all-in-one transformation tool that will allow fast and easy transformation of images, with all kinds of affine transformations at once. For exact specifications, reasons which make this tool needed and more, see: gui.gimp.org/index.php/Transformation_tool_specification

Minimal Student Requirements:

  • Good C knowledge
  • Gtk+/GObject basic knowledge and/or at least some interest in User Interface programming

Initial implementation is available in Mikael Magnusson's Git branch.


Slicing tool

Potential mentor: João S. O. Bueno, Alexia Death

Category: Tools, User-Interface

Note: this project, although very essential, requires complete UI specs which are not yet present, and therefore is considered less likely to be done, at least untill we have decent UI specs.

One of the most requested features by web designers and/or interface designers, is the addition of a slice tool. Currently slicing images inside GIMP can only be done in grids (using guides and the guillotine action) and you can't split just one rectangle in the middle.

For example, the following slice can not be achieved:

-----------------------------------
|            |                    |
|            |                    |
|            |--------------------|
|            |                    |
-------------|                    |
|            |                    |
-----------------------------------

A more advanced version will take the slicing idea to a new place, allowing to create general rectangles:

-------------------------------------
|          ---------------   ----   |
|          |             |   |  |   |
|          |             |   ----   |
|          ---------------          |
|                               +---+--+
|                               |   |  |
--------------------------------+----  |
                                +------+

And why stop at rectangles? Maybe allow custom shapes using custom paths? Further ideas were suggested in the mailing list, at this post..

Minimal Student Requirements:

  • Good C knowledge
  • Gtk+/GObject knowledge in high level and experience in User Interface programming
Retrieved from "wiki.gimp.org/index.php/Hacking:GSoC/2012/Ideas"
Views
  • Page
  • Discussion
  • View source
  • History
Personal tools
  • Log in
Navigation
  • Main page
  • Community portal
  • Current events
  • Recent changes
  • Random page
  • Help
Toolbox
  • What links here
  • Related changes
  • Special pages
  • Printable version
gipoco.com is neither affiliated with the authors of this page nor responsible for its contents. This is a safe-cache copy of the original web site.