Download :: Register :: Top
Duplicate Picture Finder

Duplicate Picture Finder is a utility for scanning your computer and finding duplicate copies of your pictures. Duplicate Picture Finder will find pictures that are an exact copy of each other but also can compare pictures by content and give a match for pictures that have different resolutions or eg. there's a logo on the picture, etc., but contain the same or similar graphic.

  • Find duplicate pictures that are exact copy of each other
  • Find duplicate pictures that have the same content
  • Matching pictures are displayed in groups
  • Preview matching pictures and their EXIF information
  • Select pictures by criteria and delete or move pictures that are not needed
  • Multi threaded processing of the images
  • Optionally use OpenCL acceleration for the compare stage (very fast)
  • Generate an XML file from the matches list
  • Command line mode for automated use
  • Full unicode support
Unregistered version is a fully functional 25 day trial version with a 1000 picture file processing limit. If you like this software please register.

If you are looking for an app. to find similar pictures on your computer from a reference one, check Similar Picture Finder.

There is also a Duplicate MP4 Video & Audio Finder for video files and Duplicate Audio Finder free to try.

Supported picture file formats by Duplicate Picture Finder:
  • JPG images (*.jpg, *.jpeg)
  • JPEG2000 images (*.jp2, *.j2k, *.jpc)
  • TIFF images (*.tif, *.tiff)
  • GFI fax images (*.fax)
  • SGI images (*.bw, *.rgb, *.rgba, *.sgi)
  • Autodesk images files (*.cel, *.pic) old style only
  • Truevision images (*.tga, *.vst, *.icb, *.vda, *.win)
  • ZSoft Paintbrush images (*.pcx, *.pcc)
  • Word 5.x screen capture files (*.scr)
  • Kodak Photo-CD images (*.pcd)
  • Portable pixel/gray map images (*.ppm, *.pgm, *.pbm)
  • Dr. Halo images (*.cut, *.pal)
  • CompuServe images (*.gif)
  • SGI Wavefront images (*.rla, *.rpf)
  • Standard Windows bitmap images (*.bmp, *.rle, *.dib),
  • Photoshop images (*.psd, *.pdd)
  • Paintshop Pro images (*.psp)
  • Portable network graphic images (*.png)
  • Amiga (*.iff, *.lbm)
  • DirectDraw Surface (*.dds)
  • Raw Fax format CCITT G3 (*.g3)
  • High Dynamic Range (*.hdr)
  • JPEG Network Graphics (*.jng)
  • Commodore 64 Koala format (*.koa)
  • Multiple Network Graphics (*.mng)
  • Sun Rasterfile (*.ras)
  • Truevision Targa files (*.tga, *.targa)
  • Wireless Bitmap (*.wbmp)
  • X11 Bitmap Format (*.xbm)
  • X11 Pixmap Format (*.xpm)

  • Windows Vista/Windows 7/Windows 8/Windows 10

Notes on using OpenCL
  • Using OpenCL for the compare stage can greatly increase processing speed, an RTX 2060 is around 6x faster then an Intel Core i7 8700K (6 cores).
    But there is one coveat, Windows by default resets the GFX card if it is not responding for 2 seconds (TDR). Duplicate Picture Finder splits the OpenCL work into smaller chunks, it seems working fine with an RTX 2060, so a faster device will probably not cause a reset, but slower GFX card might. Please see the possible solution if you get a reset ("Display driver stopped responding and has recovered."): Working around TDR in Windows for a better GPU computing experience.
  • Also the OpenCL device should have enough memory to hold the data to compare.
  • With defult settings, 75x75 pixels, 10 000 pictures take around 250 MB. To calculate the memory requirement use: picture count * width pixels * height pixels * 4 = needed memory in bytes. The needed memory grows linearly with picture count.
  • Another chunk of memory is needed additionally for the result matrix, 10 000 pictures need around 100 MB. The formula is: picture count * picture count = needed memory in bytes. The needed memory grows exponentially as picture count increases.
  • Low memory mode splits the processing into smaller chunks, it's a little bit slower, but it's usable with more then 25-50 000 pictures. Use the formula above to calculate whether your OpenCL device has enough memory to hold a single result memory chunk. If not, activate this option, it has a lot less memory requirement. Low memory mode is also usable with slower OpenCL devices if there is a TDR.
  • Do not set your CPU as the OpenCL device, it will be slower than native CPU processing.

Command line parameters
  • --folder "PATH"

    The search folder, eg: --folder "C:\"

  • --xml "FILENAME.XML"

    Generate an XML search results file, eg.: --xml "C:\Results.xml"

  • --selectby=filesize

    Select pictures in every group that are less bytes than the largest.

  • --selectby=dimensions

    Select pictures in every group that are smaller than the largest.

  • --selectby=earlierdate

    Select pictures in every group that have a file date time earlier than the newest.

  • --selectby=earlierexifdate

    Select pictures in every group that have EXIF date time picture is taken earlier than the newest.

  • --leave1

    Select pictures in every group that have more than 1 pictures, leave only 1 picture unselected. This will be applyed AFTER the --selectby filter. Using this flag results that all duplicates will be selected, if there are exactly the same duplicates, this flag can be used to select them too and leave 1 picture only.

  • --delete

    Perform a delete on the selected pictures, to be used with one of the "--selectby" options.

  • --moveto "PATH"

    Perform a file move on the selected pictures, to be used with one of the "--selectby" options. eg: --moveto "C:\Duplicates\"

  • --nocountwarning

    Do not pop-up a "too many pictures files detected" warning dialog.

  • --quit

    Quit the application after finished the specified tasks.
Example, move all duplicates that have smaller file size and quit:

DuplicatePictureFinder.exe --folder "C:\My pictures\" --selectby=filesize --moveto "C:\Duplicates\" --quit

  • The --selectby filters will be applyed in the order specified in the command line. Use --leave1 always as the last flag as after it the other flags will not have any effect as the groups will contain only one picture.
  • --delete and --moveto can not be used at the same time.
  • If --quit is specified always add at least --xml or one --selectby filter or --leave1 flag and either --delete or --moveto else the app will quit without any use after processing.