Re: [Gimp-developer] jpeg-exif development summary

2005-01-04 Thread Robert L Krawitz
   Date: Tue,  4 Jan 2005 09:53:01 -0800
   From: "William Skaggs" <[EMAIL PROTECTED]>

   2) The jpeg plug-in now pretty closely adheres to the instructions
  in the exif specifications concerning which fields should be
  altered by an image-editing program.  There are a couple of
  fields remaining that I haven't yet figured out how to set
  properly.

  There is now a file called "exif-handling.txt" in devel-docs
  that summarizes my understanding, based on the exif
  specifications, of how an image editor is supposed to handle the
  exif data in a file.  Of course we need not take the
  specifications as gospel (among other things, they specify that
  a proper EXIF file must have a file name in 8.3 format, ending
  in .JPG!), but they should serve as a good default.

Adobe at least had an excuse with PPD files 10 years ago.  There's no
excuse for 8.3 any more.

   4) When the exif specifies that an image is rotated, the plug-in
  pops up a query asking the user whether to rotate it into
  standard alignment.  I thought it was better to ask rather than
  do it automatically, because there are probably a substantial
  number of existing images that have been edited without having
  their exif information properly updated (for example, by earlier
  versions of GIMP).  When an image is saved with exif, the
  orientation is set to "top-left", as the exif specifications
  require.  (See bug #121810)

I'd suggest making this a preference.  If someone's careful about
maintaining their images (or hasn't edited them before), they'll get
very annoyed by having to answer this question every time they open an
EXIF file that's rotated.  Wouldn't earlier versions of the GIMP have
destroyed the EXIF data?

   2) Exif is not relevant only to jpeg: it can appear in TIFF and Raw
  files, and there are draft standards for including it in PNG and
  other file types.  I would like to extract the generic parts of
  the exif handling code for jpeg-exif.c and place it into a new
  library for generic file-handling code, libgimpfile, which we
  have discussed creating some time ago (see bug #139354).  The
  file jpeg-exif.c will still however need to exist, because the
  exif specifications require some different fields for compressed
  (jpeg) vs uncompressed (tiff) exif files.

FYI, Canon raw (.crw) files have an embedded JPEG file, but the EXIF
information is stored in both the raw file and in a thumbnail (.thm)
file with the same basename.  The .thm file is actually a JPEG file
with embedded EXIF data.

-- 
Robert Krawitz <[EMAIL PROTECTED]>

Tall Clubs International  --  http://www.tall.org/ or 1-888-IM-TALL-2
Member of the League for Programming Freedom -- mail [EMAIL PROTECTED]
Project lead for Gimp Print   --http://gimp-print.sourceforge.net

"Linux doesn't dictate how I work, I dictate how Linux works."
--Eric Crampton
___
Gimp-developer mailing list
Gimp-developer@lists.xcf.berkeley.edu
http://lists.xcf.berkeley.edu/mailman/listinfo/gimp-developer


Re: [Gimp-developer] jpeg-exif development summary

2005-01-04 Thread Carol Spears
On Tue, Jan 04, 2005 at 11:00:29AM -0800, William Skaggs wrote:
> Carol wrote:
> > is the "proper EXIF file" requirement that the name ends in .JPG case
> sensitive? 
> 
> Well, that was my point -- we're certainly not going to pay any
> attention to such an absurd specification.
> 
thank you for seeing stuff like this and responding correctly to it.

it should really be a benefit to people who use TheGIMP or the gimp or
GIMP or even just gimp if this software can handle this information 
correctly.

carol

___
Gimp-developer mailing list
Gimp-developer@lists.xcf.berkeley.edu
http://lists.xcf.berkeley.edu/mailman/listinfo/gimp-developer


Re: [Gimp-developer] jpeg-exif development summary

2005-01-04 Thread William Skaggs


Carol wrote:
> is the "proper EXIF file" requirement that the name ends in .JPG case
sensitive? 

Well, that was my point -- we're certainly not going to pay any
attention to such an absurd specification.

Best,
  -- Bill
 

 
__ __ __ __
Sent via the CNPRC Email system at primate.ucdavis.edu


 
   
___
Gimp-developer mailing list
Gimp-developer@lists.xcf.berkeley.edu
http://lists.xcf.berkeley.edu/mailman/listinfo/gimp-developer


Re: [Gimp-developer] jpeg-exif development summary

2005-01-04 Thread Carol Spears
On Tue, Jan 04, 2005 at 09:53:01AM -0800, William Skaggs wrote:
>There is now a file called "exif-handling.txt" in devel-docs that
>summarizes my understanding, based on the exif specifications, of
>how an image editor is supposed to handle the exif data in a file.
>Of course we need not take the specifications as gospel (among
>other things, they specify that a proper EXIF file must have a file
>name in 8.3 format, ending in .JPG!), but they should serve as a
>good default.
> 
is the "proper EXIF file" requirement that the name ends in .JPG case
sensitive?

carol

___
Gimp-developer mailing list
Gimp-developer@lists.xcf.berkeley.edu
http://lists.xcf.berkeley.edu/mailman/listinfo/gimp-developer


[Gimp-developer] jpeg-exif development summary

2005-01-04 Thread William Skaggs
Hi,

I've been working on the jpeg plug-in, and would like to summarize
developments and give a sense of where I would like to take it.
(Please read to the end before deciding to react negatively :-) .)

1) First, because the code size has been exploding recently, it has
   been placed in a separate directory, plug-ins/jpeg, and split up into
   files jpeg.c, jpeg-load.c, jpeg-save.c, and jpeg-exif.c, the last
   of these containing newly written exif-handling code.

