Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

getting the upper hand on ImageMagick

203 views
Skip to first unread message

Cal Dershowitz

unread,
Aug 22, 2012, 5:48:54 PM8/22/12
to
Hello Newsgroup,

I had an unfortunate wiping out of my dual boot ubuntu/windholes install
as I was wiping windows clean, because that's what you have to do
periodically to get rid of all the malware. This puts me back to square
one with a new 12.04 Ubuntu install, and so far, I've been fumbling
around in the dark trying to reconstitute what I had.

The way I use linux a lot is that I post pictures on html pages about
what I'm doing. These are typically photos of construction with an
initial resolution of 4000 x 3000, which is 4.0+ times bigger than a
person wants for a webpage. So I endeavor to install Imagemagick, but I
get results like this:

$ pwd
/home/fred/Desktop/magick_target
$ ls
bild1.jpg
$ convert bild1.jpg -resize 22% testpic.jpg
convert: no decode delegate for this image format `bild1.jpg' @
error/constitute.c/ReadImage/544.
convert: no images defined `testpic.jpg' @
error/convert.c/ConvertImageCommand/3044.
$ cd /usr/bin/
$ ls convert
convert
$ cd /home/fred/D
Desktop/ Documents/ Downloads/
$ cd /home/fred/Desktop/magick_target/
$ ls -l
total 2740
-rw-rw-r-- 1 fred fred 2803799 Aug 13 21:42 bild1.jpg
$

I've done a fair amount of fiddling with this already, so it's very
possible that I fiddled a header file away from some search path. In
the includes of the cc command that was to build this, there were 4 of
them that didn't seem to have the right paths to me, so I did this 4
different times:

