Re: [Gimp-developer] EXIF and Gimp parasites (was: Current work)

2001-12-04 Thread Nick Lamb

Maybe I said this before, I can't remember, but the standard for trying
to describe generic metadata is Dublin Core. So before burning too much
midnight oil trying to organise metadata into neat categories at least
type Dublin Core into a search engine. Even if one decided that DC
itself was inappropriate for Gimp it does slice the cake up very neatly
and you can re-use that hard work :)

e.g. DC.Title = Wilber.GNU DC.Creator = [EMAIL PROTECTED]
 DC.Contributor = [EMAIL PROTECTED]; [EMAIL PROTECTED]
 DC.Date = 2001-10-04
 DC.Format = image/png; 400x600
 DC.Subject = Unholy alliance; RPC; Image manipulation
 DC.Publisher = GNOME Press

Oh, and if someone actually defines some metadata standards for Gimp
above and beyond those already described in the documentation for
parasites then I will do what I can to help implement them for PNG,
TIFF, PCX and any other file plugins I've been maintaining in the past.

BUT we need a metadata editor, just a simple little thing with N text
entry boxes that lets you change the metadata while changing the data
(as one would expect) rather than hacking it into each and every file
save dialog. Just IMO of course.

Maybe I can find some time at the weekend to get an alpha GTK+ version
and update this Red Hat system to run 1.3 CVS Gimp.

Nick.
___
Gimp-developer mailing list
[EMAIL PROTECTED]
http://lists.xcf.berkeley.edu/mailman/listinfo/gimp-developer



Re: [Gimp-developer] EXIF and Gimp parasites (was: Current work)

2001-12-04 Thread Raphael Quinet

On Tue, 04 Dec 2001, Nick Lamb wrote:
  Maybe I said this before, I can't remember, but the standard for trying
  to describe generic metadata is Dublin Core. So before burning too much
  midnight oil trying to organise metadata into neat categories at least
  type Dublin Core into a search engine. Even if one decided that DC
  itself was inappropriate for Gimp it does slice the cake up very neatly
  and you can re-use that hard work :)

I am quite familiar with Dublin Core because a part of my work
involves dealing with semantic web and other funny things like
CC/PP, UAProf, UDDI, WSDL, ...  But this is a solution to the wrong
problem.  My goal is not to invent new ways to organize the metadata.
I simply want to be able to parse, modify and save the metadata that
is already defined in some standards such as EXIF and TIFF/EP.

If recommend that you have a quick look at the document describing how
EXIF data could be stored in PNG files.  This document is available
from http://pmt.sourceforge.net/exif/drafts/d020.html.  It already
contains a long list of tags that should be supported.

  Oh, and if someone actually defines some metadata standards for Gimp
  above and beyond those already described in the documentation for
  parasites then I will do what I can to help implement them for PNG,
  TIFF, PCX and any other file plugins I've been maintaining in the past.

Nice to know...  ;-)

  BUT we need a metadata editor, just a simple little thing with N text
  entry boxes that lets you change the metadata while changing the data
  (as one would expect) rather than hacking it into each and every file
  save dialog. Just IMO of course.

This is exactly what is proposed in bug #61499.  Take a look at this:
   http://bugzilla.gnome.org/show_bug.cgi?id=61499
See also bug #65181, which includes a small screenshot from PSP.
It would be nice to have a plug-in that attaches itself to the menu
entry Image-File-Properties and allows the user to view and edit
the metadata in a user-friendly way.

-Raphael

___
Gimp-developer mailing list
[EMAIL PROTECTED]
http://lists.xcf.berkeley.edu/mailman/listinfo/gimp-developer



Re: [Gimp-developer] EXIF and Gimp parasites (was: Current work)

2001-12-04 Thread Raphael Quinet

On Tue, 04 Dec 2001, Dave Neary wrote:
  On Tue, Dec 04, 2001 at 03:32:18PM +0100, Raphael Quinet wrote:
   Some time ago, I submitted two bug reports about this:
   http://bugzilla.gnome.org/show_bug.cgi?id=56443 (EXIF and metadata)
   http://bugzilla.gnome.org/show_bug.cgi?id=61499 (editing metadata)
 
  I saw and read these (and the standards you pointed to), and
  understood them to mean I've found this information, but don't
  have the time to work on them. That, and the facyt that the TODO
  item was unassigned, convinced me that ti was up for grabs :)

