Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Code implementaiton #24

Closed
keybraker opened this issue Aug 13, 2017 · 7 comments
Closed

Code implementaiton #24

keybraker opened this issue Aug 13, 2017 · 7 comments

Comments

@keybraker
Copy link

I am creating a photo library organizer and would like to expand it and support all media files.
Your project is basically a miracle and would like to implement it in my code.

Is there a way to do so and implement your project to mine ?

Thank you.

@clanmills
Copy link
Collaborator

I really want to keep Exiv2 out of the development of applications. Exiv2 is enabling technology. The effort to maintain and develop the library keeps me very busy. Getting involved with a photo library organiser would require lots of UI work for which I don't have time. There is a sample command-line program contrib/organize/organize.cpp to organise photos into different directories.

However, you are very welcome to use Exiv2 in your project. Many projects use Exiv2 including Shotwell, GwenView, darktable and digiKam. So, you're in good company. Be sure to research these other applications before starting to "roll your own". If you have ideas about features you'd like to see in a photo library organiser, please consider contributing to an existing project.

@keybraker
Copy link
Author

Thank you very much !
I will try my best for i want to make just a simple organizer to manage my photos by date.
Not anything fancy :)

@clanmills
Copy link
Collaborator

I started a project like that on Windows in 2003. I'm still working on it!

It's easy to start with something to show photos from a disk folder/directory. Then you think "Ah wouldn't it be cool to generate HTML from those photos.". Or "Oh, wouldn't it be cool to GeoTag the photos using a GPX file.". And you'll be there forever.

I stopped bothering with my photo-organiser when Picasa arrived (about 2006 or so). Google have now terminated Picasa development and I'm wondering what to do. I'm not tempted to start writing my own.

@keybraker
Copy link
Author

I tried all the programs and they are super buggy. And don't do what I want.
I will create a basic program, to just organize your photos, and call it a day.
I wont make more than I can eat ...

@keybraker
Copy link
Author

My family and I have a huge unsorted library and multiple duplicates and I just want a fast project to do it. I really believe in what you say and I will always think about adding something new. I don't find the cloud based options bad, but they are not my cap of tea. I prefer local databases so I will create a program to manage my photos :) Thank you very much, I will probably use exiv2 to do all the actions, so I will call it from within the project.

Thank you again for a great project !

@clanmills
Copy link
Collaborator

Have a look at contrib/organize/organize.cpp. It's probably quite good. I've never used it, although I've dealt with a couple or queries from users about building it on various platforms.

In you're looking for duplicates, think about a script. Exiv2 can read about 1000 images/second on my 4 year old MacBook Pro. Search for the field DateTimeOriginal:

792 rmills@rmillsmbp:~/Pictures/2017 $ cp  cp Yorkshire/DSC_5188.jpg AlisonBirthday/
793 rmills@rmillsmbp:~/Pictures/2017 $ find . -iname "*.jpg" | xargs exiv2 -pa --grep DateTimeOriginal/i | sort -i -k 5,10  --unique        > /tmp/unique.txt
794 rmills@rmillsmbp:~/Pictures/2017 $ find . -iname "*.jpg" | xargs exiv2 -pa --grep DateTimeOriginal/i | sort -i -k 5,10                  > /tmp/all.txt
795 rmills@rmillsmbp:~/Pictures/2017 $ diff /tmp/all.txt /tmp/unique.txt
338d337
< ./HDR/dsc_3996.jpg    Exif.Photo.DateTimeOriginal                  Ascii      20  2017:05:14 11:39:24
1458d1456
< ./Yorkshire/DSC_5176.jpg  Exif.Photo.DateTimeOriginal                  Ascii      20  2017:08:01 12:51:37
1471d1468
< ./Yorkshire/DSC_5188.jpg  Exif.Photo.DateTimeOriginal                  Ascii      20  2017:08:01 13:11:25
803 rmills@rmillsmbp:~/Pictures/2017 $ 

This magic runs on my machine in seconds. Once you know the duplicates, you could convert all but one to a link to save storage.

As always, please back up your library before starting to mess with your valuable images.

@keybraker
Copy link
Author

I managed to cleanup my library by calling a system("cp dir dir") function which doesn't copy already duplicate files :).
The only data I need for my project is basically DateTimeOriginal and this is the implementation I want to do, because now I only support jpeg photos.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants