Package: libgraphicsmagick1-dev
Version: 1.4+really1.3.45+hg17696-1
Severity: important

Using the demo.c example code from
/usr/share/doc/libgraphicsmagick1-dev/www/api/api.html fails to generate a gif
animation in the trixie version of libgraphicsmagick1-dev. It worked
correctly under bullseye.

I'm not sure if this is a failure of the documentation to track the API
or an actual bug in the library.

demo.c:

        #include <stdio.h>
        #include <string.h>
        #include <time.h>
        #include <sys/types.h>
        #include <magick/api.h>

        int main(int argc,char **argv)
        {
          ExceptionInfo
                 exception;

          Image
                 *image,
                 *images,
                 *resize_image,
                 *thumbnails;

          ImageInfo
                 *image_info;

          int
                 i;

          /*
                 Initialize the image info structure and read the list of files
                 provided by the user as a image sequence
          */
          InitializeMagick(*argv);
          GetExceptionInfo(&exception);
          image_info=CloneImageInfo((ImageInfo *) NULL);
          images=NewImageList();
          for (i=1; i< argc-1; i++)
                 {
                        (void) strcpy(image_info->filename,argv[i]);
                        printf("Reading %s ...", image_info->filename);
                        image=ReadImage(image_info,&exception);
                        printf(" %lu frames\n", GetImageListLength(image));
                        if (exception.severity != UndefinedException)
                          CatchException(&exception);
                        if (image)
                          (void) AppendImageToList(&images,image);
                 }

          if (!images)
                 {
                        printf("Failed to read any images!\n");
                        exit(1);
                 }
          /*
                 Create a thumbnail image sequence
          */
          thumbnails=NewImageList();
          while ((image=RemoveFirstImageFromList(&images)) != (Image *) NULL)
                 {
                        
resize_image=ResizeImage(image,106,80,LanczosFilter,1.0,&exception);
                        DestroyImage(image);
                        if (resize_image == (Image *) NULL)
                          {
                                 CatchException(&exception);
                                 continue;
                          }
                        (void) AppendImageToList(&thumbnails,resize_image);
                 }
          /*
                 Write the thumbnail image sequence to file
          */
          if (thumbnails)
                 {
                        (void) strcpy(thumbnails->filename,argv[argc-1]);
                        image_info->adjoin=MagickTrue;
                        printf("Writing %s ... %lu frames\n", 
thumbnails->filename,
                                         GetImageListLength(thumbnails));
                        WriteImage(image_info,thumbnails);
                 }

          /*
                 Release resources
          */
          DestroyImageList(thumbnails);
          DestroyImageInfo(image_info);
          DestroyExceptionInfo(&exception);
          DestroyMagick();
          return(0);
        }

test script test.sh:

        #!/bin/sh

        dpkg-query -W libgraphicsmagick1-dev

        for i in 1 2 3 4 5 6
        do
        gm convert -size 300x300 -background white -fill black -pointsize 200 \
                label:$i $i.png
        done

        gcc -o demo demo.c -O `GraphicsMagick-config --cppflags --ldflags 
--libs`

        ./demo *.png out.gif

        gm identify out.gif

output under trixie:

        libgraphicsmagick1-dev  1.4+really1.3.45+hg17696-1
        Reading 1.png ... 1 frames
        Reading 2.png ... 1 frames
        Reading 3.png ... 1 frames
        Reading 4.png ... 1 frames
        Reading 5.png ... 1 frames
        Reading 6.png ... 1 frames
        Writing out.gif ... 6 frames
        out.gif GIF 106x80+0+0 PseudoClass 256c 8-bit 1.7Ki 0.000u 0m:0.000000s

Only 6.png ends up in the final image. However the following works fine:

        $ gm convert *.png out2.gif
        $ gm identify out2.gif
        out2.gif[0] GIF 300x300+0+0 PseudoClass 128c 8-bit 17.2Ki 0.000u 
0m:0.000000s
        out2.gif[1] GIF 300x300+0+0 PseudoClass 256c 8-bit 17.2Ki 0.000u 
