imagemagick -- convert: no decode delegate for this image format `TIFF' - imagemagick

I'm trying to convert an image "img.tif" to "img.jpg" with the following command:
convert img.tif img.jpg
And this error arises:
convert: no decode delegate for this image format `TIFF' # error/constitute.c/ReadImage/501.
I've trawled the web for answers, but nothing is working.
The suggestions from previous people with this problem have been:
brew reinstall imagemagick --with-libtiff
, which I have done, to no avail. The call:
convert -list configure
still gives the following for DELEGATES:
DELEGATES bzlib mpeg png x xml zlib
ANY other suggestions would be appreciated.
Even another way to convert from .tif to .jpg from the command line.

I know it's not exactely the right solution of your problem but it can "do the job".
You could convert from tif to jpg by adding a PNG (which is lossless) converting step:
tif→PNG→jpg
inkscape --export-png=img.png img.tif
then
convert img.png img.jpg
For me, the command
convert -list configure | grep DELEGATES
returns:
DELEGATES bzlib djvu fftw fontconfig freetype jbig jpeg jng jp2 lcms2 lqr lzma openexr pango png rsvg tiff x11 xml wmf zlib
And I didn't do something special during install so I don't understand why you don't have the "tif" nor the "jpeg" part…
Maybe you can try to install "libtiff-tools" "libjpeg" and "libjpeg-turbo".
The delegates could be found here:
Imagemagic Delegates

Related

Why does ImageMagick fail with "no decode delegate for this image format `PNG'" even when the png delegate is installed?

I'm working on openSUSE Tumbleweed.
I have ImageMagick installed.
$ convert --version
Version: ImageMagick 7.1.0-52 Q16-HDRI x86_64 20549 https://imagemagick.org
Copyright: (C) 1999 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI Modules OpenMP(4.5)
Delegates (built-in): bzlib djvu fontconfig freetype gslib jng jpeg lcms ltdl lzma png ps raw tiff x xml zlib
Compiler: gcc (12.2)
Notice that the PNG delegate is installed, at least according to --version.
Despite this, converting fails.
$ convert covalent_platform.svg covalent_platform.png
convert: no decode delegate for this image format `PNG' # error/constitute.c/ReadImage/776.
convert: no images defined `covalent_platform.png' # error/convert.c/ConvertImageCommand/3342.
Even identifying a non-PNG file fails, with the same PNG delegate problem.
$ identify covalent_platform.svg
identify: no decode delegate for this image format `PNG' # error/constitute.c/ReadImage/776.
Any ideas for what might be wrong here?
I reinstalled libpng-devel and reinstalled IM, but the problem remains.
I figured out the problem, thanks to #fmw42 pointing out that if magick -list format has no output then the installation is bad.
I had installed IM from https://imagemagick.org/script/download.php
These downloads are not compatible with openSUSE.
After uninstalling and reinstalling IM from https://software.opensuse.org/package/ImageMagick, everything works as expected.

How do I use the input filename in ImageMagick?

According to the ImageMagick documentation, I would expect this:
convert fountain-pen1.jpg fountain-pen2.jpg handwriting.jpg -resize 400x400\> -set filename:f '%t_smol.%e' '%[filename:f]'
to result in fountain-pen1_smol.jpg fountain-pen2_smol.jpg handwriting_smol.jpg.
Instead, it only creates fountain-pen1_smol.jpg.
What am I doing wrong here?
I've also tried with just *.jpg which results in the same output.
convert -version
Version: ImageMagick 6.9.7-4 Q16 arm 20170114 http://www.imagemagick.org
Copyright: © 1999-2017 ImageMagick Studio LLC
License: http://www.imagemagick.org/script/license.php
Features: Cipher DPC Modules OpenMP
Delegates (built-in): bzlib djvu fftw fontconfig freetype jbig jng jp2 jpeg lcms lqr ltdl lzma openexr pangocairo png tiff wmf x xml zlib
Mmm... sometimes you need to give ImageMagick a hint to create more output files than it is expecting to, using +adjoin:
convert fountain-pen1.jpg fountain-pen2.jpg handwriting.jpg -resize 400x400\> -set filename:f '%t_smol.%e' +adjoin '%[filename:f]'
It guesses this if you put a %02d or somesuch in the filename, but doesn't know that for your use case.
With ImageMagick you'll generally need to set that "filename:" variable right after reading in the images. Try this...
convert img1.jpg img2.jpg img3.jpg \
-set filename:f "%[t]_smol.%[e]" -resize 400x400\> "%[filename:f]"
That reads in the images, sets those output filenames right away, then performs the resizing operation, then writes the output files with the given names. Be aware that changing the order of the list or the number of images within the command can create unexpected results.
I've used this command successfully with IM 6.8.9 in bash. It works with 6.9 and 7.0 versions in Windows by changing the continued-line backslashes "\" to carets "^", and deleting the backslash and putting the resize "400x400>" inside double quotes.

ImageMagick error: -contrast option replaced with -level (huh?)

I have a simple ImageMagick command that uses -contrast which is well-documented here: https://imagemagick.org/script/command-line-options.php#contrast
My command:
magick in.jpg -enhance -contrast -background white -quality 100 -resize 200x200^ -gravity center -extent 200x200 out.jpg
But I'm getting this error: magick: option has been replaced '-contrast', use "-level" at CLI arg 3 # warning/operation.c/CLISimpleOperatorImage/2078.
I'm using ImageMagick 7.0.9-7 Q16 x86_64 2019-12-02.
Features: Cipher DPC HDRI Modules OpenMP(3.1)
Delegates (built-in): bzlib cairo djvu fftw fontconfig freetype gslib gvc heic jbig jng jp2 jpeg lcms ltdl lzma openexr pangocairo png ps raqm raw rsvg tiff webp wmf x xml zlib
So... why is it complaining about the -contrast option? It looks like -contrast is still there, and I don't see how -level is supposed to replace it. There's nothing I can find about -contrast being replaced/removed. It's very strange.
** UPDATE - even I can see right here in the code where that error message is generated. However, I can't see why it's doing that, and as I said, can't find anything in any documentation that implies -contrast should not be used.

ImageMagick error: no decode delegate

I'm trying to convert an image with imagemagick, but I'm getting this error:
convert: no decode delegate for this image format
`/tmp/magick-XXITXcTr' # constitute.c/ReadImage/503.
I'm doing this:
convert http://images.icecat.biz/img/norm/high/12003462-2669.jpg -bordercolor white -border 1x1 -matte -fill none -fuzz 7% -draw 'matte 1,1 floodfill' -shave 1x1 /myimagefolder/iphone.png
I have the following delegates:
DELEGATES bzlib fontconfig freetype gs jpeg jng jp2 lcms openexr
png rsvg tiff x11 xml wmf zlib
Anyone knows what the problem is?
This is happening because the image you are trying to download no longer exists and returns a 404. ImageMagick creates a temporary file before it downloads the image. But this file will remain empty because the download fails for this image. ImageMagick will try to read the image but fails because it cannot handle empty files.

convert: Wrong JPEG library version: library is 80, caller expects 90 `image.jpg'

I am using Ubuntu 13.04.
I am installing imagemagick. and It is installed properly via source.I find all required delegates.
convert -list configure | grep DELEGATES
I get :
DELEGATES bzlib djvu fontconfig freetype jbig jng jp2 jpeg lcms lqr lzma openexr png ps tiff x xml zlib
Now, Same code was working in OS Ubuntu 12.10 before.
Please guide how to solve issue
convert: Wrong JPEG library version: library is 80, caller expects 90image.jpg' `

Resources