Support of TIFF file Format
Spalar opened this issue · 4 comments
Hi Jacob,
Thanks for a great software and easy to use !
I understand that addition of new format can be tedious. As you suggested in your code, I tried to add Tiff with Image Magick.
I was able to convert tiff files but with some caveats.
- Size of final
JPEG
only reduced to a certain extent.
- Observation 1: When initial JPEG is generated from the output of conversion of TIFF File, you can run the Conversion again on the JPEG to bring it to the correct size.
Properties of Image after Double Conversion.
- Observation 2: We can also do Down Scaling in terms of Physical Dimensions or reduction in quality of
JPEG
. Hence multi downscale options might be required forTIFFs
with priority, which one to do first.
Images Comparing Details of Original TIFF and JPEG Converted with Final Image Size
- Auto Choosing the Encoder, I had to choose
Image Magick
as encoder manually as I knew it supported (Other one Failed). WhenTiff
Image is used, automatic change toImage Magick
will require some modifications.
Version | 0.9.9 | |
---|---|---|
OS | Windows | |
Output | ||
format | JPG | |
quality | 100 | |
lossless | False | |
lossless_if_smaller | False | |
max_compression | False | |
effort | 7 | |
intelligent_effort | False | |
reconstruct_jpg | True | |
jxl_mode | Default | |
jpg_encoder | JPEGLI from JPEG XL | |
if_file_exists | Rename | |
custom_output_dir | True | |
keep_dir_struct | False | |
delete_original | False | |
delete_original_mode | To Trash | |
smallest_format_pool | [('png', True), ('webp', True), ('jxl', True)] | |
Downscaling | ||
enabled | True | |
mode | File Size | |
percent | 80 | |
width | 2000 | |
height | 2000 | |
file_size | 9700 | |
shortest_side | 1080 | |
longest_side | 1920 | |
resample | Default | |
Misc. | ||
keep_metadata | Encoder - Wipe | |
attributes | False | |
Exceptions | ||
ID | Exception | Extension |
P2 | Conversion failed, output not found. | .tif |
Try to add this when you have time !
Hello,
Full TIFF support would require a redesign of the core components. TIFF can contain layers. Cramming all of them into another format might not be possible.
This is beyond the scope of this program. There are too many edge cases to deal with.
Let me explain further.
I can merge all layers into one with ImageMagick by adding -background none -layers merge
while converting TIFF to PNG. From there I can encode it to either AVIF or JPEG XL. Unfortunately, if there is an embedded thumbnail, a black rectangle will appear in the top-left corner.
GIMP saves TIFFs with a thumbnail by default...
I'm certain there will be many more similar issues to account for. The ImageMagick on my Linux cannot even open TIFFs - convert-im6.q16: Deprecated and troublesome old-style JPEG compression mode
.
I'd prefer to focus on other features. For processing TIFFs use XnConvert instead. It handles all those edge cases rather well. You can even use it to generate PNGs, which my program will accept.
Thanks for the suggestions !
All these points will help to sort out other edge cases for me.
I'll work in the same direction, will try XnConvert.
Update:
I like the Size Control of File in XL-Converter which is my basic requirement. XnConvert looks too complicated for Tiff to Jpeg task I specifically need. Will use your code and build on to have the features I need :)