Getting started as a digiKam developer...

classic Classic list List threaded Threaded
3 messages Options
BC
Reply | Threaded
Open this post in threaded view
|

Getting started as a digiKam developer...

BC
Folks,

Right up front, I'll apologize for the length of this posting,
but I felt the background information was important.

I've been an avid 3D (stereographic) photographer for a couple of
decades now.  For the past couple of years I've been shooting
digital 3D using primarily the Fuji W3 and Panasonic DMC-3D1
cameras. These cameras, as well as the Sony Bloggie 3D, produce
.MPO (Multiple Picture Objects) files.  The specification for
this container file format can be found here:

http://www.cipa.jp/english/hyoujunka/kikaku/pdf/DC-007_E.pdf

An MPO file is designed to contain an arbitrary number of images,
but for these 3D cameras only a simple left/right pair is stored.
(There is another CIPA spec specifically designed for 3D photos,
but 'the big boys', for whatever reason, decided to pick this
more general multiple picture standard instead.  But I digress.)
The MPO format is also recognized and displayed in 3D by almost
all 3D TVs that accept storage media (SDHC or USB drive).

There are a couple of programs that handle the special needs for
editing 3D photos -- i.e. the alignment of the L/R images in
relation to each other, in order to create what is called the
'stereo window'.

http://www.vmresource.com/camera/stereowindow.htm

The best of breed of these programs is currently StereoPhoto
Maker which is a free (as in beer) program that runs only on
Windows and the source is unavailable.

http://stereo.jpn.org/eng/stphmkr/

StereoPhoto Maker is great at what it does, but it doesn't do any
sort of digital asset management, which is what I would like to
have.

I did some research and it appears that digiKam is indeed the
best open source, cross-platform, photo management program
available.  What I would like to do is extend digiKam, most
likely through the use of one or more plugins, to correctly
recognize and handle 3D images in a useful fashion.  The ultimate
goal would be to display the images in 3D on a 3D monitor, and
provide basic editing functions that automatically works
simultaneously on both the left and right images.

So (finally!) my question for this developer community is, what
is the best way for me to get started -- assuming of course that
the answer isn't just "Go away -- we don't want no stink'n 3D
pictures in digiKam!!".

As for my own skill set, while I have not done any significant
programming in C++, or C for that matter, I'm a 30+ year IT
professional with a Master's in CS, and have learned and thrown
away more programming languages and operating systems then I care
to admit to.  Initially I've done enough research to understand
that digiKam is built on top of the Qt framework.  But what I
don't know are basic things like....

* Can relatively painless digiKam development be done with just
   GCC and Emacs on OS X (with the proper libraries installed of
   course), or should I be thinking a Linux distro with KDE, or
   even a Qt IDE?

* Should I be reading books like...

     http://www.amazon.com/dp/0132826453
     http://www.amazon.com/dp/0321635906

   or is this over-kill for developing a digiKam plugin?

Any recommended starting points would be appreciated.

                                                          ...BC

--
-------------------------------[ [hidden email] ]--
  Bill Costa
  1 Leavitt Lane
  UNH IT -- 1st Floor
  University of New Hampshire
  Durham, NH  03824
  USA
  http://pubpages.unh.edu/~wfc
  WORK: +1-603-862-3056
  HOME: +1-603-435-8526
------------------------[ No good deed... Goes unpunished. ]--
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: Getting started as a digiKam developer...

Gilles Caulier-4
Hi Bill, you is of course welcome in digiKam project...


2013/2/26 BC <[hidden email]>
Folks,

Right up front, I'll apologize for the length of this posting,
but I felt the background information was important.

I've been an avid 3D (stereographic) photographer for a couple of
decades now.  For the past couple of years I've been shooting
digital 3D using primarily the Fuji W3 and Panasonic DMC-3D1
cameras. These cameras, as well as the Sony Bloggie 3D, produce
.MPO (Multiple Picture Objects) files.  The specification for
this container file format can be found here:

http://www.cipa.jp/english/hyoujunka/kikaku/pdf/DC-007_E.pdf