2) The jpeg plug-in now pretty closely adheres to the instructions in
   the exif specifications concerning which fields should be altered
   by an image-editing program.  There are a couple of fields
   remaining that I haven't yet figured out how to set properly.

   There is now a file called "exif-handling.txt" in devel-docs that
   summarizes my understanding, based on the exif specifications, of
   how an image editor is supposed to handle the exif data in a file.
   Of course we need not take the specifications as gospel (among
   other things, they specify that a proper EXIF file must have a file
   name in 8.3 format, ending in .JPG!), but they should serve as a
   good default.

3) A few special pieces of information, which may be relevant to many
   different file types, are extracted from the exif data on loading,
   and placed in special parasites.  Currently, the extracted items
   are:

   A) Artist:  Ascii, name of the image creator, in parasite
   "gimp-artist". 

   B) Copyright: Ascii, in "gimp-copyright".  The format of this is a
   bit peculiar -- it consists of two null-terminated strings
   end-to-end, the first containing the *editor copyright*, and the
   second the *photographer copyright*.

   C) User Comment:  in "jpeg-user-comment".  This can contain
   arbitrary binary data, so it must be handled with care.

   D) Image Description: Ascii, in "gimp-comment".

   E) Colorspace:  Can be "sRGB" or "uncalibrated", in
   "gimp-colorspace".

   With the exception of Colorspace, these are not mandatory fields,
   and don't exist in the majority of exif files.  If a field does not
   exist, no parasite is created.  When an image with exif is saved,
   if parasites with these names exist, their contents are inserted
   into the exif data.

   There are also a few exif fields relevant to color management,
   which the current code does not extract.  It will be good to add
   this once we have a general color management solution in place.


4) When the exif specifies that an image is rotated, the plug-in pops
   up a query asking the user whether to rotate it into standard
   alignment.  I thought it was better to ask rather than do it
   automatically, because there are probably a substantial number of
   existing images that have been edited without having their exif
   information properly updated (for example, by earlier versions of
   GIMP).  When an image is saved with exif, the orientation is set to
   "top-left", as the exif specifications require.  (See bug #121810)

Where to go:

1) As Sven has pointed out (and I agree), putting information into a
   set of separate parasites is a Bad Thing To Do.  Instead, the Right
   Thing To Do is to have a single "gimp-metadata" parasite containing
   all of the general metadata, and a set of functions for
   manipulating them.  Once such a thing exists, it should be very
   easy to port the existing code to use it.  Thus, the existing code
   should be thought of as essentially a stub for the correct code.
   In any case, the existing parasites are marked as non-persistent,
   so they will only stick around for the current session, and not be
   saved in xcf files.

