On Fri, Nov 03, 2000 at 06:49:53PM -0800, thus said Caroline Dahllof:
    > Yeah, I thought about adding it the fg image as a layer to the bg image
    > but I thought that there would be a nicer way of doing it. WHat I am
    > trying to do is onion skinning. Users want to see two images displayed in
    > the same display. They want to be able to offset these images. They use
    > this for cloning.
    > Thanks,

For painting Animations it can be useful
to see the previous or next frame(s)
more or less transparent.

Here are 2 Variants A) and B) how to implement such features in GIMP.

A) The OnionSkin Layer(s) has
   NO special Meaning to the GIMP core Application.
   GAP creates them optional as normal Layers
   in the current frame image, using a special Name
   and/or Parasite to identify them.

   1) automatic creation of onion_layer(s)
      is done on evry GAP-controlled load image
      Operation, but only if Parameter
      OnionLayersAutomatic is TRUE
      (as  video/goto/next .
       and most of the other video menu actions)
   2) per explicite User request
       (via KeyShortcut or video/onion/CREATE
         a new  gap-plugin gap_set_onion)
   Before every GAP-controlled save image 
   and before onion_layer creation
   the Onion Layers are removed from the frame.
   If the user saves the current frame explicite
   the Onion Layer(s) goes into the diskfile.
   !! This may be a fatal Problem only
      for frameformat that cannot handle layers -- like jpeg --
      the original frame is merged with its onion layer,
   A new GAP PlugIn implements a Dialog for the Parameters,
   and explicite Funtions to Turn OnionLayers ON (CREATE) or OFF (REMOVE).

   Parameters for OnionLayers:
   - Number of Onion Layers
   - OnionLayersAutomatic TRUE/FALSE
   per layer:
   - OnionPosition in the Layerstack
   - OnionRevers  TRUE/FALSE  (TRUE: Position 0 == on top, FALSE: Position 0 is on 
   - OnionOpacity 0.0 upto 100.0 %
       (how to calculate source framenumber)
       (how GAP creates the onion Layer)
   - OnionFrameDelta  1,2,3..  or -1,-2,-3 ..
   alternative to OnionFrameDelta you can specify
   to use any other image (that is opened in the gimp)
   The Parameters are stored in the GAP Video Info File .vin

B) OnionLayer is a new 'special' layertype,
   known to the GIMP core app.
   GIMP offers a PDB Interface 
   - gimp_image_add_onionlayer(image_id, src_image_id,
   (do we need a special PDB interface for remove ?)
   GIMP should display the OnionLayer like any other Layer,
   but set to ReadOnly. (if possible)
   The Display of image_id colud be updated on
   every change of src_image_id
   as long as src_image_id is valid.
   When src_image_id is closed, 
   the onion layer should stay as it is.
   This is important for GAP, because
   usually the previous frame is not open
   at the same time, and moving to the next
   frame keeps the same image_id.
   When GAP loads a new/next frame
   GAP renders a temporary image containing
   just the onion layers, and adds the onion_layers
   to the new current frame.  Then the temporary image
   is close.
   L&C dialog:
   - the onion layer can be moved in the layerstack,
      set visible/invisible and opacity values
   - should be marked somehow 
      (similar to floating sel we could use
       a Special Icon)
   -  can be deleted
   -  can be copied (the resulting copy should be a normal layer)
   -  but can not be moved. (or linked for groped moves)
      (the fixed to position 0/0, 
       maybe we just ignore its position values when displayed)
   GIMP sould never save onion layers !!

   (the layerlist provided to file_save Plugins
   should not contain onion_layer id's,
   maybe gimp has a seperate list of OnionLayers,
   L&C Dialog has to mix Layers from 
   both Layer List and OnionLayer List)

These Ideas are NOT complete concepts,
and need some more time to think about it.

Further Things to think about are:
- It is to late to implement this for the gimp 1.2 release.
- I don't know if there will be a 1.3 release ?
- Don't know if GIMP 2.0 adds animation features
  to the core and makes GAP obsolete in the future ?

Wolgang Hofer   <[EMAIL PROTECTED]>

Get FREE Email/Voicemail with 15MB at Lycos Communications at http://comm.lycos.com

Reply via email to