0m:0.000203s
        out2.gif[2] GIF 300x300+0+0 PseudoClass 256c 8-bit 17.2Ki 0.000u 
0m:0.000205s
        out2.gif[3] GIF 300x300+0+0 PseudoClass 256c 8-bit 17.2Ki 0.000u 
0m:0.000200s
        out2.gif[4] GIF 300x300+0+0 PseudoClass 256c 8-bit 17.2Ki 0.000u 
0m:0.000203s
        out2.gif[5] GIF 300x300+0+0 PseudoClass 256c 8-bit 17.2Ki 0.000u 
0m:0.000210s

Test script output undef bullseye:

        libgraphicsmagick1-dev  1.4+really1.3.36+hg16481-2+deb11u1
        Reading 1.png ... 1 frames
        Reading 2.png ... 1 frames
        Reading 3.png ... 1 frames
        Reading 4.png ... 1 frames
        Reading 5.png ... 1 frames
        Reading 6.png ... 1 frames
        Writing out.gif ... 6 frames
        out.gif[0] GIF 106x80+0+0 PseudoClass 256c 8-bit 8.6Ki 0.000u 
0m:0.000002s
        out.gif[1] GIF 106x80+0+0 PseudoClass 256c 8-bit 8.6Ki 0.000u 
0m:0.000096s
        out.gif[2] GIF 106x80+0+0 PseudoClass 256c 8-bit 8.6Ki 0.000u 
0m:0.000097s
        out.gif[3] GIF 106x80+0+0 PseudoClass 128c 8-bit 8.6Ki 0.000u 
0m:0.000090s
        out.gif[4] GIF 106x80+0+0 PseudoClass 256c 8-bit 8.6Ki 0.000u 
0m:0.000096s
        out.gif[5] GIF 106x80+0+0 PseudoClass 256c 8-bit 8.6Ki 0.000u 
0m:0.000101s

-- System Information:
Debian Release: 13.6
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 6.12.96+deb13-amd64 (SMP w/16 CPU threads; PREEMPT)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE, 
TAINT_UNSIGNED_MODULE
Locale: LANG=en_CA.ISO-8859-1, LC_CTYPE=en_CA.ISO-8859-1 (charmap=ISO-8859-1), 
LANGUAGE=en_CA:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages libgraphicsmagick1-dev depends on:
ii  libbz2-dev                         1.0.8-6
ii  libc6-dev                          2.41-12+deb13u3
ii  libexif-dev                        0.6.25-1+deb13u1
ii  libfreetype-dev                    2.13.3+dfsg-1+deb13u1
ii  libgraphicsmagick-q16-3t64         1.4+really1.3.45+hg17696-1
ii  libheif-dev                        1.19.8-1
ii  libice-dev                         2:1.1.1-1
ii  libjbig-dev                        2.1-6.1+b2
ii  libjpeg-dev                        1:2.1.5-4
ii  libjpeg62-turbo-dev [libjpeg-dev]  1:2.1.5-4
ii  libjxl-dev                         0.11.2-0.1~deb13u2
ii  liblcms2-dev                       2.16-2+deb13u2
ii  libltdl-dev                        2.5.4-4
ii  libpng-dev                         1.6.48-1+deb13u5
ii  libsm-dev                          2:1.2.6-1
ii  libtiff-dev                        4.7.0-3+deb13u3
ii  libwebp-dev                        1.5.0-0.1
ii  libwmf-dev                         0.2.13-1.1+b3
ii  libx11-dev                         2:1.8.12-1
ii  libxext-dev                        2:1.3.4-1+b3
ii  libxml2-dev                        2.12.7+dfsg+really2.9.14-2.1+deb13u3
ii  libzstd-dev                        1.5.7+dfsg-1
ii  pkgconf                            1.8.1-4
ii  x11proto-dev [x11proto-core-dev]   2024.1-1
ii  zlib1g-dev [libz-dev]              1:1.3.dfsg+really1.3.1-1+b1

libgraphicsmagick1-dev recommends no packages.

Versions of packages libgraphicsmagick1-dev suggests:
ii  graphicsmagick  1.4+really1.3.45+hg17696-1

-- no debconf information

Reply via email to