Sort of spamish, but I found myself with the same problem a few monts ago, and I wrote a small utility that does just that:
https://github.com/jesjimher/imgdupes
It's a python script that scans a directory tree looking for duplicates. Its syntax is intentionally similar to fdupes, with the difference that imgdupes ignores all metadata and analyzes only the image data chunk of a JPEG file. This means that two different versions of the same image, with different tags, rotation flags, dates, etc., will be reported as duplicates even if physical files are different (and thus not detected as duplicates by fdupes/shotwell).
It was recently renamed to jpegdupes, and is now on Pypi repos, so scanning a tree for duplicated images might be done like this:
sudo pip install jpegdupes
jpegdupes -d ~/Photos/
(or whatever your path is)
It would look for JPEGs which are actually the same picture (differing only in metadata), and would interactively show differences and ask for which version to keep.
Hope it helps.
I believe it is more advanced than simple names, I just tried. In fact it would seem that it doesn't base it on name at all.
So I just created the following:
TestDir
│
├─ blue.png #Blue A4 page
├─ blue2.png #Blue A4 page
├─ green.png #Blue A4 page
├─ red.png #Yellow A4 page
├─ yellow.png #Yellow A4 page
├─ yellow2.png #Yellow A4 page
└ TestDir2
│
├─ yellow.png #Blue A4 page
└─ yellow.png #Blue A4 page
Imported the folder TestDir (which imports from any subdirectories too). This was the notice:
6 duplicate photos were not imported:
/home/tim/Pictures/Test/red.png
/home/tim/Pictures/Test/yellow2.png
/home/tim/Pictures/Test/green.png
/home/tim/Pictures/Test/blue2.png
(and 2 more)
2 photos successfully imported.
The two it had imported were blue.png and yellow.png. This is because they were created first (it chooses the oldest if there are duplicates).
This was confirmed by the next test:
TestDir
│
├─ blue.png #Blue A4 page
├─ blue2.png #Blue A4 page
├─ green.png #Blue A4 page (sorry OCD people)
├─ red.png #Yellow A4 page (sorry OCD people)
├─ yellow.png #Yellow A4 page
├─ yellow2.png #Yellow A4 page
├─ pink2.png #Pink A4 page
├─ pink.png #Pink A4 page
└ TestDir2
│
├─ yellow.png #Blue A4 page
└─ yellow.png #Blue A4 page
pink2.png
and pink.png
have been created. pink2.png
was created first, then pink.png
8 duplicate photos were not imported:
/home/tim/Pictures/Test/red.png
/home/tim/Pictures/Test/yellow2.png
/home/tim/Pictures/Test/green.png
/home/tim/Pictures/Test/blue2.png
(and 4 more)
3 photos successfully imported.
The successful imported ones were blue.png
,yellow.png
and pink2.png
.
Because of that I assume it uses a hashing algorithm.
It is accurate enough that changing just 1 pixel of colour from green to yellow on an A4 page caused it to not detect as a duplicate. Pretty accurate then!
In fact, I just found this post here:
Once this bug is fixed, Shotwell will use (exclusively) a full MD5
hash of the file to perform duplicate checking, which is a pretty
darn accurate way to find duplicates.
In fact in the source code, at line 732 is this: Kudos @ Jeremie Miserez
imported_full_md5_table.has_key(prepared_file.full_md5)) {
Sounds like it uses a MD5 hash!
Shapes for directory tree from here
My pronouns are He / Him
Best Answer
First, here are Shotwell's help pages for Publishing to the web , and for Exporting photos. You would be publishing images (and uploading over the Internet) if your target is a service like Facebook, or Picasa, or Flickr, something like that. You would be exporting images if your target is another folder or local drive or a USB key, for example. Since I'm unclear on exactly what you need I'll explain several options.
Exporting
If you just need to choose a set of images already in Shotwell, and you can bring them to class on a memory card or burned CD, or even use a network drive at the school, then use the Export function. Plus, if you are shooting RAW or some other format, and need to convert to JPEG before uploading, you are going to use the Export function first, even if you are uploading to a web service later. Exporting can both move files and convert image formats, so you may need both functionalities.
Publishing
Shotwell can currently Publish to the following online services: Facebook, Flickr, Picasa Web Albums, Piwigo, Tumblr, Yandex.Fotki, and YouTube. If your target isn't one of these your only option is to Export, explained above. If you are using one of these services follow the steps below.
If you run in to problems just edit your question with which step you are stuck at, so we can edit the answer and make it better.
Other options
Also, if you want a really simple option you can just put the pictures for your homework assignment in your Ubuntu One folder at which point they are automatically uploaded to your Ubuntu One cloud folder (assuming you have configured the service). Dropbox is another good choice, with the added benefit of having a public photo gallery that you could use to show off the photos.