2) Exif is not relevant only to jpeg: it can appear in TIFF and Raw
   files, and there are draft standards for including it in PNG and
   other file types.  I would like to extract the generic parts of the
   exif handling code for jpeg-exif.c and place it into a new library
   for generic file-handling code, libgimpfile, which we have
   discussed creating some time ago (see bug #139354).  The file
   jpeg-exif.c will still however need to exist, because the exif
   specifications require some different fields for compressed (jpeg)
   vs uncompressed (tiff) exif files.

3) I have created a very simple parasite browser plug-in, capable of
   listing image parasites, editing their contents if they are ascii,
   creating new ones, loading the contents of the file into one, or
   saving a parasite to a file.  I would like to add this to cvs,
   partly because it is useful, partly for the assistance of
   developers who need to look at parasites, and partly as a
   placeholder for a more powerful metadata plug-in that is hoped to
   appear sometime during the current development cycle.  (See bug
   #61499, #120563, tracking bug #118202, etc.) 


Of course none of this is written in stone.

Best,
  -- Bill
 

 
__ __ __ __
Sent via the CNPRC Email system at primate.ucdav

Re: [Gegl-developer] Re: [Gimp-developer] GEGL development/gimp integration

2005-01-04 Thread Dave Neary

Hi Sven,

Selon Sven Neumann <[EMAIL PROTECTED]>:
> "Hal V. Engel" <[EMAIL PROTECTED]> writes:
> > it appeared to me that this approach had been rejected, or at least
> > discredited, at that time.  At the very least there were sound reasons
> > put forward that called this approach into question and the only
> > arguments on the other side were that it made programming the color
> > management stuff a little easier.  But I am also aware that there were
> > many involved in the earlier thread on this subject that did not seem
> > to think there was an issue with this approach.
>
> I don't think we rejected this part. IIRC we said that it should be
> optional and that we want to allow people to disable color management
> entirely. Anyway, whatever we decide to do is just a matter of user
> interface and doesn't affect the GEGL operators involved.

The short summary of the entire discussion is something like this:

We should allow a colour profile to be associated with an image if possible, and
only apply it (that is, change the colorspace of an image) if explicitly
requested. There will be issues with things which aren't colorspace dependent
(like the color picker) as well as copying and pasting between images, which
will cause problems, but for the moment the damage caused by these would be
less than applying color profiles on load.

However, we should have a default working colourspace, and the user should be
able to convert to that colourspace on load. This should be configurable.

There should also be an option to disable colour management altogether - in
which case, we work in the default colourspace, don't do any conversion at all,
and simply load and save the colour profile as a parasite attached to the image.

My understanding was that the solution which Alastair Robinson was working on
was to have a plug-in to apply a color profile, but also to have the idea of a
(per-image) working colourspace, and a configurable (global) display colour
profile and default working colourspace. That is, every image loaded which
doesn't have an attached profile will be assumed to be in that default
colourspace. If it has an attached profile, the user will be offered the choice
of (1) applying the profile to get to the default colorspace, (2) working in the
embedded profile's colorspace or (3) disabling color management for the image,
in which case we work in the default colorspace, but don't apply the profile.

Again, this is a synthesis of my understanding of that discussion, the archives
are the best reference for what was said, though.

Cheers,
Dave.

--
Dave Neary
Lyon, France
___
Gimp-developer mailing list
Gimp-developer@lists.xcf.berkeley.edu
http://lists.xcf.berkeley.edu/mailman/listinfo/gimp-developer


Re: [Gimp-developer] Color Management was GEGL development/gimp integration

2005-01-04 Thread Sven Neumann
Hi,

"Hal V. Engel" <[EMAIL PROTECTED]> writes:

> I didn't think we were talking about user interface issues.  Rather
> this is about how the image data is handled while it is being
> manipulated by the GIMP.  Specifically should there be a color space
> transformation as part of loading the image and another when the
> image is saved.

Well, at this point we are rather talking about preparing the
framework that we will need to implement color management. How exactly
this is all wired up and presented to the user remains to be seen.
Your feedback will certainly help with this.

> I think I already did but not in great detail.  My main point is that 
> the color space of the users image should ALWAYS be untouched unless 
> the user specifically asks for a transformation.  There are a number 
> of cases where the image must go through a color space transformation 
> but only a limited set of these should affect the actual image data.

If we don't convert the image at load time, all plug-ins that change
colors would have to be aware of the color-space the image is in.
Since this is not the case for the time being, it would probably be a
bad idea to not convert the image. As soon as we go further down the
road and have all plug-ins as GEGL ops, this will change. But for the
time being, I don't see much choice but to convert everything to sRGB.
Note that we are just talking about the first step here. Something
that we can achieve in the next few months, without changing each and
every piece of code in GIMP and it's plug-ins.


Sven
___
Gimp-developer mailing list
Gimp-developer@lists.xcf.berkeley.edu
http://lists.xcf.berkeley.edu/mailman/listinfo/gimp-developer