[Magick-bugs] A bug in writing one-channel PNG-files from Magick++ ???

Jorma Laaksonen jorma.laaksonen at hut.fi
Fri Sep 20 16:13:23 PDT 2002


Glenn Randers-Pehrson <glennrp at comcast.net> writes:

> At 03:24 PM 9/19/02 +0300, Jorma Laaksonen wrote:
> >> Do you see the same if you write the png before writing the tiff?  
> >>   img1.write("test1.png");
> >>   img1.write("test1.tiff");
> >
> >Yes I do.
> 
> Hmmph.  Also please demonstrate that a simpler program that only writes
> test1.png also produces the same wrong result.  I assume it will.
> 
> Curiously, 386 is the average value of the 4 pixels...  You might
> try another set of 4 values like 10 10 10   12 12 12  14 14 14  16 16 16
> 120 120 120  130 130 130 and see if it happens again (this should
> produce 257*13 = 3341)

So, now I'm using a Linux RedHat 7.3 system with:

gcc-c++-2.96-112
ImageMagick-(and other packages)-5.4.3.11-1
libpng-1.0.14-0.7x.3
netpbm-progs-9.24-3

The code now looks like:

#include <Magick++.h>
using namespace Magick;

main() {
  unsigned char d1[] = { 10, 10, 10, 12, 12, 12, 14, 14, 14, 16, 16, 16 };
  Image img1(2, 2, "RGB", CharPixel, d1);
  img1.write("test1.png");
}

Compiling it:

$> /usr/bin/g++ -I/usr/include/X11/magick myfile.C -L/usr/X11R6/lib -lMagick++ -lMagick -Wl,-rpath -Wl,/usr/X11R6/lib

Running it:

$> ./a.out

Seeing the result:

$> /usr/bin/pngtopnm test1.png | pnmnoraw
P2
2 2
65535
3084 3084
3084 3084

Or alternatively:

$> /usr/X11R6/bin/convert test1.png TXT:-
0,0: 3084,3084,3084  #0c0c0c0c0c0c
1,0: 3084,3084,3084  #0c0c0c0c0c0c
0,1: 3084,3084,3084  #0c0c0c0c0c0c
1,1: 3084,3084,3084  #0c0c0c0c0c0c

(So you didn't guess it...)

Additionally:

$> ldd ./a.out
        libMagick++.so.5 => /usr/X11R6/lib/libMagick++.so.5 (0x40013000)
        libMagick.so.5 => /usr/X11R6/lib/libMagick.so.5 (0x40078000)
        libstdc++-libc6.2-2.so.3 => /usr/lib/libstdc++-libc6.2-2.so.3 (0x40244000)
        libm.so.6 => /lib/libm.so.6 (0x40287000)
        libc.so.6 => /lib/libc.so.6 (0x402a8000)
        libtiff.so.3 => /usr/lib/libtiff.so.3 (0x403cf000)
        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x40412000)
        libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0x40452000)
        libpng.so.2 => /usr/lib/libpng.so.2 (0x40470000)
        libdpstk.so.1 => /usr/X11R6/lib/libdpstk.so.1 (0x40492000)
        libdps.so.1 => /usr/X11R6/lib/libdps.so.1 (0x40499000)
        libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x404db000)
        libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x404e8000)
        libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x40535000)
        libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x4053d000)
        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40554000)
        libbz2.so.1 => /usr/lib/libbz2.so.1 (0x40629000)
        libxml2.so.2 => /usr/lib/libxml2.so.2 (0x40639000)
        libz.so.1 => /usr/lib/libz.so.1 (0x406dc000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x406eb000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
        libdl.so.2 => /lib/libdl.so.2 (0x40700000)

Yours,

Jorma Laaksonen

-- 
Jorma Laaksonen                                 email: jorma.laaksonen at hut.fi
Dr. of Science in Technology, Docent            http://www.cis.hut.fi/jorma/
Laboratory of Computer and Information Science  tel. +358-9-4513269
Helsinki University of Technology               fax. +358-9-4513277
P.O.Box 5400, Fin-02015 HUT, Finland            mob. +358-50-3058719



More information about the Magick-bugs mailing list