Hot answers tagged

44

It's a little easier than jrista's method. You still make your edits to a single file, but then on the lighttable there's a "History Stack" section which allows you to copy the history stack of an image (or any parts thereof). And then you can select multiple images and paste the history stack onto them. Update: I understand better jrista's mention of ...


32

I would recommend any of the applications from this list at JPEGclub.org, which develops and maintains software for the Independent JPEG Group. They have a free piece of code called jpegtran which can do some basic transformations (like rotation) without re-encoding the image. Rotating images the "naive" way (rendering to a bitmap, reorienting the bitmap, ...


17

If you are talking about JPEG files, then the utility jpeginfo is exactly what you're looking for. It can check files for different types of JPEG errors and corruption and either return an error code (the most useful thing for scripting), or just delete files with errors. I use this as part of my initial file transfer, to make sure everything copied okay ...


15

Here's a solution using python and opencv: This will crop all the faces it finds in the jpeg photos in whatever folder you run it in, with the padding specified by the left, right, top, bottom variables: import cv2 import sys import glob cascPath = "haarcascade_frontalface_default.xml" # Create the haar cascade faceCascade = cv2.CascadeClassifier(...


9

The only way I know of to apply batch edits to multiple files in Darktable is to generate a history stack of the edits you wish to apply on one photo, export that history stack as a "Style", then apply that style on export to all the other photos. Not sure that this is what you are looking for...but I'm an infrequent user of Darktable, and that was the best ...


9

You could use ImageMagick with the rotate option: convert image.jpg -rotate 180 result.jpg You should be able to apply this command to multiple files, depending on your environment.


9

On Windows you can do it without any extra software in TWO operations. Select the files you want rotated in file Explorer, right click and do "rotate right" (or left) twice. It will be done losslessly if the image permits (eg, the dimensions are not "funny").


8

Here is a modified version of Tomy's Python script. Differences: multiple raw extensions allowed remove jpg only if the pairs are in the same folder (avoid accidental removal of a jpg named like a raw file in an other folder) case insensitive #!/usr/bin/env python # Script: remove_jpg_if_raw_exists.py # # Description: This script looks in all sub ...


8

There's already a similar question on the ExifTool forums. It can be done using two sequential ExifTool commands. First, make sure all the date to the same exiftool -datetimeoriginal="2015:02:22 00:00:00" DIR And then increment the time on each exiftool '-datetimeoriginal+<0:0:${filesequence}0' DIR


8

If you find that hitting the "auto" button in the GIMP levels dialog generally does the thing you're looking for, you can batch that as described here. Specifically, you would put this script: (define (batch-auto-levels pattern) (let* ((filelist (cadr (file-glob pattern 1)))) (while (not (null? filelist)) (let* ((filename (car filelist)) ...


7

Try adding the -r option to the command, which tells exiftool to scan the directories recursively, starting from the top folder specified as an absolute path. Use the -ext option to specify the extension of files to operate on. Example: exiftool -csv -CreateDate -Keywords -r -ext jpg /absolute/path/to/top/folder > data.csv


6

Here's a Python script that moves JPG files when no corresponding RAW file exists. Useful on Mac OS X! import os import shutil raw_ext = '.CR2' jpg_ext = '.JPG' destination = '/Users/JohnSmith/Desktop/jpgs/' for filename in os.listdir('.'): (shortname, extension) = os.path.splitext(filename) if extension == raw_ext: if os.path.isfile(...


6

I think I have a good workaround. Of course a plugin for this task would still be the best. I did this with Lightroom 5. Add the photos you want to convert to the (empty!) Quick Collection and select them all. You could also just select the photos without adding them to any collection. But then it's VERY important that you don't (accidently) unselect any of ...


6

You can do this fairly easily with the cross-platform free software ExifTool. It's even in in the FAQ: The -csv (comma separated values) option solves this dilemma by pre-extracting information from all input files, then producing a sorted list of available tag names as the first row of the output, and organizing the information into columns for ...


6

A useful feature which I have only just found is the ability to copy and paste with short cut keys as shown here darktable manual. I've spent too long right - clicking all over the interface for a context menu whist working on auto pilot.... ctrl + c - copy history stack ctrl + v - paste history stack ctrl + shift + c - copy partial history stack (a ...


6

I don't know if there is any way to do mass masking, especially with an inconsistent background. I would suggest a masking tool like Topaz Remask. It would make pretty quick work of masking for these types of photos. I was able to to create a mask for the sample image in about 1 minute with Remask. If I was using a stylus, I probably could have saved a ...


6

Consider using ImageMagick or GraphicsMagick. A simple mogrify -format png *.jpg or, if you like uppercase extensions, mogrify -format PNG *.JPG will convert all of the JPG files in a directory (folder) to PNG at one fell swoop. BTW, expect your PNG files to be 10 times the size of the JPGs if they are photos.


5

Command line solution In your terminal try to run this command: sips -s format tiff /Path/To/Image/bla.CR2 --out bla.tiff Now you can easily create a Shell Script and do your batch conversion. Credits to this solution goes to this comment. Automator solution I came up with another solution that utilize the very nice feature of Mac OS X: Automator! ...


5

I think another way of doing this in addition to Kyle's answer is the darktable command line interface. There two main options: darktable-cli <input> <output> This will take the input image, look for the XMP file associated with it, process it at maximal resolution and write the output to output, trying to guess the output format from the ...


5

Within Digital Photo Professional navigate to the folder containing your CR2 files. From the top menu click File > Batch Process... The "Batch settings" window will open. To choose where the output jpeg files will be saved click the "Browse..." button in the "Save folder" section. The "Browse For Folder" window will open, click the desired output folder to ...


5

Open one picture in Develop mode Set the (relative) adjustment you want to one picture. Ctrl-Shift-C (Copy Settings) and check at least White Balance. Return to Grid view and select multiple pictures to which you want to apply the same relative adjustment. Press Ctrl-Shift-V (Paste Settings). Now all select images will have the relative White Balance ...


5

Thanks to @Ryan's answer which I adapted 5 years ago, I automated most of my first desk job. It's now the open source package autocrop on PyPI, and can be used from your terminal, or through a Python API. If you have Python installed, install it via pip install autocrop and use it thusly from the command line: autocrop -i pics -o crop -r reject -w 400 -H ...


5

You can use xnview on windows, which has some batch mode processings and also, for a simple rotation of images, have the option to rotate images based on the exif data. Select all the images (even the correctly oriented ones! It will know they are already well oriented), "rotate based on exif" and it will do it (without recalculating the jpg, so with no ...


4

Please check out http://jambula.sourceforge.net/ to batch insert shooting date/time/comment on a jpeg image in different formats and languages. A special feature is that the date stamp is lossless. It is supported on Linux and Mac also.


4

JPEGmini. It's $20 for the full version, but you can trial it (as a test of quality) for free. The trial version (or, rather, the unactivated version) has a 20-image-per-day cap — no time bomb, though, so someone with different needs may never have to pay for it. The full version can recompress entire directories at a go. It'll take most large high-quality ...


4

Since the best answers use non-Windows syntax, I will here post their code converted for Microsoft Windows. @StarGeek solution, very fast and simple: First set a base timestamp to all images: exiftool -datetimeoriginal="2015:01:01 12:00:00" DIR (DIR is the name of the folder containing all images.) Then assign incremental timestamps: exiftool "-...


4

I'd recommend Imagemagick. Something like this should work (untested) FOR %a in (*.jpg) DO convert %a -resize 600x600 -background black -gravity center -extent 600x600 square_%a Full steps to get this working when you're unfamiliar with scripting are as follows (written for Windows, but similar steps exists for Ubuntu and Mac OS): Download ImageMagick. ...


4

This will probably require a bit of scripting or programming. Read up on the Circle Hough Transform. Basically, it detects circles in an image. While the maths are quite complicated, you can probably find a decent library in a language that abstracts away a lot of the complexity. For instance, checkout the OpenCV (Open Computer Vision) library, which has C, ...


4

Assuming your photos are in JPEG format, I'm quite partial to JPEGCrops, a simple and free tool for lossless batch processing of images. You can crop to specific aspect ratios, and/or rotate.


Only top voted, non community-wiki answers of a minimum length are eligible