That's right.  Since I did not (and still do not) know how much time I
will be able to spend on that, I did not want to have this task
officially assigned to me because that could create expectations
that I might not be able to fulfill.  But I started working on it
anyway.

   As I mentioned in bug #56443, I suggest that you read the discussion
   about EXIF on the PNG and MNG tools page (http://pmt.sourceforge.net/)
   The Rationale section of the proposal explains why the metadata
   should not be stored as one big chunk, but instead should be split in
   individual values and each value should be interpreted, converted or
   discarded as appropriate.  [...]
 
  That has been thought of, and I don't think that one metadata
  structure rules that out. In a way, it's just one bucket in which
  we store the various pieces of information. Of course each of
  them would be individually modifiable, and would be modified as a
  matter of course during the manipulation of the image (a good
  example would be the width  height parameters).

If there is only one metadata structure, then the Gimp and the
plug-ins will have to use the same structure.  I would like to avoid
that and decouple the plug-ins from the core as much as possible.
This means that it should be possible to run a plug-in that supports
new metadata tags with a version of the Gimp that uses an older
version of the structure.  If the new tag is present in the image
file, then the plug-in should be able to load it from the file, attach
it to the image and later save it to the file even if the Gimp does
not know what it is.  Or vice-versa: it should be possible to use a
new version of the Gimp without having to recompile or relink the
plug-ins.  Using parasites has the advantage that you do not need to
modify anything in the core: it only has to be done in the plug-ins
(following the documentation that would be distributed with the Gimp).

   That's why I think that the first thing to do would be to define a
   list of standard image parasites in the Gimp, with precise
   definitions of the data types and constraints (so that's why I started
   studying the specs of the various image formats).  Once this list is
   established and approved by everybody, this can be implemented in the
   load/save plug-ins.  There is already a document in the source tree
   describing some parasites (devel-docs/parasites.txt) so we could
   expand it and add more information about the constraints (valid ranges
   and so on) for each parasite.
 
  I have a problem with creating potentially dozens of parasites and
  attaching them to images (possibly on a case by case basis, with some
  parasites not getting attached for some image types), when we could
  attach one object instead.

My goal is to allow the Gimp to attach the appropriate metadata to the
files that have a format that supports this information -- not more,
not less.  This means that GIF will only include a 7-bit ASCII comment
limited to chunks of 255 bytes (without saying it if is a copyright
message or document name or author name or whatever), while JPEG/EXIF
will have many more features but maybe not the same as the ones
supported by TIFF/EP or the proposed extensions to PNG.  I do not want
to attach extra information to the files if this information was not
planned in the specification for that file format.  If the spec
includes only a limited number of fields, then the Gimp should only
save those and drop the other ones because other programs reading or
writing these images would ignore or even choke on the non-standard
information added by the Gimp.  So I do not want to be able to hide
EXIF information in a TGA file using extension fields (although this
would be possible).  I simply want to be able to support the native
metadata for each file format in the best possible way so that the
Gimp could easily exchange this information with other programs.

This means that we will loose some information when converting from
one file format to another, but this is IMHO a better solution.
Think about what would happen if the Gimp would include some
additional metadata in a proprietary field added to some image format.
If you modify and then save this file using another program, you will
in the best case loose that information and in the worst case the
program will copy this unknown metadata back into the new file and it
will not match the new contents 

Re: [Gimp-developer] EXIF and Gimp parasites (was: Current work)

2001-12-04 Thread David Neary

On Tue, Dec 04, 2001 at 07:07:23PM +0100, Raphael Quinet wrote:
 On Tue, 04 Dec 2001, Dave Neary wrote:
  That has been thought of, and I don't think that one metadata
  structure rules that out. In a way, it's just one bucket in which
  we store the various pieces of information. Of course each of
  them would be individually modifiable, and would be modified as a
  matter of course during the manipulation of the image (a good
  example would be the width  height parameters).
 
 If there is only one metadata structure, then the Gimp and the
 plug-ins will have to use the same structure.  I would like to avoid
 that and decouple the plug-ins from the core as much as possible.

That was my general idea. I can see that it has disadvantages (as
you mention, back-compatibility and needing to do lots of stuff
in the core are two). That parasites are supported in XCF is
something of a red herring - as Sven's been at pains to point
out, xcf is due for a spring clean to address some of the
problems that are showing up with it, and in my vision of things
metadata could be saved separate from an image, if we wanted to
(similar to a thumbnail, as I said).

This means that even if an image format doesn't support some of
the data tags which are in our metadata object, the option will
be there to save the metadata and retrieve it distinct from the
image.

 This means that it should be possible to run a plug-in that supports
 new metadata tags with a version of the Gimp that uses an older
 version of the structure.  If the new tag is present in the image
 file, then the plug-in should be able to load it from the file, attach
 it to the image and later save it to the file even if the Gimp does
 not know what it is.  Or vice-versa: it should be possible to use a
 new version of the Gimp without having to recompile or relink the
 plug-ins.  Using parasites has the advantage that you do not need to
 modify anything in the core: it only has to be done in the plug-ins
 (following the documentation that would be distributed with the Gimp).

Here's where I run into a bit of trouble :) Under my scheme we'd
have to extend the metadata object. But that would be OK. We
I believe that this would happen rarely enough that our metadata
object could handle the change.

 My goal is to allow the Gimp to attach the appropriate metadata to the
 files that have a format that supports this information -- not more,
 not less.

My goal is to have a generic set of metadata which are somewhat
modifiable by the user, and parts of which will be saved in image 
formats which support those parts (to use your example, we would
not try to put any more than 255 bytes of ascii info into a gif.
The rest of the metadata which we have about that image would not
be completely ignored - the user would have the option of saving
the metadata object in a well-defined format, and keeping all of
the information he'd associated with the object. The image is
still completely standard compliant, and the user has access to
the data he created with the image if he wants it. 

 This means that we will loose some information when converting from
 one file format to another, but this is IMHO a better solution.
 Think about what would happen if the Gimp would include some
 additional metadata in a proprietary field added to some image format.
 If you modify and then save this file using another program, you will
 in the best case loose that information and in the worst case the
 program will copy this unknown metadata back into the new file and it
 will not match the new contents of the file.

Sure. But if you read an exif, and get an almost-full metadata
object, and then you save a gif, youy would still have the option
of saving that data separate to the image. Or even editting it,
before saving. With parasites (if I understand correctly), you'd
be throwing that info away.

 See my comment above about decoupling the core and the plug-ins.
 Besides, the parasites are not that bad.  They are reasonably compact
 (in memory and in the XCF file) and easy to access from a plug-in.  I
 think that it is nice for a plug-in to be able to fetch or set only
 the gimp-comment parasite without having to know anything about the
 other parasites that may be set on the image.

My issue is not with parasites in principle, but for (say) exif,
which supports about 50 meaningful data fields, that's an awful
lot of parasites. I can see that making plug-in coding a lot
hairier.

 I favour the former, but this is probably because we have different
 goals in mind about this metadata:
 - I would like to make sure that the Gimp can exchange as much
   information as possible with other programs (using the metadata that
   is supported natively by each file format -- maybe at the cost of
   loosing some information).

This is a common goal. I believe we should store a superset of
the data needed by each format, and let the plug-ins choose which
data to write and/or ignore.

 - If I have understood 

Re: [Gimp-developer] EXIF and Gimp parasites (was: Current work)

2001-12-04 Thread pcg

On Tue, Dec 04, 2001 at 10:36:50PM +0100, Sven Neumann [EMAIL PROTECTED] wrote:
 The possibility to save the data indepently of the image format in a
 separate file a good idea but doesn't speak against using parasites
 for metadata.

In fact, it's trivial to implement another Load/Save-Plug-In that
implements just this. It could also trivially define a dialog to edit this
parasite-metadata.

The problem is entirely mapping metadata to parasites, just as it would be
a problem mapping it to a non-standard API.

That's what should discussed.

 we already have a rudimentary parasite editor.

If you talk about the perl version - it was never finished because
obviously nobody uses it for anything else than debugging.

-- 
  -==- |
  ==-- _   |
  ---==---(_)__  __   __   Marc Lehmann  +--
  --==---/ / _ \/ // /\ \/ /   [EMAIL PROTECTED]  |e|
  -=/_/_//_/\_,_/ /_/\_\   XX11-RIPE --+
The choice of a GNU generation   |
 |
___
Gimp-developer mailing list
[EMAIL PROTECTED]
http://lists.xcf.berkeley.edu/mailman/listinfo/gimp-developer