5

I have a few high res TIFF files I'd like to reduce in size as they are currently around 20 MB, but need to get them down to no more than 10 MB so I can upload them to a website. Is there a way I can do this without converting them into JPEG files to avoid losing too much quality?

The dimensions of the pictures I'm looking at are around 3540 by 2720 pixels. DPI is 300.

Thanks :)

1
  • PNG will get you some improvement. I recompressed a few high-quality photographs with those dimensions to PNG and got 12-14MB. But high-quality JPEG (like ImageMagick's "convert in.tif -quality 92 out.jpg") gets them down to 3.5-5MB with no visible difference. Even -quality 75 looks pretty good and is much smaller. If your images aren't photos PNG might work better. Dec 24, 2015 at 4:34

2 Answers 2

7

I would resave the TIFF file with LZW compression turned on. That should get the size down considerably.


Edit:

If you are using Photoshop, you would simply "Save As", choose .TIF as your format and location.

After that you should get a dialog box (see below) with compression options.

how to save a tif file with compression

3
  • how would I do that?
    – Tim
    Dec 24, 2015 at 2:27
  • @go-junta - Thank you for the edit. Should've done it from the get-go. Apparently, I need some sleep. ;)
    – ErickP
    Dec 24, 2015 at 3:15
  • Sometimes, you can get TIFs that have layers. Either flatten layers before exporting, or uncheck "export layers" when saving TIFs in Photoshop. May 16, 2017 at 9:07
2

If you have uncompressed TIFFs and work on a Mac, you can batch compress them in Terminal with tiffcp -c lzw "INPUT_FILE" "OUTPUT_FILE"

I just did this, to compress a big folder of tiffs, with additional commands to preserve the original modification time on the files:

for f in *.tif *.tiff; do out="$f.lzw.tiff"; if tiffcp -c lzw "$f" "$out"; then touch -r "$f" "$out" && mv "$out" "$f"; else echo "ERROR with $f"; fi; done

Or a more readable multi-line version:

for f in *.tif *.tiff; do \
  out="$f.lzw.tiff"; \
  if tiffcp -c lzw "$f" "$out"; then \
    touch -r "$f" "$out" && mv "$out" "$f"; \
  else \
    echo "ERROR with $f"; \
  fi; \
done

(tiffcp comes with the libtiff homebrew package. So you need to have homebrew installed, but if you are lazy enough you probably already have it)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.