fred@fred-desktop:/usr/include/freetype2$ sudo cp -r freetype/* .

, which put the .h files in the upper directory into @INC.

As far as I'm concerned, resizing a jpg image has to rank as the easiest
thing that ImageMagick does, so I think something is really wonky about
what I have.

Q1) How do I best proceed to get a robust ImageMagick install.

Q2) What would be a bash script that would resize all the jpg's in
magic_target to 22% of its current size.

Q3) What does the number after the total mean when one uses the -l with
ls for a long listing. And just to head off what gets spit out by
people with nothing else to contribute to a discussion, I did do this:

$ man ls

Actually, I'm looking for tips to have as much good documentation as I
can have on this system too, so that could be Q4.

I just figured out that a person has to get perl-doc. What that doesn't
come with the pudding is beyond me.

sudo apt-get install perl-doc

Anyways, looking for tips on how to proceed. Cheers,
--
Cal Dershowitz

Ike Naar

unread,
Aug 22, 2012, 5:58:33 PM8/22/12
to
On 2012-08-22, Cal Dershowitz <c...@example.invalid> wrote:
> $ ls -l
> total 2740
> -rw-rw-r-- 1 fred fred 2803799 Aug 13 21:42 bild1.jpg
> $
> [snip]
> Q3) What does the number after the total mean when one uses the -l with
> ls for a long listing. And just to head off what gets spit out by
> people with nothing else to contribute to a discussion, I did do this:
>
> $ man ls

The ls manpage on my system says this about the -l option:

-l (The lowercase letter ``ell''). List in long format. (See
below.) A total sum for all the file sizes is output on a line
before the long listing.

Rainer Weikusat

unread,
Aug 22, 2012, 6:20:05 PM8/22/12
to
Cal Dershowitz <c...@example.invalid> writes:

[...]


> The way I use linux a lot is that I post pictures on html pages about
> what I'm doing. These are typically photos of construction with an
> initial resolution of 4000 x 3000, which is 4.0+ times bigger than a
> person wants for a webpage. So I endeavor to install Imagemagick, but
> I get results like this:
>
> $ pwd
> /home/fred/Desktop/magick_target
> $ ls
> bild1.jpg
> $ convert bild1.jpg -resize 22% testpic.jpg
> convert: no decode delegate for this image format `bild1.jpg' @
> error/constitute.c/ReadImage/544.
> convert: no images defined `testpic.jpg' @
> error/convert.c/ConvertImageCommand/3044.

This means that the version of ImageMagick you've created in some "you
know which" (and it shan't be named) way lacks support for dealing
with JPEG images. Possibly, because you compiled it from source,
didn't have all (or any, FWIW) of the supporting libraries installed
and didn't pay attention to the configure-output. But guessing at this
is really useless.

> $ cd /usr/bin/
> $ ls convert
> convert
> $ cd /home/fred/D
> Desktop/ Documents/ Downloads/
> $ cd /home/fred/Desktop/magick_target/
> $ ls -l
> total 2740
> -rw-rw-r-- 1 fred fred 2803799 Aug 13 21:42 bild1.jpg
> $
>
> I've done a fair amount of fiddling with this already, so it's very
> possible that I fiddled a header file away from some search path. In
> the includes of the cc command that was to build this, there were 4 of
> them that didn't seem to have the right paths to me, so I did this 4
> different times:
>
> fred@fred-desktop:/usr/include/freetype2$ sudo cp -r freetype/* .

Unless you want to have system which blows up when trying to do a
package update from the Ubuntu repositories, don't mess around with
files managed by the package management system ...

> As far as I'm concerned, resizing a jpg image has to rank as the
> easiest thing that ImageMagick does, so I think something is really
> wonky about what I have.
>
> Q1) How do I best proceed to get a robust ImageMagick install.

The simple solution to your problem is to install the ImageMagick
Ubuntu package (probably called imagemagick, at least, that's the name
of the Debian package). This will automatically install all supporting
libraries as well. But since only you-know-who knows in what devastated
state your present installation already is, the safest choice is
probably to start over, avoid any manual changes outside of /etc
and /usr/local except if you have positive confirmation that there is
no other option and stick to the packaged software unless some
technical requirement can't be satisfied in this way.

> Q2) What would be a bash script that would resize all the jpg's in
> magic_target to 22% of its current size.

Assuming you are already in this directory and the number of files is
small enough that you can use wildcard expansion, one way to do this
would be

for x in *.jpg; do convert -scale 22% $x small-$x; done

NB: This creates a scaled-down image in a file named small-file.jpg
for any file.jpg in this directory. If you want to replace the input
files, use

convert -scale 22% $x $x

instead.
Message has been deleted

Gordon Burditt

unread,
Aug 22, 2012, 7:31:43 PM8/22/12
to
> $ pwd
> /home/fred/Desktop/magick_target
> $ ls
> bild1.jpg
> $ convert bild1.jpg -resize 22% testpic.jpg
> convert: no decode delegate for this image format `bild1.jpg' @
> error/constitute.c/ReadImage/544.
> convert: no images defined `testpic.jpg' @
> error/convert.c/ConvertImageCommand/3044.

The syntax above works OK for me on FreeBSD with ImageMagick 6.7.8.

Note: FreeBSD seems to put stuff under /usr/local/include,
/usr/local/lib, /usr/local/bin, etc. Linux seems to put these in
/usr/include, /usr/lib, /usr/bin, etc. Just accept that as a
difference and use top-level directory names suitable for your
system.

> $ cd /usr/bin/
> $ ls convert
> convert
> $ cd /home/fred/D
> Desktop/ Documents/ Downloads/
> $ cd /home/fred/Desktop/magick_target/
> $ ls -l
> total 2740
> -rw-rw-r-- 1 fred fred 2803799 Aug 13 21:42 bild1.jpg
> $
>
> I've done a fair amount of fiddling with this already, so it's very
> possible that I fiddled a header file away from some search path. In
> the includes of the cc command that was to build this, there were 4 of
> them that didn't seem to have the right paths to me, so I did this 4
> different times:
>
> fred@fred-desktop:/usr/include/freetype2$ sudo cp -r freetype/* .
>
> , which put the .h files in the upper directory into @INC.

My installation of ImageMagick on FreeBSD has a bunch of include
files in /usr/local/include/freetype2/freetype. There are no header
files in /usr/local/include/freetype2. *C* header files are usually
used only during compilations anyway. *Perl* usually announces
loudly that its header files are missing if it can't find them.

I imagine that freetype *1* used:
-I/usr/include
and #include <freetype/freetype.h>

then they switched to freetype2, and changed this to:
-I/usr/include/freetype2
and #include <freetype/freetype.h>
since they didn't want to modify all the source files, which expains
why the header files are in /usr/include/freetype2/freetype and not
/usr/include/freetype2 .

> As far as I'm concerned, resizing a jpg image has to rank as the easiest
> thing that ImageMagick does, so I think something is really wonky about
> what I have.
>
> Q1) How do I best proceed to get a robust ImageMagick install.

ImageMagick has a bunch of plug-ins on my system in
/usr/local/lib/ImageMagick-6.7.8/modules and configuration in
/usr/local/lib/ImageMagick-6.7.8/config/configure.xml . I suggest
that some of these are missing. configure.xml has a line referring
to "DELEGATES" (note reference to "delegate" in error message above)
and listing a bunch of image types, including jpeg.

I notice that if I chmod the /usr/local/lib/ImageMagick-6.7.8 directory
to 0, then try to run 'convert' as an ordinary user, I get an error
message much like this one:
> convert: no decode delegate for this image format `bild1.jpg' @

but with different file names, so I suggest that something under
this directory (yours is probably /usr/lib/ImageMagick-6.7.8 with
the version number changed to one that matches your package) is
missing and/or has too restrictive permissions.

If the files under this directory are *NOT* missing, it may be that
the plug-ins cannot be loaded because other packages and shared
libraries needed by the plug-ins are missing or inaccessible.
Use of "ldd" on the plug-ins to figure out what they can't load
may be appropriate.

You may not need all the plugins listed below but I'd be concerned
if jpeg.la and/or jpeg.so are missing.

% ls -lR /usr/local/lib/ImageMagick-6.7.8
total 8
drwxr-xr-x 2 root wheel 512 Aug 20 00:15 config
drwxr-xr-x 4 root wheel 512 Aug 20 00:15 modules-Q16

/usr/local/lib/ImageMagick-6.7.8/config:
total 8
-r--r--r-- 1 root wheel 4139 Aug 20 00:15 configure.xml

/usr/local/lib/ImageMagick-6.7.8/modules-Q16:
total 8
drwxr-xr-x 2 root wheel 4096 Aug 20 00:15 coders
drwxr-xr-x 2 root wheel 512 Aug 20 00:15 filters

/usr/local/lib/ImageMagick-6.7.8/modules-Q16/coders:
total 3580
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:14 aai.la
-rwxr-xr-x 1 root wheel 11073 Aug 20 00:14 aai.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:14 art.la
-rwxr-xr-x 1 root wheel 10741 Aug 20 00:14 art.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:14 avs.la
-rwxr-xr-x 1 root wheel 11021 Aug 20 00:14 avs.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:14 bgr.la
-rwxr-xr-x 1 root wheel 25297 Aug 20 00:14 bgr.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:14 bmp.la
-rwxr-xr-x 1 root wheel 32901 Aug 20 00:14 bmp.so
-rwxr-xr-x 1 root wheel 1596 Aug 20 00:14 braille.la
-rwxr-xr-x 1 root wheel 10541 Aug 20 00:14 braille.so
-rwxr-xr-x 1 root wheel 1578 Aug 20 00:14 cals.la
-rwxr-xr-x 1 root wheel 10955 Aug 20 00:14 cals.so
-rwxr-xr-x 1 root wheel 1596 Aug 20 00:14 caption.la
-rwxr-xr-x 1 root wheel 9953 Aug 20 00:14 caption.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:14 cin.la
-rwxr-xr-x 1 root wheel 21793 Aug 20 00:14 cin.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:14 cip.la
-rwxr-xr-x 1 root wheel 13049 Aug 20 00:14 cip.so
-rwxr-xr-x 1 root wheel 1578 Aug 20 00:14 clip.la
-rwxr-xr-x 1 root wheel 6431 Aug 20 00:14 clip.so
-rwxr-xr-x 1 root wheel 1578 Aug 20 00:14 cmyk.la
-rwxr-xr-x 1 root wheel 29203 Aug 20 00:14 cmyk.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:14 cut.la
-rwxr-xr-x 1 root wheel 14697 Aug 20 00:14 cut.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:14 dcm.la
-rwxr-xr-x 1 root wheel 143497 Aug 20 00:14 dcm.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:14 dds.la
-rwxr-xr-x 1 root wheel 11985 Aug 20 00:14 dds.so
-rwxr-xr-x 1 root wheel 1584 Aug 20 00:14 debug.la
-rwxr-xr-x 1 root wheel 8137 Aug 20 00:14 debug.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:14 dib.la
-rwxr-xr-x 1 root wheel 20009 Aug 20 00:14 dib.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:14 dng.la
-rwxr-xr-x 1 root wheel 10793 Aug 20 00:14 dng.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:14 dot.la
-rwxr-xr-x 1 root wheel 4873 Aug 20 00:14 dot.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:14 dpx.la
-rwxr-xr-x 1 root wheel 31641 Aug 20 00:14 dpx.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:15 ept.la
-rwxr-xr-x 1 root wheel 10877 Aug 20 00:15 ept.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:14 fax.la
-rwxr-xr-x 1 root wheel 8989 Aug 20 00:14 fax.so
-rwxr-xr-x 1 root wheel 1566 Aug 20 00:14 fd.la
-rwxr-xr-x 1 root wheel 6571 Aug 20 00:14 fd.so
-rwxr-xr-x 1 root wheel 1578 Aug 20 00:14 fits.la
-rwxr-xr-x 1 root wheel 19047 Aug 20 00:14 fits.so
-rwxr-xr-x 1 root wheel 1587 Aug 20 00:15 fpx.la
-rwxr-xr-x 1 root wheel 15861 Aug 20 00:15 fpx.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:14 gif.la
-rwxr-xr-x 1 root wheel 27081 Aug 20 00:14 gif.so
-rwxr-xr-x 1 root wheel 1602 Aug 20 00:14 gradient.la
-rwxr-xr-x 1 root wheel 8495 Aug 20 00:14 gradient.so
-rwxr-xr-x 1 root wheel 1578 Aug 20 00:14 gray.la
-rwxr-xr-x 1 root wheel 11687 Aug 20 00:14 gray.so
-rwxr-xr-x 1 root wheel 1578 Aug 20 00:14 hald.la
-rwxr-xr-x 1 root wheel 6615 Aug 20 00:14 hald.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:14 hdr.la
-rwxr-xr-x 1 root wheel 16121 Aug 20 00:14 hdr.so
-rwxr-xr-x 1 root wheel 1608 Aug 20 00:14 histogram.la
-rwxr-xr-x 1 root wheel 10629 Aug 20 00:14 histogram.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:14 hrz.la
-rwxr-xr-x 1 root wheel 9409 Aug 20 00:14 hrz.so
-rwxr-xr-x 1 root wheel 1578 Aug 20 00:14 html.la
-rwxr-xr-x 1 root wheel 10571 Aug 20 00:14 html.so
-rwxr-xr-x 1 root wheel 1578 Aug 20 00:14 icon.la
-rwxr-xr-x 1 root wheel 22991 Aug 20 00:14 icon.so
-rwxr-xr-x 1 root wheel 1578 Aug 20 00:14 info.la
-rwxr-xr-x 1 root wheel 6903 Aug 20 00:14 info.so
-rwxr-xr-x 1 root wheel 1590 Aug 20 00:14 inline.la
-rwxr-xr-x 1 root wheel 6835 Aug 20 00:14 inline.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:14 ipl.la
-rwxr-xr-x 1 root wheel 13747 Aug 20 00:14 ipl.so
-rwxr-xr-x 1 root wheel 1578 Aug 20 00:15 jbig.la
-rwxr-xr-x 1 root wheel 12883 Aug 20 00:15 jbig.so
-rwxr-xr-x 1 root wheel 1600 Aug 20 00:15 jp2.la
-rwxr-xr-x 1 root wheel 23765 Aug 20 00:15 jp2.so
-rwxr-xr-x 1 root wheel 1578 Aug 20 00:15 jpeg.la
-rwxr-xr-x 1 root wheel 42515 Aug 20 00:15 jpeg.so
-rwxr-xr-x 1 root wheel 1584 Aug 20 00:14 label.la
-rwxr-xr-x 1 root wheel 8473 Aug 20 00:14 label.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:14 mac.la
-rwxr-xr-x 1 root wheel 7973 Aug 20 00:14 mac.so
-rwxr-xr-x 1 root wheel 1590 Aug 20 00:14 magick.la
-rwxr-xr-x 1 root wheel 216091 Aug 20 00:14 magick.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:14 map.la
-rwxr-xr-x 1 root wheel 10573 Aug 20 00:14 map.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:14 mat.la
-rwxr-xr-x 1 root wheel 21213 Aug 20 00:14 mat.so
-rwxr-xr-x 1 root wheel 1584 Aug 20 00:14 matte.la
-rwxr-xr-x 1 root wheel 6429 Aug 20 00:14 matte.so
-rwxr-xr-x 1 root wheel 1578 Aug 20 00:14 meta.la
-rwxr-xr-x 1 root wheel 29503 Aug 20 00:14 meta.so
-rwxr-xr-x 1 root wheel 1578 Aug 20 00:14 miff.la
-rwxr-xr-x 1 root wheel 37283 Aug 20 00:14 miff.so
-rwxr-xr-x 1 root wheel 1578 Aug 20 00:14 mono.la
-rwxr-xr-x 1 root wheel 10583 Aug 20 00:14 mono.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:15 mpc.la
-rwxr-xr-x 1 root wheel 26133 Aug 20 00:15 mpc.so
-rwxr-xr-x 1 root wheel 1578 Aug 20 00:15 mpeg.la
-rwxr-xr-x 1 root wheel 12071 Aug 20 00:15 mpeg.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:15 mpr.la
-rwxr-xr-x 1 root wheel 6397 Aug 20 00:15 mpr.so
-rwxr-xr-x 1 root wheel 1598 Aug 20 00:15 msl.la
-rwxr-xr-x 1 root wheel 124465 Aug 20 00:15 msl.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:15 mtv.la
-rwxr-xr-x 1 root wheel 10965 Aug 20 00:15 mtv.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:15 mvg.la
-rwxr-xr-x 1 root wheel 8909 Aug 20 00:15 mvg.so
-rwxr-xr-x 1 root wheel 1578 Aug 20 00:15 null.la
-rwxr-xr-x 1 root wheel 7671 Aug 20 00:15 null.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:15 otb.la
-rwxr-xr-x 1 root wheel 10585 Aug 20 00:15 otb.so
-rwxr-xr-x 1 root wheel 1578 Aug 20 00:15 palm.la
-rwxr-xr-x 1 root wheel 19667 Aug 20 00:15 palm.so
-rwxr-xr-x 1 root wheel 1584 Aug 20 00:15 pango.la
-rwxr-xr-x 1 root wheel 4921 Aug 20 00:15 pango.so
-rwxr-xr-x 1 root wheel 1596 Aug 20 00:15 pattern.la
-rwxr-xr-x 1 root wheel 462153 Aug 20 00:15 pattern.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:15 pcd.la
-rwxr-xr-x 1 root wheel 20317 Aug 20 00:15 pcd.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:15 pcl.la
-rwxr-xr-x 1 root wheel 17697 Aug 20 00:15 pcl.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:15 pcx.la
-rwxr-xr-x 1 root wheel 21389 Aug 20 00:15 pcx.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:15 pdb.la
-rwxr-xr-x 1 root wheel 18041 Aug 20 00:15 pdb.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:15 pdf.la
-rwxr-xr-x 1 root wheel 47721 Aug 20 00:15 pdf.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:15 pes.la
-rwxr-xr-x 1 root wheel 12085 Aug 20 00:15 pes.so
-rwxr-xr-x 1 root wheel 1578 Aug 20 00:15 pict.la
-rwxr-xr-x 1 root wheel 33643 Aug 20 00:15 pict.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:15 pix.la
-rwxr-xr-x 1 root wheel 9169 Aug 20 00:15 pix.so
-rwxr-xr-x 1 root wheel 1590 Aug 20 00:15 plasma.la
-rwxr-xr-x 1 root wheel 12031 Aug 20 00:15 plasma.so
-rwxr-xr-x 1 root wheel 1580 Aug 20 00:15 png.la
-rwxr-xr-x 1 root wheel 144625 Aug 20 00:15 png.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:15 pnm.la
-rwxr-xr-x 1 root wheel 45081 Aug 20 00:15 pnm.so
-rwxr-xr-x 1 root wheel 1596 Aug 20 00:15 preview.la
-rwxr-xr-x 1 root wheel 6429 Aug 20 00:15 preview.so
-rwxr-xr-x 1 root wheel 1566 Aug 20 00:15 ps.la
-rwxr-xr-x 1 root wheel 45675 Aug 20 00:15 ps.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:15 ps2.la
-rwxr-xr-x 1 root wheel 26093 Aug 20 00:15 ps2.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:15 ps3.la
-rwxr-xr-x 1 root wheel 31957 Aug 20 00:15 ps3.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:15 psd.la
-rwxr-xr-x 1 root wheel 36569 Aug 20 00:15 psd.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:15 pwp.la
-rwxr-xr-x 1 root wheel 9293 Aug 20 00:15 pwp.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:15 raw.la
-rwxr-xr-x 1 root wheel 13309 Aug 20 00:15 raw.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:15 rgb.la
-rwxr-xr-x 1 root wheel 25677 Aug 20 00:15 rgb.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:15 rla.la
-rwxr-xr-x 1 root wheel 9469 Aug 20 00:15 rla.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:15 rle.la
-rwxr-xr-x 1 root wheel 13281 Aug 20 00:15 rle.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:15 scr.la
-rwxr-xr-x 1 root wheel 7349 Aug 20 00:15 scr.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:15 sct.la
-rwxr-xr-x 1 root wheel 9093 Aug 20 00:15 sct.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:15 sfw.la
-rwxr-xr-x 1 root wheel 11049 Aug 20 00:15 sfw.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:15 sgi.la
-rwxr-xr-x 1 root wheel 19841 Aug 20 00:15 sgi.so
-rwxr-xr-x 1 root wheel 1596 Aug 20 00:15 stegano.la
-rwxr-xr-x 1 root wheel 8157 Aug 20 00:15 stegano.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:15 sun.la
-rwxr-xr-x 1 root wheel 17905 Aug 20 00:15 sun.so
-rwxr-xr-x 1 root wheel 2118 Aug 20 00:15 svg.la
-rwxr-xr-x 1 root wheel 65821 Aug 20 00:15 svg.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:15 tga.la
-rwxr-xr-x 1 root wheel 15653 Aug 20 00:15 tga.so
-rwxr-xr-x 1 root wheel 1608 Aug 20 00:15 thumbnail.la
-rwxr-xr-x 1 root wheel 7281 Aug 20 00:15 thumbnail.so
-rwxr-xr-x 1 root wheel 1578 Aug 20 00:15 tiff.la
-rwxr-xr-x 1 root wheel 52779 Aug 20 00:15 tiff.so
-rwxr-xr-x 1 root wheel 1578 Aug 20 00:15 tile.la
-rwxr-xr-x 1 root wheel 7015 Aug 20 00:15 tile.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:15 tim.la
-rwxr-xr-x 1 root wheel 11765 Aug 20 00:15 tim.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:15 ttf.la
-rwxr-xr-x 1 root wheel 9593 Aug 20 00:15 ttf.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:15 txt.la
-rwxr-xr-x 1 root wheel 16741 Aug 20 00:15 txt.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:15 uil.la
-rwxr-xr-x 1 root wheel 10861 Aug 20 00:15 uil.so
-rwxr-xr-x 1 root wheel 1598 Aug 20 00:15 url.la
-rwxr-xr-x 1 root wheel 8493 Aug 20 00:15 url.so
-rwxr-xr-x 1 root wheel 1578 Aug 20 00:15 uyvy.la
-rwxr-xr-x 1 root wheel 9851 Aug 20 00:15 uyvy.so
-rwxr-xr-x 1 root wheel 1584 Aug 20 00:15 vicar.la
-rwxr-xr-x 1 root wheel 11925 Aug 20 00:15 vicar.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:15 vid.la
-rwxr-xr-x 1 root wheel 10625 Aug 20 00:15 vid.so
-rwxr-xr-x 1 root wheel 1578 Aug 20 00:15 viff.la
-rwxr-xr-x 1 root wheel 22959 Aug 20 00:15 viff.so
-rwxr-xr-x 1 root wheel 1578 Aug 20 00:15 wbmp.la
-rwxr-xr-x 1 root wheel 11403 Aug 20 00:15 wbmp.so
-rwxr-xr-x 1 root wheel 1604 Aug 20 00:15 webp.la
-rwxr-xr-x 1 root wheel 10587 Aug 20 00:15 webp.so
-rwxr-xr-x 1 root wheel 1633 Aug 20 00:15 wmf.la
-rwxr-xr-x 1 root wheel 35833 Aug 20 00:15 wmf.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:15 wpg.la
-rwxr-xr-x 1 root wheel 21438 Aug 20 00:15 wpg.so
-rwxr-xr-x 1 root wheel 1560 Aug 20 00:15 x.la
-rwxr-xr-x 1 root wheel 5381 Aug 20 00:15 x.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:15 xbm.la
-rwxr-xr-x 1 root wheel 12921 Aug 20 00:15 xbm.so
-rwxr-xr-x 1 root wheel 1566 Aug 20 00:15 xc.la
-rwxr-xr-x 1 root wheel 7055 Aug 20 00:15 xc.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:15 xcf.la
-rwxr-xr-x 1 root wheel 17517 Aug 20 00:15 xcf.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:15 xpm.la
-rwxr-xr-x 1 root wheel 19281 Aug 20 00:15 xpm.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:15 xps.la
-rwxr-xr-x 1 root wheel 11057 Aug 20 00:15 xps.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:15 xwd.la
-rwxr-xr-x 1 root wheel 15981 Aug 20 00:15 xwd.so
-rwxr-xr-x 1 root wheel 1584 Aug 20 00:15 ycbcr.la
-rwxr-xr-x 1 root wheel 25829 Aug 20 00:15 ycbcr.so
-rwxr-xr-x 1 root wheel 1572 Aug 20 00:15 yuv.la
-rwxr-xr-x 1 root wheel 16829 Aug 20 00:15 yuv.so

/usr/local/lib/ImageMagick-6.7.8/modules-Q16/filters:
total 12
-rwxr-xr-x 1 root wheel 1597 Aug 20 00:15 analyze.la
-rwxr-xr-x 1 root wheel 7338 Aug 20 00:15 analyze.so

> Q2) What would be a bash script that would resize all the jpg's in
> magic_target to 22% of its current size.

Where do you want the output? Something like:
for x in *.jpg
do
convert $x -resize 22% dummy.jpg
mv dummy.jpg $x
done

would work, but writing over the originals is dangerous if you're not sure
it works and if it gets interrupted, you're not sure how far it got.
Also, make sure you have no file with real data in it called dummy.jpg .
Another, safer, possibility is:

cd /...../inputdirectory
for x in *.jpg
do
convert $x -resize 22% /......./outputdirectory/$x
done

Adjust paths as necessary.


> Q3) What does the number after the total mean when one uses the -l with
> ls for a long listing. And just to head off what gets spit out by
> people with nothing else to contribute to a discussion, I did do this:
>
> $ man ls

The total number of blocks in files in the listing.



I recommend re-fetching and re-installing ImageMagick if as I suspect that
pieces are missing. Perhaps some of the packages it requires also need to
be reinstalled.

Cal Dershowitz

unread,
Aug 22, 2012, 7:53:45 PM8/22/12
to
Thanks, Ike, you seem to have more of an explanation than I do:

-l use a long listing format

If I had a nickel for every time the man pages showed me the one thing I
already knew about something....

There's one file, it's 2.8 megs, so what's 2740 got to do with anything?
--
Cal

Cal Dershowitz

unread,
Aug 22, 2012, 8:01:28 PM8/22/12
to
On 08/22/2012 04:23 PM, Don't make my brown eyes China Blue wrote:
> In article <3b2dnayDPYBazqjN...@supernews.com>,
> Cal Dershowitz <c...@example.invalid> wrote:
>
>> Hello Newsgroup,
>
> Since the ImageMagick folks are shit heads, I've stuck to Quartz with all of its
> problems.
>

I didn't get a match for that at ubuntu software center.
--
Cal

Gordon Burditt

unread,
Aug 22, 2012, 8:24:22 PM8/22/12
to
> There's one file, it's 2.8 megs, so what's 2740 got to do with anything?

2.8 megs = about 2740 blocks * 1024 bytes/block

Cal Dershowitz

unread,
Aug 23, 2012, 12:42:34 AM8/23/12
to
On 08/22/2012 04:20 PM, Rainer Weikusat wrote:
> convert -scale 22% $x $x

$ pwd
/home/fred/Desktop/magick_target
$ ls -l
total 2740
-rw-rw-r-- 1 fred fred 2803799 Aug 13 21:42 bild1.jpg
$ convert -scale 22% $x $x
convert: option requires an argument `-scale' @
error/convert.c/ConvertImageCommand/2444.
$

--
Cal

Cal Dershowitz

unread,
Aug 23, 2012, 12:44:33 AM8/23/12
to
On 08/22/2012 04:20 PM, Rainer Weikusat wrote:
> for x in *.jpg; do convert -scale 22% $x small-$x; done

$ for x in *.jpg; do convert -scale 22% $x small-$x; done
convert: no decode delegate for this image format `bild1.jpg' @
error/constitute.c/ReadImage/544.
convert: no images defined `small-bild1.jpg' @
error/convert.c/ConvertImageCommand/3044.
$

Something fundamental isn't hooked up yet.
--
Cal

Paul

unread,
Aug 23, 2012, 1:30:55 AM8/23/12
to
Ubuntu 12.04

Synaptic package manager. Install Imagemagick.

Installed version: 8:6.6.9.7-5ubuntu3.1

In a terminal:

convert -version

Version: ImageMagick 6.6.9.7 2012-04-30

*******

convert -list format

(Lots and lots of formats listed)
...
GIF* GIF rw+ CompuServe graphics interchange format
...
JPEG JPEG rw- Joint Photographic Experts Group JFIF Format (80)

* native blob support
r read support
w write support
+ support for multiple images

Try checking your convert, to see what it claims to
support. Maybe if the configure worked properly, the
output format list would reflect missing libraries.
I used the "ldd" command on convert and on some of
the libraries convert uses, and I wasn't able to detect
any basic libraries (yet). Something in that package,
should have a dependency on the equivalent of libjpeg
or the like. While Imagemagick has a history of
"doing things their own way", you don't get brownie points
for re-inventing all the graphics libraries over again.
(The minus side of re-using library code, is you
inherit all the security holes, and get to flail about
when a new hole is discovered.)

You might need source, to trace down the ways it could get broken.

*******

Also, you might want to run the "file" command, on your
incoming JPEG files, to ensure they bear some resemblance
to JPEG files :-) Just because the extension is JPEG, they
could be something entirely different.

file mybigjpeg.jpeg

HTH,
Paul

Rainer Weikusat

unread,
Aug 23, 2012, 5:18:08 AM8/23/12
to
Actually, it even requires 2 arguments and neither of both can be a
substitution of a variable which has no value ....

Floyd L. Davidson

unread,
Aug 23, 2012, 7:43:53 AM8/23/12
to
Cal Dershowitz <c...@example.invalid> wrote:
>The way I use linux a lot is that I post pictures on html pages about
>what I'm doing. These are typically photos of construction with an
>initial resolution of 4000 x 3000, which is 4.0+ times bigger than a
>person wants for a webpage. So I endeavor to install Imagemagick, but I
>get results like this:
>
>$ pwd
>/home/fred/Desktop/magick_target
>$ ls
>bild1.jpg
>$ convert bild1.jpg -resize 22% testpic.jpg
>convert: no decode delegate for this image format `bild1.jpg' @
>error/constitute.c/ReadImage/544.
>convert: no images defined `testpic.jpg' @
>error/convert.c/ConvertImageCommand/3044.

At first blush (meaning it might well be wrong), your ImageMagick
is not built with libjpeg linked in. That would be an automatic
effect of building ImageMagick on a system where the /configure/
script cannot find libjpeg, for whatever reason.

The first thing to do is determine just exactly how ImageMagick
has been installed on your box. This command:

$ whereis convert

should show you where the executable for /convert/ is located.
What you are interested in if it is in either or both of
/usr/bin/convert or /usr/local/bin/convert. If it is in both
of them, use "ls -l" to determine the dates on the file and
do whatever you can to *uninstall* the most recent version!
(I don't use Ubuntu, and cannot advise how to do that.)

When you have only a single version installed. Use these
commands, executed in the source directory for the latest
ImageMagick distribution. I am assuming the existing version
is in /usr/bin, and that is why the "--prefix=/usr" option.
If it is anywhere else, use the directory above the "bin",
such as "--prefix=/usr/local", instead.

$ ./configure --prefix=/usr
$ make
$ make install

When the /configure/ command completes you *must* inspect
the information it gives about the configuration! Here
is what I got a few moments ago, after downloading
ImageMagick-6.7.9-0, dated August 15, 2012. Only when
that is satisfactory should you run the two /make/
commands.

Here is the output on my machine from running that /configure/ command:

****************

ImageMagick is configured as follows. Please verify that this configuration
matches your expectations.

Host system type: i686-pc-linux-gnu
Build system type: i686-pc-linux-gnu

Option Value
-------------------------------------------------------------------------------
Shared libraries --enable-shared=yes yes
Static libraries --enable-static=yes yes
Module support --with-modules=no no
GNU ld --with-gnu-ld=yes yes
Quantum depth --with-quantum-depth=16 16
High Dynamic Range Imagery
--enable-hdri=no no

Delegate Configuration:
BZLIB --with-bzlib=yes yes
Autotrace --with-autotrace=no no
Dejavu fonts --with-dejavu-font-dir=default none
DJVU --with-djvu=yes yes
DPS --with-dps=yes no
FFTW --with-fftw=yes yes
FlashPIX --with-fpx=yes noFontConfig --with-fontconfig=yes yes
FreeType --with-freetype=yes yes
GhostPCL None pcl6 (unknown)
GhostXPS None gxps (unknown)
Ghostscript None gs (9.00)
Ghostscript fonts --with-gs-font-dir=default /usr/share/ghostscript/fonts/
Ghostscript lib --with-gslib=no no
Graphviz --with-gvc=no
JBIG --with-jbig=yes no
JPEG v1 --with-jpeg=yes yes
JPEG-2000 --with-jp2=yes yes
LCMS v1 --with-lcms=yes yes
LCMS v2 --with-lcms2=yes no
LQR --with-lqr=yes no
LZMA --with-lzma=yes yes
Magick++ --with-magick-plus-plus=yes yes
OpenEXR --with-openexr=yes yes
PERL --with-perl=no no
PANGO --with-pango=yes yes
PNG --with-png=yes yes
RSVG --with-rsvg=no no
TIFF --with-tiff=yes yes
WEBP --with-webp=yes no
Windows fonts --with-windows-font-dir= none
WMF --with-wmf=no no
X11 --with-x= yes
XML --with-xml=yes yes
ZLIB --with-zlib=yes yes

X11 Configuration:
X_CFLAGS =
X_PRE_LIBS = -lSM -lICE
X_LIBS =
X_EXTRA_LIBS =

Options used to compile and link:
PREFIX = /usr
EXEC-PREFIX = /usr
VERSION = 6.7.9
CC = gcc -std=gnu99 -std=gnu99
CFLAGS = -pthread -I/usr/include/OpenEXR -fopenmp -g -O2 -Wall -pthread
CPPFLAGS = -I/usr/include/ImageMagick
PCFLAGS = -fopenmp
DEFS = -DHAVE_CONFIG_H
LDFLAGS = -L/usr/lib
MAGICK_LDFLAGS = -L/usr/lib -L/usr/lib
LIBS = -lMagickCore -llcms -ltiff -lfreetype -ljasper -ljpeg -lpng12 -ldjvulibre -lfftw3 -lfontconfig -lXext -lXt -lSM -lICE -lX11 -llzma -lbz2 -pthread -lIlmImf -lz -lImath -lHalf -lIex -lIlmThread -pthread -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lxml2 -lz -lm -lgomp -lpthread -lltdl
CXX = g++
CXXFLAGS = -g -O2 -pthread
FEATURES = OpenMP

****************

In particular you want to verify that JPEG, TIFF, PNG and one or the
other of the lcms options are all marked "yes".

>I've done a fair amount of fiddling with this already, so it's very
>possible that I fiddled a header file away from some search path. In
>the includes of the cc command that was to build this, there were 4 of
>them that didn't seem to have the right paths to me, so I did this 4
>different times:
>
>fred@fred-desktop:/usr/include/freetype2$ sudo cp -r freetype/* .
>
>, which put the .h files in the upper directory into @INC.

I would suggest removing the entire source code
directory and starting over. DO NOT second guess the
/configure/ script or the Makefile it generates. If it
says all is okay, then it is; and *only* if the compiler
cannot find something should you be concerned about it.

And the concern should be to properly install the
package that /configure/ says is not there in a way that
it can be found.

>As far as I'm concerned, resizing a jpg image has to rank as the easiest
>thing that ImageMagick does, so I think something is really wonky about
>what I have.
>
>Q1) How do I best proceed to get a robust ImageMagick install.

See above.

>Q2) What would be a bash script that would resize all the jpg's in
>magic_target to 22% of its current size.

I wouldn't use 22%, but instead a fixed pixel dimension. That way
the results are appropriate no matter what the original image is,
even for example if it has been cropped or a border added, or etc.

This script will resize any valid image format that /convert/ can
recognize, and outputs a file with a suffix ending in ".s.jpg" after
everything following the first '.' is found in the original file name.
Hence my.x.tif or my.jpeg or my.jpg all would produce "my.s.jpg".

The default size is 600 pixels wide, but that can be overriden with
a second command line argument. If the script is named "foobar", then

foobar my.x.tiff 800

will produce a file name my.s.jpg that is 800 pixels wide.

#############################

#!/bin/bash
#
# Script to produce web sized images with a horizontal dimension of 600 pixels
#

#default size, can be over ridden with a second argument

fname="${1}"
nsize=600

if [ -z "${fname}" ] ; then
echo "You must specify a file name: $0 fname"
exit 1
fi

if [ ! -r "${fname}" ] ; then
echo "File \"${fname}\" is not readable."
exit 1
fi

if [ -n "${2}" ] ; then
size="${2}"
else
size="${nsize}"
fi

# This code verifies the size argument is a valid integer
if [ -n "${size}" ] ; then
expr "${size}" \+ 1 >& /dev/null
if [ "${?}" -ne 0 ] ; then
echo "Invalid size argument: ${2}"
exit 1
fi
fi

echo " convert ${fname} to <${fname%%.*}.s.jpg>"

convert "${fname}" -depth 32 -gamma 0.454545 -sampling-factor 1x1 \
-filter Lanczos -sampling-factor 1x1 -resize 600 -quality 90 \
-gamma 2.2 -depth 8 -density 96 -units PixelsPerInch \
-unsharp 1.5x1+0.7+0.02 "${fname%%.*}.s.jpg"

#############################

The above script does a number of "nice" things. It
converts the image to 32 bit depth linear (non gamma
corrected) data before resizing and uses 1:1 sampling
with a Lanczos filter, which produces optimum results
for downsizing. It sets quality to 90, and (of no
real value) sets DPI to 96 PPI. It also uses a little
Unsharp Mask.

--
Floyd L. Davidson <http://www.apaflo.com/>
Ukpeagvik (Barrow, Alaska) fl...@apaflo.com

Cal Dershowitz

unread,
Aug 25, 2012, 11:57:30 PM8/25/12
to
Wow, Floyd, thanks for this comprehensive response. I've read it twice
and will try to make my next good guess.
--
Cal

Cal Dershowitz

unread,
Aug 26, 2012, 2:24:39 AM8/26/12
to
On 08/22/2012 11:30 PM, Paul wrote:

> Ubuntu 12.04
>
> Synaptic package manager. Install Imagemagick.
>
> Installed version: 8:6.6.9.7-5ubuntu3.1
>
> In a terminal:
>
> convert -version
>
> Version: ImageMagick 6.6.9.7 2012-04-30
>
> *******
>
> convert -list format
>
> (Lots and lots of formats listed)
> ...
> GIF* GIF rw+ CompuServe graphics interchange format
> ...
> JPEG JPEG rw- Joint Photographic Experts Group JFIF Format (80)
>
> * native blob support
> r read support
> w write support
> + support for multiple images

$ pwd
/home/fred/Desktop/magick_target
$ ls -l
total 2740
-rw-rw-r-- 1 fred fred 2803799 Aug 13 21:42 bild1.jpg
$ convert -version
Version: ImageMagick 6.7.9-0 2012-08-16 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2012 ImageMagick Studio LLC
Features: OpenMP

$ convert -list format
Format Module Mode Description
-------------------------------------------------------------------------------
3FR DNG r-- Hasselblad CFV/H3D39II
A* RAW rw+ Raw alpha samples
AAI* AAI rw+ AAI Dune image
AI PDF rw- Adobe Illustrator CS2
ART* ART rw- PFS: 1st Publisher Clip Art
ARW DNG r-- Sony Alpha Raw Image Format
AVI MPEG r-- Microsoft Audio/Visual Interleaved
AVS* AVS rw+ AVS X image
B* RAW rw+ Raw blue samples
BMP* BMP rw- Microsoft Windows bitmap image
BMP2* BMP -w- Microsoft Windows bitmap image (V2)
BMP3* BMP -w- Microsoft Windows bitmap image (V3)
C* RAW rw+ Raw cyan samples
CAL* CALS r-- Continuous Acquisition and Life-cycle
Support Type 1
Specified in MIL-R-28002 and MIL-PRF-28002
CALS* CALS r-- Continuous Acquisition and Life-cycle
Support Type 1
Specified in MIL-R-28002 and MIL-PRF-28002
CANVAS* XC r-- Constant image uniform color
CAPTION* CAPTION r-- Caption
CIN* CIN rw- Cineon Image File
CIP* CIP -w- Cisco IP phone image format
CLIP* CLIP -w+ Image Clip Mask
CMYK* CMYK rw+ Raw cyan, magenta, yellow, and black samples
CMYKA* CMYK rw+ Raw cyan, magenta, yellow, black, and alpha
samples
CR2 DNG r-- Canon Digital Camera Raw Image Format
CRW DNG r-- Canon Digital Camera Raw Image Format
CUR* CUR rw- Microsoft icon
CUT* CUT r-- DR Halo
DCM* DCM r-- Digital Imaging and Communications in
Medicine image
DICOM is used by the medical community for images like
X-rays. The
specification, "Digital Imaging and Communications in Medicine
(DICOM)", is available at http://medical.nema.org/. In
particular,
see part 5 which describes the image encoding (RLE, JPEG,
JPEG-LS),
and supplement 61 which adds JPEG-2000 encoding.
DCR DNG r-- Kodak Digital Camera Raw Image File
DCX* PCX rw+ ZSoft IBM PC multi-page Paintbrush
DDS* DDS r-- Microsoft DirectDraw Surface
DFONT* TTF --- Multi-face font package
DNG DNG r-- Digital Negative
DPX* DPX rw- SMPTE 268M-2003 (DPX 2.0)
Digital Moving Picture Exchange Bitmap, Version 2.0.
See SMPTE 268M-2003 specification at http://www.smtpe.org

EPDF PDF rw- Encapsulated Portable Document Format
EPI PS rw- Encapsulated PostScript Interchange format
EPS PS rw- Encapsulated PostScript
EPS2* PS2 -w- Level II Encapsulated PostScript
EPS3* PS3 -w+ Level III Encapsulated PostScript
EPSF PS rw- Encapsulated PostScript
EPSI PS rw- Encapsulated PostScript Interchange format
ERF DNG r-- Epson RAW Format
FAX* FAX rw+ Group 3 FAX
FAX machines use non-square pixels which are 1.5 times wider
than
they are tall but computer displays use square pixels, therefore
FAX images may appear to be narrow unless they are explicitly
resized using a geometry of "150x100%".

FITS* FITS rw- Flexible Image Transport System
FRACTAL* PLASMA r-- Plasma fractal image
FTS* FTS rw- Flexible Image Transport System
G* RAW rw+ Raw green samples
G3* FAX rw- Group 3 FAX
GIF* GIF rw+ CompuServe graphics interchange format
GIF87* GIF rw- CompuServe graphics interchange format
(version 87a)
GRADIENT* GRADIENT r-- Gradual linear passing from one shade to another
GRAY* GRAY rw+ Raw gray samples
HALD* r-- Identity Hald color lookup table image
HDR* HDR rw+ Radiance RGBE image format
HISTOGRAM* HISTOGRAM -w- Histogram of the image
HRZ* HRZ rw- Slow Scan TeleVision
HTM* HTML -w- Hypertext Markup Language and a client-side
image map
HTML* HTML -w- Hypertext Markup Language and a client-side
image map
ICB* TGA rw- Truevision Targa image
ICO* ICON rw+ Microsoft icon
ICON* ICON rw- Microsoft icon
INFO INFO -w+ The image format and characteristics
INLINE* INLINE r-- Base64-encoded inline images
IPL* IPL rw+ IPL Image Sequence
K* RAW rw+ Raw black samples
K25 DNG r-- Kodak Digital Camera Raw Image Format
KDC DNG r-- Kodak Digital Camera Raw Image Format
LABEL* LABEL r-- Image label
M* RAW rw+ Raw magenta samples
M2V MPEG rw+ MPEG Video Stream
M4V MPEG rw+ Raw MPEG-4 Video
MAC* MAC r-- MAC Paint
MAP* MAP rw- Colormap intensities and indices
MAT MAT rw+ MATLAB level 5 image format
MATTE* MATTE -w+ MATTE format
MEF DNG r-- Mamiya Raw Image File
MIFF* MIFF rw+ Magick Image File Format
MONO* MONO rw- Raw bi-level bitmap
MOV MPEG rw+ MPEG Video Stream
MP4 MPEG rw+ MPEG-4 Video Stream
MPC* MPC rw+ Magick Persistent Cache image format
MPEG MPEG rw+ MPEG Video Stream
MPG MPEG rw+ MPEG Video Stream
MRW DNG r-- Sony (Minolta) Raw Image File
MSL* MSL --- Magick Scripting Language
MSVG SVG -w+ ImageMagick's own SVG internal renderer
MTV* MTV rw+ MTV Raytracing image format
MVG* MVG rw- Magick Vector Graphics
NEF DNG r-- Nikon Digital SLR Camera Raw Image File
NRW DNG r-- Nikon Digital SLR Camera Raw Image File
NULL* NULL rw- Constant image of uniform color
O* RAW rw+ Raw opacity samples
ORF DNG r-- Olympus Digital Camera Raw Image File
OTB* OTB rw- On-the-air bitmap
OTF* TTF --- Open Type font
PAL* UYVY rw- 16bit/pixel interleaved YUV
PALM* PALM rw+ Palm pixmap
PAM* PNM rw+ Common 2-dimensional bitmap format
PANGO* PANGO --- Pango Markup Language
PATTERN* PATTERN r-- Predefined pattern
PBM* PNM rw+ Portable bitmap format (black and white)
PCD* PCD rw- Photo CD
PCDS* PCD rw- Photo CD
PCL PCL rw+ Printer Control Language
PCT* PICT rw- Apple Macintosh QuickDraw/PICT
PCX* PCX rw- ZSoft IBM PC Paintbrush
PDB* PDB rw+ Palm Database ImageViewer Format
PDF PDF rw+ Portable Document Format
PDFA PDF rw+ Portable Document Archive Format
PEF DNG r-- Pentax Electronic File
PES* PES r-- Embrid Embroidery Format
PFA* TTF --- Postscript Type 1 font (ASCII)
PFB* TTF --- Postscript Type 1 font (binary)
PFM* PFM rw+ Portable float format
PGM* PNM rw+ Portable graymap format (gray scale)
PICON* XPM rw- Personal Icon
PICT* PICT rw- Apple Macintosh QuickDraw/PICT
PIX* PIX r-- Alias/Wavefront RLE image format
PLASMA* PLASMA r-- Plasma fractal image
PNM* PNM rw+ Portable anymap
PPM* PNM rw+ Portable pixmap format (color)
PREVIEW* PREVIEW -w- Show a preview an image enhancement, effect,
or f/x
PS PS rw+ PostScript
PS2* PS2 -w+ Level II PostScript
PS3* PS3 -w+ Level III PostScript
PSB* PSD rw+ Adobe Large Document Format
PSD* PSD rw+ Adobe Photoshop bitmap
PWP* PWP r-- Seattle Film Works
R* RAW rw+ Raw red samples
RADIAL-GRADIENT* GRADIENT r-- Gradual radial passing from one shade
to another
RAF DNG r-- Fuji CCD-RAW Graphic File
RAS* SUN rw+ SUN Rasterfile
RGB* RGB rw+ Raw red, green, and blue samples
RGBA* RGB rw+ Raw red, green, blue, and alpha samples
RGBO* RGB rw+ Raw red, green, blue, and opacity samples
RLA* RLA r-- Alias/Wavefront image
RLE* RLE r-- Utah Run length encoded image
SCR* SCR r-- ZX-Spectrum SCREEN$
SCT* SCT r-- Scitex HandShake
SFW* SFW r-- Seattle Film Works
SGI* SGI rw+ Irix RGB image
SHTML* HTML -w- Hypertext Markup Language and a client-side
image map
SR2 DNG r-- Sony Raw Format 2
SRF DNG r-- Sony Raw Format
STEGANO* STEGANO r-- Steganographic image
SUN* SUN rw+ SUN Rasterfile
SVG SVG -w+ Scalable Vector Graphics
SVGZ SVG -w+ Compressed Scalable Vector Graphics
TEXT* TXT rw+ Text
TGA* TGA rw- Truevision Targa image
THUMBNAIL* THUMBNAIL -w+ EXIF Profile Thumbnail
TILE* TILE r-- Tile image with a texture
TIM* TIM r-- PSX TIM
TTC* TTF --- TrueType font collection
TTF* TTF --- TrueType font
TXT* TXT rw+ Text
UIL* UIL -w- X-Motif UIL table
UYVY* UYVY rw- 16bit/pixel interleaved YUV
VDA* TGA rw- Truevision Targa image
VICAR* VICAR rw- VICAR rasterfile format
VID* VID rw+ Visual Image Directory
VIFF* VIFF rw+ Khoros Visualization image
VST* TGA rw- Truevision Targa image
WBMP* WBMP rw- Wireless Bitmap (level 0) image
WMV MPEG rw+ Windows Media Video
WPG* WPG r-- Word Perfect Graphics
X3F DNG r-- Sigma Camera RAW Picture File
XBM* XBM rw- X Windows system bitmap (black and white)
XC* XC r-- Constant image uniform color
XCF* XCF r-- GIMP image
XPM* XPM rw- X Windows system pixmap (color)
XPS XPS r-- Microsoft XML Paper Specification
XV* VIFF rw+ Khoros Visualization image
Y* RAW rw+ Raw yellow samples
YCbCr* YCbCr rw+ Raw Y, Cb, and Cr samples
YCbCrA* YCbCr rw+ Raw Y, Cb, Cr, and alpha samples
YUV* YUV rw- CCIR 601 4:1:1 or 4:2:2

* native blob support
r read support
w write support
+ support for multiple images
$

The thing that sticks out here is how something called DICOM has jpg as
a dependent variable.
>
> Try checking your convert, to see what it claims to
> support. Maybe if the configure worked properly, the
> output format list would reflect missing libraries.
> I used the "ldd" command on convert and on some of
> the libraries convert uses, and I wasn't able to detect
> any basic libraries (yet). Something in that package,
> should have a dependency on the equivalent of libjpeg
> or the like. While Imagemagick has a history of
> "doing things their own way", you don't get brownie points
> for re-inventing all the graphics libraries over again.
> (The minus side of re-using library code, is you
> inherit all the security holes, and get to flail about
> when a new hole is discovered.)
>
> You might need source, to trace down the ways it could get broken.
>
> *******
>

As tempted as I am to look for a libjpeg, I think I should rather think
about overwriting everything I have, or not, because I don't know how to
overwrite everything I have.
> Also, you might want to run the "file" command, on your
> incoming JPEG files, to ensure they bear some resemblance
> to JPEG files :-) Just because the extension is JPEG, they
> could be something entirely different.
>
> file mybigjpeg.jpeg
>
> HTH,
> Paul

Dankenstien, Paul, you moved this puck forward. Cheers,
--
Cal

Cal Dershowitz

unread,
Aug 26, 2012, 2:32:50 AM8/26/12
to
On 08/22/2012 04:20 PM, Rainer Weikusat wrote:
I don't believe this simple solution exists. That's just my
perspective. You've criticized me elsewhere for crossposting this
matter, but if you can't tell me how to make it work, then I'm good and
goddamn-well gonna find someone who can. I'm not looking at this as
something I can fail at.

[snip]

Freundlichen Gruss aus Amiland,
--
Cal

Cal Dershowitz

unread,
Aug 26, 2012, 2:46:35 AM8/26/12
to
On 08/23/2012 05:43 AM, Floyd L. Davidson wrote:
> $ whereis convert

$ whereis convert
convert: /usr/bin/convert /usr/bin/X11/convert /usr/local/bin/convert
/usr/share/man/man1/convert.1.gz
$
--

Paul

unread,
Aug 26, 2012, 2:50:42 AM8/26/12
to
You have the same GIF entry as I do...

GIF* GIF rw+ CompuServe graphics interchange format

But your JPEG is missing entirely. There should have been one (or more)
similar to this.

JPEG JPEG rw- Joint Photographic Experts Group JFIF Format

So your build knows it didn't include JPEG. Detecting that
at runtime, would be a trifle too fancy. "Convert" was probably
built, without JPEG support. And Floyd's post shows the kind of
compile option you'd expect

LIBS = -lMagickCore -llcms -ltiff -lfreetype -ljasper -ljpeg <---
-lpng12 -ldjvulibre -lfftw3 -lfontconfig -lXext -lXt
-lSM -lICE -lX11 -llzma -lbz2 -pthread -lIlmImf -lz
-lImath -lHalf -lIex -lIlmThread -pthread -lpangocairo-1.0
-lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0
-lrt -lglib-2.0 -lxml2 -lz -lm -lgomp -lpthread -lltdl

During the "./configure" phase of the build, you should see some lines,
testing for various libraries.

To give an example of how disappointing a LiveCD can be, the other day,
I was trying to compile some code dependent on a compression library.
To my surprise, I was supposed to go to package manager (Synaptic)
and install a "dev" version of the same-named library. That gave a .h
header file in /usr/include for it, and allowed it to compile. So unlike
a lot of older setups I've used, where the .so or .a library files, and
.h headers were already in place, on the Ubuntu thing, you need to install
"dev" type versions, to get more of the goods. It could be your "./configure"
test cases that run, fail because of missing header files (jpeg.h or equivalent).
"./configure" tests for presence of libraries, by doing a test compile
to see whether a test program compiles error free. Failure to compile,
means that option is simply "turned off". And later, the "convert -list format"
command is confirming that. Some things that ./configure tests for are
mandatory (build fails completely), while some of the library dependencies
can be treated in an "optional" way. But for the end user, it's generally
pretty disappointing to find the package you just built, is "gutless".
When you think you're building a Swiss Army knife, you don't want to
end up with just "the little scissors" on it :-)

HTH,
Paul

Cal Dershowitz

unread,
Aug 26, 2012, 3:13:53 AM8/26/12
to
Ok, Paul,

First, thx for your generous response. Let me walk this back one step.

I know in many cases how to make C work. It is the language of fortran
interop, for example.

I know how to make perl work, in many cases, but this seems to be one
that eludes me for the entire week I've been at it.

Supposition 1) I will overcome.

Statement 1) While we are building a galactic highway through your
front yard, I need some if zero advice on this one, because it has to
get solved soon.

All that said, I would love a long slow C process that bore early fruits
with rendering jpeg.
--

Richard Kettlewell

unread,
Aug 26, 2012, 5:18:39 AM8/26/12
to
Cal Dershowitz <c...@example.invalid> writes:
> Rainer Weikusat wrote:

>> The simple solution to your problem is to install the ImageMagick
>> Ubuntu package (probably called imagemagick, at least, that's the name
>> of the Debian package). This will automatically install all supporting
>> libraries as well. But since only you-know-who knows in what devastated
>> state your present installation already is, the safest choice is
>> probably to start over, avoid any manual changes outside of /etc
>> and /usr/local except if you have positive confirmation that there is
>> no other option and stick to the packaged software unless some
>> technical requirement can't be satisfied in this way.
>
> I don't believe this simple solution exists. That's just my
> perspective. You've criticized me elsewhere for crossposting this
> matter, but if you can't tell me how to make it work, then I'm good
> and goddamn-well gonna find someone who can. I'm not looking at this
> as something I can fail at.

Rainer is right; the Ubuntu imagemagick package works fine. Your best
bet is to undo all the things you did while trying to compile your own
and then (re-)install that.

--
http://www.greenend.org.uk/rjk/

Paul

unread,
Aug 26, 2012, 5:32:26 AM8/26/12
to
Cal Dershowitz wrote:

> Ok, Paul,
>
> First, thx for your generous response. Let me walk this back one step.
>
> I know in many cases how to make C work. It is the language of fortran
> interop, for example.
>
> I know how to make perl work, in many cases, but this seems to be one
> that eludes me for the entire week I've been at it.
>
> Supposition 1) I will overcome.
>
> Statement 1) While we are building a galactic highway through your
> front yard, I need some if zero advice on this one, because it has to
> get solved soon.
>
> All that said, I would love a long slow C process that bore early fruits
> with rendering jpeg.

I haven't seen evidence yet, that you've used a package manager.
On Ubuntu, even if Synaptic is missing, I install that, because
I'm "used to it". Synaptic is not there by default, but at least
it's still available.

In there, you can do a keyword search. For example, you could
enter "JPEG" in the search box, and see how many packages match
that term. There will be a great many irrelevant results in the
list, things you don't need. But, you may discover the "thing"
that provides a jpeg.h, jpeg.so, or jpeg.a type files.

In the thing I was doing, it was a package ending in "-dev" that
needed to be added.

When you run "./configure", it keeps a log of the results (config.log).
What it doesn't always keep around, is things like the
tiny test program it used, to do a test compile against
the JPEG library.

*******

In Ubuntu 12.04...

sudo apt-get synaptic install

sudo synaptic &

That would show you installed packages, and then you could get
Imagemagick without building it. We'll assume you still want
to build it though... After all, you've gone to a lot of trouble
to get this far.

While in Synaptic, you can use the search box. Type in "libjpeg"
without the quotes.

I see

libjpeg-turbo8 <---+
|
libjpeg8 ------+ (Installed, depends on the turbo8 one)

libjpeg-turbo8-dev <---+
|
libjpeg8-dev ----------+ (Not installed, try installing this one)

I ticked the box next to libjpeg8-dev, then used the "Apply" button.

When I went back to the Imagemagick build directory, and ran
the ./configure command, *one* of the JPEG sections started to
say "yes" for everything. This is the section that libjpeg8-dev
causes to say "yes".

-------------------
checking for JPEG...
checking jconfig.h usability... yes
checking jconfig.h presence... yes
...
checking for JPEG library is version 6b or later... yes
checking if JPEG package is complete... yes
-------------------

Using Synaptic, you can go through the other sections of the
Imagemagick config.log file, and identify other libraries
where you need to install "-dev" versions. The "-dev" versions
give you .h header files (suitable for developers or devs).
Eventually, after a few hours, you'll get "yes" for everything.

That config.log is remarkably complete, in terms of "evidence".
I was prepared to have to resort to other means, but the
"supply of bread crumbs" was quite good actually.

In the past, I've done all this crap by hand. My very first
web browser on a Unix box, was built from scratch, and took
roughly 40 hours to download, build, and install all the
libraries the damn thing needed. That's because, our boxen
in those days, were stripped of "essentials" like proper libraries.
So when you wanted something, it meant "domino builds", one
stupid download after another. I think that browser was pretty
close to the most expensive build I ever did. We didn't have
PCs in that department, so if you wanted tools, it cost you.

Paul

Rainer Weikusat

unread,
Aug 26, 2012, 6:33:57 AM8/26/12
to
Paul <nos...@needed.com> writes:

[...]

> When you run "./configure", it keeps a log of the results (config.log).
> What it doesn't always keep around, is things like the
> tiny test program it used, to do a test compile against
> the JPEG library.

It doesn't keep them if the test succeeded. But the test code
corresponding with failed tests will be in config.log.

Floyd L. Davidson

unread,
Aug 26, 2012, 8:39:07 AM8/26/12
to
You've got two versions installed, one in /usr/bin and another in /usr/local/bin,
and you can be sure that they are confusing virtually everything you do.

It is almost certain that the /usr/bin/convert is the original distribution,
and the /usr/local/bin/convert is what you've tried to add.

Something to try before zapping one of them, is this:

$ /usr/bin/convert -list format | grep -i jp

and then try the other one,

$ /usr/bin/convert -list format | grep -i jp

Might be interesting... But regardless, you want to
uninstall the version of ImageMagick that has been
placed in /usr/local/bin and then work only with
/usr/bin from now on. That is done by using the
"--prefix=/usr" option to the /configure/ script.

Given there was no listing for any JPEG support in your
convert, it appears that libjpeg is not installed, or
can't be found by the configure script for ImageMagick.

You will not be able to make ImageMagick without first
fixing the problem with libjpeg.

Nicolas George

unread,
Aug 26, 2012, 9:44:17 AM8/26/12
to
Floyd L. Davidson, dans le message <87txvpx...@apaflo.com>, a
écrit :
> You've got two versions installed, one in /usr/bin and another in
> /usr/local/bin,

And he seems to have /usr/local/bin after /usr/bin in his path.

> Something to try before zapping one of them, is this:
> $ /usr/bin/convert -list format | grep -i jp
> and then try the other one,
> $ /usr/bin/convert -list format | grep -i jp

I suppose one of them should have been /usr/local/bin/convert.

But that will not do any good: convert is just a trivial command-line
interface to the libraries: if it's dynamically linked (which is the default
for a lot of projects), changing the binary to call will have no effect.

Floyd L. Davidson

unread,
Aug 26, 2012, 10:18:59 AM8/26/12
to
Nicolas George <nicolas$geo...@salle-s.org> wrote:
>Floyd L. Davidson, dans le message <87txvpx...@apaflo.com>, a
> écrit :
>> You've got two versions installed, one in /usr/bin and another in
>> /usr/local/bin,
>
>And he seems to have /usr/local/bin after /usr/bin in his path.
>
>> Something to try before zapping one of them, is this:
>> $ /usr/bin/convert -list format | grep -i jp
>> and then try the other one,
>> $ /usr/bin/convert -list format | grep -i jp
>
>I suppose one of them should have been /usr/local/bin/convert.

My bad... :-)

That would help!

>But that will not do any good: convert is just a trivial command-line
>interface to the libraries: if it's dynamically linked (which is the default
>for a lot of projects), changing the binary to call will have no effect.

If the one was compiled knowing where the jpeg library
is, it will work. If the other couldn't find it at
compile time it will never be able to find it.

I can easily understand wanting to compile the latest
release of ImageMagick, as I do that myself on a fairly
regular basis. But one does have to verify that the
local version actually does work correctly! With
ImageMagick that's not a big deal, because it doesn't
require anything special other than looking at the
report from running /configure/.

I use Slackware, and after any upgrade of Slackware
itself, when I decide to compile my own version of
something like ImageMagick one the the first chores is
checking to see how the distribution version was
compiled. Those guys get a lot of feedback, and they
usually know quirks for configuration that are
important!

Nicolas George

unread,
Aug 26, 2012, 10:32:44 AM8/26/12
to
Floyd L. Davidson, dans le message <87harpw...@apaflo.com>, a
�crit�:
> If the one was compiled knowing where the jpeg library
> is, it will work.

Not if it ends up loading the shared library coming from the other build.

Rainer Weikusat

unread,
Aug 26, 2012, 12:29:06 PM8/26/12
to
fl...@apaflo.com (Floyd L. Davidson) writes:

[...]

> Might be interesting... But regardless, you want to
> uninstall the version of ImageMagick that has been
> placed in /usr/local/bin and then work only with
> /usr/bin from now on. That is done by using the
> "--prefix=/usr" option to the /configure/ script.

One absolutely certainly doesn't 'want' that: Putting 'local stuff' in
/usr/local means that it will neither be silently overwritten as part
of a system update nor that there's any chance to confuse the package
manager to a sufficient degree to cause such a system update to wreck
havoc on the installation.

OTOH, some people apparently feel useless when they can't periodically
'reinstall' something and this advice is not suitable for ever getting
the system into a state where it has to be reinstalled ...

Cal Dershowitz

unread,
Sep 10, 2012, 1:53:14 AM9/10/12
to
On 08/22/2012 04:20 PM, Rainer Weikusat wrote:
$ pwd
/home/fred/Desktop/preschool
$ ls -l
total 13572
-rw-rw-r-- 1 fred fred 2811957 Sep 9 14:26 DSCN1655.JPG
-rw-rw-r-- 1 fred fred 2798749 Sep 9 14:28 DSCN1659.JPG
-rw-rw-r-- 1 fred fred 2808934 Sep 9 14:29 DSCN1660.JPG
-rw-rw-r-- 1 fred fred 2787673 Sep 9 14:31 DSCN1661.JPG
-rw-rw-r-- 1 fred fred 2679369 Sep 9 14:34 DSCN1662.JPG
$ for x in *.jpg; do convert -scale 22% $x small-$x; done
convert: unable to open image `*.jpg': @ error/blob.c/OpenBlob/2587.
convert: missing an image filename `small-*.jpg' @
error/convert.c/ConvertImageCommand/3011.
$ mogrify -resize 800x600 *
$ ls -l
total 1104
-rw-rw-r-- 1 fred fred 258439 Sep 9 22:34 DSCN1655.JPG
-rw-rw-r-- 1 fred fred 225213 Sep 9 22:34 DSCN1659.JPG
-rw-rw-r-- 1 fred fred 212632 Sep 9 22:34 DSCN1660.JPG
-rw-rw-r-- 1 fred fred 223304 Sep 9 22:34 DSCN1661.JPG
-rw-rw-r-- 1 fred fred 201936 Sep 9 22:34 DSCN1662.JPG
$

Success.
--

Cal

Floyd L. Davidson

unread,
Sep 10, 2012, 6:36:00 AM9/10/12
to
If you had specified that as

for x in *.JPG ...

it would have found the images (all of which have upper
case 'JPG' at the end, not the lower case 'jpg' specified.

>$ mogrify -resize 800x600 *
...
>Success.

But you also overwrote every single original image;
if they are duplicated elsewhere that's okay, but if
not... they are now gone forever.

You can write a shell script to do these things, and
then never have to revisit the specifics. I wouldn't
reduce the size by a percentage, because different
orignal sizes (due to cropping or whatever) will result
in different final sizes.

Here is a shell script that will produce images 800
pixels wide or 800 pixels long, on whichever dimension
is greater. It will resize smaller images upward, as
well as make larger images smaller. It also does a
touch of USM.

You can reconfigure it to a different size by changing
the MAXSIZ value.

#!/bin/bash

# Set output image maximum dimension size in pixels
MAXSIZ=800

function usage {
echo "Usage: ${0} filename1 ... filenameN"
echo ""
echo "Converts JPEG image files filename[1-N] to images"
echo "no larger than 800x800, renamed as \"filename.s.jpg\""
exit 0
}

function showsize {
echo "${1} $(exiftool -ImageSize ${1} | cut -c 35-)"
}

if [ "${#}" -lt 1 ] ; then usage ; fi

SZ1=">${MAXSIZ}x>${MAXSIZ}"
SZ2="<${MAXSIZ}x<${MAXSIZ}"
T="-thumbnail"

for i in ${*} ; do
if [ "${i: -6: 10}" == ".s.jpg" ] ; then continue; fi
if [ "${i: -4: 10}" != ".JPG" -a "${i: -4: 10}" != ".jpg" ] ; then continue; fi
showsize "${i}"
OUT="${i%%[jJ][pP][gG]}s.jpg"
convert "${i}" ${T} "${SZ1}" ${T} "${SZ2}" -unsharp 0x.5 "${OUT}"
showsize "${OUT}"
echo ""
done

exit 0

Ben Bacarisse

unread,
Sep 10, 2012, 6:43:38 AM9/10/12
to
Cal Dershowitz <c...@example.invalid> writes:
<snip>
> $ pwd
> /home/fred/Desktop/preschool
> $ ls -l
> total 13572
> -rw-rw-r-- 1 fred fred 2811957 Sep 9 14:26 DSCN1655.JPG
> -rw-rw-r-- 1 fred fred 2798749 Sep 9 14:28 DSCN1659.JPG
> -rw-rw-r-- 1 fred fred 2808934 Sep 9 14:29 DSCN1660.JPG
> -rw-rw-r-- 1 fred fred 2787673 Sep 9 14:31 DSCN1661.JPG
> -rw-rw-r-- 1 fred fred 2679369 Sep 9 14:34 DSCN1662.JPG
> $ for x in *.jpg; do convert -scale 22% $x small-$x; done
> convert: unable to open image `*.jpg': @ error/blob.c/OpenBlob/2587.
> convert: missing an image filename `small-*.jpg' @
> error/convert.c/ConvertImageCommand/3011.

Just so you know, the above failed because there are no files that match
*.jpg in the directory. You could have used "for x in *.JPG" or even
"for x in *".

> $ mogrify -resize 800x600 *
> $ ls -l
> total 1104
> -rw-rw-r-- 1 fred fred 258439 Sep 9 22:34 DSCN1655.JPG
> -rw-rw-r-- 1 fred fred 225213 Sep 9 22:34 DSCN1659.JPG
> -rw-rw-r-- 1 fred fred 212632 Sep 9 22:34 DSCN1660.JPG
> -rw-rw-r-- 1 fred fred 223304 Sep 9 22:34 DSCN1661.JPG
> -rw-rw-r-- 1 fred fred 201936 Sep 9 22:34 DSCN1662.JPG
> $
>
> Success.

The * did it.

--
Ben.

Rainer Weikusat

unread,
Sep 10, 2012, 7:03:18 AM9/10/12
to
fl...@apaflo.com (Floyd L. Davidson) writes:
I've meanwhile come to the conclusion that the guy is trolling and
these kind of 'idiot tricks' are fairly typical for that.

Cal Dershowitz

unread,
Sep 10, 2012, 3:13:22 PM9/10/12
to
Fuck off, rainer. How about that?
--
Cal
0 new messages