I upgraded ImageMagick to version 6.9.1-2 on CentOS. identify works for most jpg files, except some. For those jpg files which fail with identify, I keep getting this error:
"lcms: Error #12288; Pointer error; probably corrupted file"
The similar topic was discussed in this thread:
viewtopic.php?t=25316
The solution was to download and install lcms2. I followed the solution and had latest lcms2 installed. Here is ldconfig return:
liblcms2.so.2 -> liblcms2.so.2.0.7
liblcms.so.1 -> liblcms.so.1.0.19
But the installation of lcms2 didn't help at all, I still got error #12288.
Finally, I downgraded to ImageMagick 6.7.8-10. Then the error went away.
is it a bug in ImageMagick 6.9.1-2?
Here is my CentOS release:
LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: CentOS
Description: CentOS release 6.5 (Final)
Release: 6.5
Codename: Final
I've attached one of the failed jpg files here for those who are interested.
identify Error #12288; Pointer error; probably corrupted file
Re: identify Error #12288; Pointer error; probably corrupted file
Are you sure that ImageMagick is linked with lcms2?
- fmw42
- Posts: 25562
- Joined: 2007-07-02T17:14:51-07:00
- Authentication code: 1152
- Location: Sunnyvale, California, USA
Re: identify Error #12288; Pointer error; probably corrupted file
Perhaps a conflict between lcms and lcms2 or a bad install of lcms2? Did you recompile IM after installing lcms2?
identify -verbose
on your posted image works fine for me on IM 6.9.1.2 Q16 Mac OSX
Sorry I know nothing about CentOS
Open your downloaded IM directory and then open the config.log file. See whether it is using lcms or lcms2, especially near the bottom for these two lines in my config.log
LCMS v1 --with-lcms=no no
LCMS v2 --with-lcms2=yes yes
identify -verbose
on your posted image works fine for me on IM 6.9.1.2 Q16 Mac OSX
Sorry I know nothing about CentOS
Open your downloaded IM directory and then open the config.log file. See whether it is using lcms or lcms2, especially near the bottom for these two lines in my config.log
LCMS v1 --with-lcms=no no
LCMS v2 --with-lcms2=yes yes
Re: identify Error #12288; Pointer error; probably corrupted file
I did re-compile after LCMS2 was successfully installed. I did re-compile IM 6.9.1.2 again today after success with ImageMagick 6.7.8-10.
It works this time. config.log shows correct links:
configure:30330: checking lcms2.h usability
configure:30330: gcc -std=gnu99 -std=gnu99 -c -I/usr/include/freetype2 -fopenmp -g -O2 -Wall -march=core2 -fexceptions -pthread -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 conftest.c >&5
configure:30330: $? = 0
configure:30330: result: yes
configure:30330: checking lcms2.h presence
configure:30330: gcc -E -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 conftest.c
configure:30330: $? = 0
configure:30330: result: yes
configure:30330: checking for lcms2.h
configure:30330: result: yes
configure:30364: checking for cmsSetLogErrorHandler in -llcms2
configure:30389: gcc -std=gnu99 -std=gnu99 -o conftest -I/usr/include/freetype2 -fopenmp -g -O2 -Wall -march=core2 -fexceptions -pthread -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 conftest.c -llcms2 -ljpeg -lgs -lz -lXext -lXt -lSM -lICE -lX11 -lbz2 -lgomp -lm >&5
configure:30389: $? = 0
configure:30398: result: yes
configure:30406: checking if LCMS v2 package is complete
configure:30416: result: yes
.....
LCMS v1 --with-lcms=no no
LCMS v2 --with-lcms2=yes yes
The problem is solved. Thanks a lot!
It works this time. config.log shows correct links:
configure:30330: checking lcms2.h usability
configure:30330: gcc -std=gnu99 -std=gnu99 -c -I/usr/include/freetype2 -fopenmp -g -O2 -Wall -march=core2 -fexceptions -pthread -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 conftest.c >&5
configure:30330: $? = 0
configure:30330: result: yes
configure:30330: checking lcms2.h presence
configure:30330: gcc -E -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 conftest.c
configure:30330: $? = 0
configure:30330: result: yes
configure:30330: checking for lcms2.h
configure:30330: result: yes
configure:30364: checking for cmsSetLogErrorHandler in -llcms2
configure:30389: gcc -std=gnu99 -std=gnu99 -o conftest -I/usr/include/freetype2 -fopenmp -g -O2 -Wall -march=core2 -fexceptions -pthread -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 conftest.c -llcms2 -ljpeg -lgs -lz -lXext -lXt -lSM -lICE -lX11 -lbz2 -lgomp -lm >&5
configure:30389: $? = 0
configure:30398: result: yes
configure:30406: checking if LCMS v2 package is complete
configure:30416: result: yes
.....
LCMS v1 --with-lcms=no no
LCMS v2 --with-lcms2=yes yes
The problem is solved. Thanks a lot!
Re: identify Error #12288; Pointer error; probably corrupted file
chen wrote:I did re-compile after LCMS2 was successfully installed. I did re-compile IM 6.9.1.2 again today after success with ImageMagick 6.7.8-10.
...
It works this time.
...
The problem is solved. Thanks a lot!
Do you know if the images that didn't work were using a Photoshop color profile? I seem to have this exact same issue when trying to use identify or convert on a JPG image that is using the "ISO Coated v2 300% ECI" profile, but have no issues with a file using the "US Web Coated SWOP v2" profile that is apparently some default when exporting files from Photoshop (at least here in the US).
I do NOT have lcms2 and was hoping to avoid re-compiling ImageMagick on multiple production machines, but that looks like it may be the only option sadly.