An MPO file is designed to contain an arbitrary number of images,
but for these 3D cameras only a simple left/right pair is stored.
(There is another CIPA spec specifically designed for 3D photos,
but 'the big boys', for whatever reason, decided to pick this
more general multiple picture standard instead.  But I digress.)
The MPO format is also recognized and displayed in 3D by almost
all 3D TVs that accept storage media (SDHC or USB drive).

There are a couple of programs that handle the special needs for
editing 3D photos -- i.e. the alignment of the L/R images in
relation to each other, in order to create what is called the
'stereo window'.

http://www.vmresource.com/camera/stereowindow.htm

The best of breed of these programs is currently StereoPhoto
Maker which is a free (as in beer) program that runs only on
Windows and the source is unavailable.

http://stereo.jpn.org/eng/stphmkr/

StereoPhoto Maker is great at what it does, but it doesn't do any
sort of digital asset management, which is what I would like to
have.

I did some research and it appears that digiKam is indeed the
best open source, cross-platform, photo management program
available.  What I would like to do is extend digiKam, most
likely through the use of one or more plugins, to correctly
recognize and handle 3D images in a useful fashion.  The ultimate
goal would be to display the images in 3D on a 3D monitor, and
provide basic editing functions that automatically works
simultaneously on both the left and right images.

There is many way to add MPO support in digiKam :

1/ Support MPO thumbnail and preview :This can be done through KDE imgio component which is used to handle quickly all image formats as well using a QImage container.


2/ Support MPO metadata to register info in digiKam database. A simple improvement of Exiv2 C++ shared lib used by digiKam to handle photo metadata is enough.


Exiv2 is a low levels library. It do not depand of Qt and KDE. digiKam has a dedicated interface for that :

3/ Generate stereo image using standard images, in batch. A kipi-plugins must be done for that. Plugins are not only visible through digiKam, but also on other KDE image management program, as Gwenview and KPhotoAlbum.


Kipi-plugins is based on KDE and Qt api.


4/ Support MPO editing in digiKam image editor : This is the most complicated job. This require to write a dedicated digiKam image loader with full read/write support. But as Image Editor do not support multiple page image container, a new image data storage must be implemented in digiKam core and image editor must be improved to support editing of a dedicated image from container (image editor only support flat and single image)
 


So (finally!) my question for this developer community is, what
is the best way for me to get started -- assuming of course that
the answer isn't just "Go away -- we don't want no stink'n 3D
pictures in digiKam!!".

In order that i listed below
 

As for my own skill set, while I have not done any significant
programming in C++, or C for that matter, I'm a 30+ year IT
professional with a Master's in CS, and have learned and thrown
away more programming languages and operating systems then I care
to admit to.  Initially I've done enough research to understand
that digiKam is built on top of the Qt framework.  But what I
don't know are basic things like....

* Can relatively painless digiKam development be done with just
  GCC and Emacs on OS X (with the proper libraries installed of
  course), or should I be thinking a Linux distro with KDE, or
  even a Qt IDE?

* Should I be reading books like...

    http://www.amazon.com/dp/0132826453
    http://www.amazon.com/dp/0321635906

This one is better and more accessible about Qt :


And this one about KDE :




  or is this over-kill for developing a digiKam plugin?

The first is to Know Qt, KDE, and other stuff around C++. Go to :


and look into "Developer Platform" section...

 After that, all developers use git repository to checkout code, patch, compile and test. Only change done against git/master are managed by team...

Best

Gilles Caulier

_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
BC
Reply | Threaded
Open this post in threaded view
|

Re: Getting started as a digiKam developer...

BC
Gilles,

You recently wrote, in part...

> Hi Bill, you is of course welcome in digiKam project...

Well I couldn't ask for a better welcome.  What you provided was
*exactly* the kind of getting started information I was hoping
for.  I'm looking forward to getting started.  Thank you for
taking the time to reply with so much useful information and
encouragement.

                                                          ...BC

--
-------------------------------[ [hidden email] ]--
  Bill Costa
  1 Leavitt Lane
  UNH IT -- 1st Floor
  University of New Hampshire
  Durham, NH  03824
  USA
  http://pubpages.unh.edu/~wfc
  WORK: +1-603-862-3056
  HOME: +1-603-435-8526
------------------------[ No good deed... Goes unpunished. ]--
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel