Import Upstream version 6.9.12.98+dfsg1

This commit is contained in:
luoyaoming 2024-05-09 10:37:39 +08:00
parent 66d1e3d7a0
commit 18492346e0
924 changed files with 52236 additions and 73856 deletions

View File

@ -81,7 +81,7 @@ Chantal Racette, Laurentian University
William Radcliffe
Author of the VisualMagick project configure facility for Visual C++.
Author of FlashPix module. Author of the EMF, XTRN, and META coders.
Author of FlashPix module. Author of the EMF, and META coders.
Significant contributions to the MSL, JPEG, TIFF, SVG, and URL coders.
Authored "process" module support. Wrote the micro-timer facility used
by 'identify'. Ported module loader support to Windows. Significantly

8708
ChangeLog

File diff suppressed because it is too large Load Diff

View File

@ -5,29 +5,35 @@ Name: @PACKAGE_NAME@
Version: %{VERSION}
Release: %{Patchlevel}
Summary: Use ImageMagick to convert, edit, or compose bitmap images in a variety of formats. In addition resize, rotate, shear, distort and transform images.
Group: Applications/Multimedia
License: https://imagemagick.org/script/license.php
Url: https://imagemagick.org/
Source0: https://imagemagick.org/download/%{name}/%{name}-%{VERSION}-%{Patchlevel}.tar.bz2
Source0: https://imagemagick.org/download/%{name}/%{name}-%{VERSION}-%{Patchlevel}.tar.xz
BuildRequires: pkgconfig(bzip2), pkgconfig(freetype2), pkgconfig(libjpeg), pkgconfig(libpng)
BuildRequires: pkgconfig(libtiff-4), giflib-devel, pkgconfig(zlib), perl-devel >= 5.8.1
BuildRequires: perl-generators
BuildRequires: libgs-devel, ghostscript-x11
BuildRequires: pkgconfig(ddjvuapi)
BuildRequires: pkgconfig(libwmf), pkgconfig(jasper), libtool-ltdl-devel
BuildRequires: pkgconfig(x11), pkgconfig(xext), pkgconfig(xt)
BuildRequires: pkgconfig(lcms2), pkgconfig(libxml-2.0), pkgconfig(librsvg-2.0)
BuildRequires: pkgconfig(OpenEXR)
BuildRequires: pkgconfig(fftw3), pkgconfig(libwebp)
BuildRequires: jbigkit-devel
BuildRequires: pkgconfig(libopenjp2) >= 2.1.0
BuildRequires: pkgconfig(libcgraph) >= 2.9.0
BuildRequires: pkgconfig(raqm)
BuildRequires: pkgconfig(lqr-1)
BuildRequires: pkgconfig(libraw) >= 0.14.8
BuildRequires: pkgconfig(libzstd)
BuildRequires: autoconf automake gcc gcc-c++
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: bzip2-devel, freetype-devel, libjpeg-devel, libpng-devel
BuildRequires: libtiff-devel, giflib-devel, zlib-devel, perl-devel >= 5.8.1
BuildRequires: ghostscript-devel, djvulibre-devel
BuildRequires: libwmf-devel
BuildRequires: libX11-devel, libXext-devel, libXt-devel
BuildRequires: lcms2-devel, libxml2-devel, librsvg2-devel, OpenEXR-devel
BuildRequires: fftw-devel, OpenEXR-devel, libwebp-devel
BuildRequires: jbigkit-devel
BuildRequires: openjpeg2-devel >= 2.1.0
BuildRequires: autoconf automake libtool-ltdl-devel
%description
ImageMagick® is a software suite to create, edit, compose, or convert bitmap images. It can read and write images in a variety of formats (over 200) including PNG, JPEG, JPEG-2000, GIF, TIFF, DPX, EXR, WebP, Postscript, PDF, and SVG. Use ImageMagick to resize, flip, mirror, rotate, distort, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves.
The functionality of ImageMagick is typically utilized from the command-line or you can use the features from programs written in your favorite language. Choose from these interfaces: G2F (Ada), MagickCore (C), MagickWand (C), ChMagick (Ch), ImageMagickObject (COM+), Magick++ (C++), JMagick (Java), L-Magick (Lisp), Lua (LuaJIT), NMagick (Neko/haXe), Magick.NET (.NET), PascalMagick (Pascal), PerlMagick (Perl), MagickWand for PHP (PHP), IMagick (PHP), PythonMagick (Python), RMagick (Ruby), or TclMagick (Tcl/TK). With a language interface, use ImageMagick to modify or create images dynamically and automagically.
The functionality of ImageMagick is typically utilized from the command-line or you can use the features from programs written in your favorite language. Choose from these interfaces: G2F (Ada), MagickCore (C), MagickWand (C), ChMagick (Ch), Magick++ (C++), JMagick (Java), L-Magick (Lisp), Lua (LuaJIT), NMagick (Neko/haXe), Magick.NET (.NET), PascalMagick (Pascal), PerlMagick (Perl), MagickWand for PHP (PHP), IMagick (PHP), PythonMagick (Python), RMagick (Ruby), or TclMagick (Tcl/TK). With a language interface, use ImageMagick to modify or create images dynamically and automagically.
ImageMagick utilizes multiple computational threads to increase performance and can read, process, or write mega-, giga-, or tera-pixel image sizes.
@ -37,14 +43,9 @@ The ImageMagick development process ensures a stable API and ABI. Before each Im
The authoritative ImageMagick web site is https://imagemagick.org. The authoritative source code repository is http://git.imagemagick.org/repos/ImageMagick. We maintain a source code mirror at GitHub.
%package devel
Summary: Library links and header files for ImageMagick application development
Group: Development/Libraries
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: libX11-devel, libXext-devel, libXt-devel, ghostscript-devel
Requires: bzip2-devel, freetype-devel, libtiff-devel, libjpeg-devel, lcms2-devel
Requires: libwebp-devel, OpenEXR-devel, openjpeg2-devel, pkgconfig
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
%description devel
@ -59,7 +60,6 @@ however.
%package libs
Summary: ImageMagick libraries to link with
Group: Applications/Multimedia
%description libs
This packages contains a shared libraries to use within other applications.
@ -67,7 +67,6 @@ This packages contains a shared libraries to use within other applications.
%package djvu
Summary: DjVu plugin for ImageMagick
Group: Applications/Multimedia
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
%description djvu
@ -77,7 +76,6 @@ save and load DjvU files from ImageMagick and libMagickCore using applications.
%package doc
Summary: ImageMagick HTML documentation
Group: Documentation
%description doc
@ -89,7 +87,6 @@ https://imagemagick.org/.
%package perl
Summary: ImageMagick perl bindings
Group: System Environment/Libraries
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
@ -103,7 +100,6 @@ ImageMagick.
%package c++
Summary: ImageMagick Magick++ library (C++ bindings)
Group: System Environment/Libraries
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
%description c++
@ -115,7 +111,6 @@ Install ImageMagick-c++ if you want to use any applications that use Magick++.
%package c++-devel
Summary: C++ bindings for the ImageMagick library
Group: Development/Libraries
Requires: %{name}-c++%{?_isa} = %{version}-%{release}
Requires: %{name}-devel%{?_isa} = %{version}-%{release}
@ -134,13 +129,15 @@ however.
%prep
%setup -q -n %{name}-%{VERSION}-%{Patchlevel}
%autosetup -p1 -n %{name}-%{VERSION}-%{Patchlevel}
# for %%doc
mkdir Magick++/examples
cp -p Magick++/demo/*.cpp Magick++/demo/*.miff Magick++/examples
%build
autoconf -f -i
export CFLAGS="%{optflags} -DIMPNG_SETJMP_IS_THREAD_SAFE"
%configure --enable-shared \
--disable-static \
--with-modules \
@ -148,6 +145,7 @@ cp -p Magick++/demo/*.cpp Magick++/demo/*.miff Magick++/examples
--with-x \
--with-threads \
--with-magick_plus_plus \
--with-gslib \
--with-wmf \
--with-webp \
--with-openexr \
@ -157,20 +155,21 @@ cp -p Magick++/demo/*.cpp Magick++/demo/*.miff Magick++/examples
--without-dps \
--without-gcc-arch \
--with-jbig \
--with-openjp2
--with-openjp2 \
--with-raw \
--with-lqr \
--with-gvc \
--with-raqm
# Do *NOT* use %%{?_smp_mflags}, this causes PerlMagick to be silently misbuild
make
make -j3
%install
make %{?_smp_mflags} install DESTDIR=%{buildroot} INSTALL="install -p"
%make_install
cp -a www/source %{buildroot}%{_datadir}/doc/%{name}-%{VERSION}
rm %{buildroot}%{_libdir}/*.la
# fix weird perl Magick.so permissions
chmod -f 755 %{buildroot}%{perl_vendorarch}/auto/Image/Magick/*/*.so
# perlmagick: fix perl path of demo files
%{__perl} -MExtUtils::MakeMaker -e 'MY->fixin(@ARGV)' PerlMagick/demo/*.pl
@ -183,17 +182,17 @@ find %{buildroot} -name "perllocal.pod" |xargs rm -f
echo "%defattr(-,root,root,-)" > perl-pkg-files
find %{buildroot}/%{_libdir}/perl* -type f -print \
| sed "s@^%{buildroot}@@g" > perl-pkg-files
find %{buildroot}%{perl_vendorarch} -type d -print \
| sed "s@^%{buildroot}@%dir @g" \
| grep -v '^%dir %{perl_vendorarch}$' \
| grep -v '/auto$' >> perl-pkg-files
#find %{buildroot}%{perl_vendorarch} -type d -print \
# | sed "s@^%{buildroot}@%dir @g" \
# | grep -v '^%dir %{perl_vendorarch}$' \
# | grep -v '/auto$' >> perl-pkg-files
if [ -z perl-pkg-files ] ; then
echo "ERROR: EMPTY FILE LIST"
exit -1
fi
# fix multilib issues: Rename provided file with platform-bits in name.
# Create platform independant file inplace of provided and conditionally include required.
# Create platform independent file inplace of provided and conditionally include required.
# $1 - filename.h to process.
function multilibFileVersions(){
mv $1 ${1%%.h}-%{__isa_bits}.h
@ -219,19 +218,13 @@ multilibFileVersions %{buildroot}%{_includedir}/%{name}-6/magick/version.h
%check
export LD_LIBRARY_PATH=%{buildroot}/%{_libdir}
make %{?_smp_mflags} check
%post libs -p /sbin/ldconfig
%post c++ -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
%postun c++ -p /sbin/ldconfig
%make_build check
%ldconfig_scriptlets libs
%ldconfig_scriptlets c++
%files
%doc README.txt LICENSE NOTICE AUTHORS.txt NEWS.txt ChangeLog
%doc README.txt LICENSE NOTICE AUTHORS.txt NEWS.txt
%{_bindir}/[a-z]*
%{_mandir}/man[145]/[a-z]*
%{_mandir}/man1/%{name}.*
@ -300,4 +293,4 @@ make %{?_smp_mflags} check
%changelog
* Sun May 01 2005 Cristy <cristy@mystic.es.dupont.com> 1.0-0
- Port of Redhat's RPM script to support ImageMagick.
- Port of RedHat's RPM script to support ImageMagick.

View File

@ -1,14 +1,13 @@
Download & Unpack
ImageMagick builds on a variety of Unix and Unix-like operating systems
including Linux, Solaris, FreeBSD, Mac OS X, and others. A compiler is
including Linux, Ubuntu, Mac OS X, Windows, and others. A compiler is
required and fortunately almost all modern Unix systems have one. Download
ImageMagick.tar.gz from ftp.imagemagick.org or its mirrors and verify the
distribution against its message digest.
https://legacy.imagemagick.org/archive/ImageMagick.tar.gz
Unpack the distribution with this command:
$magick> tar xvfz ImageMagick.tar.gz
$ tar xvfz ImageMagick.tar.gz
Now that you have the ImageMagick Unix/Linux source distribution unpacked,
let's configure it.
@ -23,86 +22,12 @@ Configure
default options, and build from within the source directory, you can simply
type:
$magick> cd ImageMagick-6.9.6
$magick> ./configure
$ cd ImageMagick-6.9.12
$ ./configure
Watch the configure script output to verify that it finds everything that
you think it should. Pay particular attention to the last lines of the script
output. For example, here is a recent report from our system:
ImageMagick is configured as follows. Please verify that this configuration
matches your expectations.
Host system type: x86_64-unknown-linux-gnu
Build system type: x86_64-unknown-linux-gnu
Option Value
----------------------------------------------------------------------------
Shared libraries --enable-shared=yes yes
Static libraries --enable-static=yes yes
Module support --with-modules=yes yes
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=yes yes
DJVU --with-djvu=yes no
DPS --with-dps=yes no
FlashPIX --with-fpx=yes no
FontConfig --with-fontconfig=yes yes
FreeType --with-freetype=yes yes
GhostPCL None pcl6 (unknown)
GhostXPS None gxps (unknown)
Ghostscript None gs (8.63)
result_ghostscript_font_dir='none'
Ghostscript fonts --with-gs-font-dir=default
Ghostscript lib --with-gslib=yes no (failed tests)
Graphviz --with-gvc=yes yes
JBIG --with-jbig= no
JPEG v1 --with-jpeg=yes yes
JPEG-2000 --with-jp2=yes yes
LCMS v1 --with-lcms=yes yes
LCMS v2 --with-lcms2=yes yes
LQR --with-lqr=yes no
Magick++ --with-magick-plus-plus=yes yes
OpenEXR --with-openexr=yes yes
PERL --with-perl=yes /usr/bin/perl
PNG --with-png=yes yes
RSVG --with-rsvg=yes yes
TIFF --with-tiff=yes yes
result_windows_font_dir='none'
Windows fonts --with-windows-font-dir=
WMF --with-wmf=yes yes
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/local
EXEC-PREFIX = /usr/local
VERSION = 6.4.8
CC = gcc -std=gnu99
CFLAGS = -fopenmp -g -O2 -Wall -W -pthread
MAGICK_CFLAGS = -fopenmp -g -O2 -Wall -W -pthread
CPPFLAGS = -I/usr/local/include/ImageMagick
PCFLAGS = -fopenmp
DEFS = -DHAVE_CONFIG_H
LDFLAGS = -lfreetype
MAGICK_LDFLAGS = -L/usr/local/lib -lfreetype
LIBS = -lMagickCore -llcms -ltiff -lfreetype -ljpeg
-lfontconfig -lXext -lSM -lICE -lX11 -lXt -lbz2 -lz
-lm -lgomp -lpthread -lltdl
CXX = g++
CXXFLAGS = -g -O2 -Wall -W -pthread
output.
You can influence the choice of compiler, compilation flags, or libraries of
the configure script by setting initial values for variables in the configure
@ -137,7 +62,7 @@ Configure
Here is an example of setting configure variables from the command line:
$magick> ./configure CC=c99 CFLAGS=-O2 LIBS=-lposix
$ ./configure CC=c99 CFLAGS=-O2 LIBS=-lposix
Any variable (e.g. CPPFLAGS or LDFLAGS) which requires a directory path must
specify an absolute path rather than a relative path.
@ -404,9 +329,6 @@ Configure
disable JPEG v2 support.
--without-lcms
disable lcms (v1.1X) support
--without-lcms2
disable lcms (v2.X) support
--without-lzma
@ -521,7 +443,7 @@ Build
In most cases you will simply want to compile ImageMagick with this command:
$magick> make
$ make
Once built, you can optionally install ImageMagick on your system as
discussed below.
@ -530,7 +452,7 @@ Install
Now that ImageMagick is configured and built, type:
$magick> make install
$ make install
to install it.
@ -545,26 +467,26 @@ Install
ensure that the installation directory is in your executable search path
and type:
$magick> display
$ display
The ImageMagick logo is displayed on your X11 display.
To verify the ImageMagick build configuration, type:
$magick> identify -list configure
$ identify -list configure
To list which image formats are supported , type:
$magick> identify -list format
$ identify -list format
For a more comprehensive test, you run the ImageMagick test suite by typing:
$magick> make check
$ make check
Ghostscript is a prerequisite, otherwise the EPS, PS, and PDF tests will
fail. Note that due to differences between the developer's environment and
your own it is possible that a few tests may fail even though the results are
ok. Differences between the developer's environment environment and your own
ok. Differences between the developer's environment and your own
may include the compiler, the CPU type, and the library versions used. The
ImageMagick developers use the current release of all dependent libraries.
@ -575,12 +497,12 @@ Linux-specific Build instructions
Build ImageMagick with this command:
$magick> rpmbuild --rebuild ImageMagick.src.rpm
$ rpmbuild --rebuild ImageMagick.src.rpm
After the build you, locate the RPMS folder and install the ImageMagick
binary RPM distribution:
$magick> rpm -ivh ImageMagick-6.8.2-?.*.rpm
$ rpm -ivh ImageMagick-6.9.12-?.*.rpm
MinGW-specific Build instructions
@ -590,12 +512,13 @@ MinGW-specific Build instructions
sure you specify the development headers when you install a package. Next
type,
$magick> tar jxvf ImageMagick-6.8.2-?.tar.bz2
$magick> cd ImageMagick-6.8.2
$magick> export CPPFLAGS="-Ic:/Progra~1/GnuWin32/include"
$magick> export LDFLAGS="-Lc:/Progra~1/GnuWin32/lib"
$magick> ./configure --without-perl
$magick> make $magick> sudo make install
$ tar jxvf ImageMagick-6.9.12-?.tar.bz2
$ cd ImageMagick-6.9.12
$ export CPPFLAGS="-Ic:/Progra~1/GnuWin32/include"
$ export LDFLAGS="-Lc:/Progra~1/GnuWin32/lib"
$ ./configure --without-perl
$ make
$ sudo make install
Dealing with Unexpected Problems
@ -613,19 +536,19 @@ Dealing with Unexpected Problems
Some systems may fail to link at build time due to unresolved symbols. Try
adding the LDFLAGS to the configure command line:
$magick> configure LDFLAGS='-L/usr/local/lib -R/usr/local/lib'
$ configure LDFLAGS='-L/usr/local/lib -R/usr/local/lib'
Dynamic Linker Run-time Bindings
On some systems, ImageMagick may not find its shared library, libMagick.so. Try
running the ldconfig with the library path:
$magick> /sbin/ldconfig /usr/local/lib
$ /sbin/ldconfig /usr/local/lib
Solaris and Linux systems have the ldd command which is useful to track which
libraries ImageMagick depends on:
$magick> ldd `which convert`
$ ldd `which convert`
Delegate Libraries
@ -640,12 +563,12 @@ Dealing with Unexpected Problems
files and reconfigure, rebuild, and reinstall ImageMagick. As an example,
lets add support for the JPEG image format. First we install the JPEG RPMS:
$magick> yum install libjpeg libjpeg-devel
$ yum install libjpeg libjpeg-devel
Now reconfigure, rebuild, and reinstall ImageMagick. To verify JPEG is now
properly supported within ImageMagick, use this command:
$magick> identify -list format
$ identify -list format
You should see a mode of rw- associated with the JPEG tag. This mode means
the image can be read or written and can only support one image per image

View File

@ -1,49 +1,2 @@
This document describes the requirements and instructions to build ImageMagick
for Windows on your own machine.
Requirements
o Visual Studio 2013 (or newer)
o Git for Windows
o AMD APP SDK (optional
for OpenCL support)
Install Visual Studio dependencies
To build ImageMagick with Visual Studio the following components should
be installed:
o Desktop development with C++ (workload)
o Visual C++ ATL for x86 and x64
o Visual C++ MFC for x86 and x64
o Windows XP support for C++ (optional if the output needs to run on Windows
XP)
Naming of these components might differ between version of Visual Studio. The
example above use the Visual Studio 2017 names.
Clone the dependencies
The ImageMagick library is build with a number of third party libraries. Run
CloneRepositories.cmd to clone these libraries and the ImageMagick library.
Build configure.exe
One of the folders that was created in the previous step is called VisualMagick
and this folder contains a folder called configure. This folder contains a
solution configure.sln. Open this solution with Visual Studio and start a
Release build of the project. This will create a file called configure.exe in
the folder. Running this program will start a Wizard that allows configuration
of ImageMagick and its individual components.
Build ImageMagick
Depending on which options where chosen when running configure.exe one of
the following solutions will be created in the VisualMagick folder:
o VisualDynamicMT.sln (Dynamic Multi-threaded DLL runtimes)
o VisualStaticMTD.sln (Static Multi-threaded DLL runtimes)
o VisualStaticMT.sln (Static Multi-threaded runtimes)
Open the solution to start building ImageMagick. The binaries will be created
in the VisualMagick\bin folder.
Instructions on how to build ImageMagick on Windows can be found here:
https://github.com/ImageMagick/ImageMagick-Windows6

View File

@ -38,7 +38,7 @@ Terms and Conditions for Use, Reproduction, and Distribution
The legally binding and authoritative terms and conditions for use, reproduction, and distribution of ImageMagick follow:
Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization dedicated to making software imaging solutions freely available.
Copyright @ 1999 ImageMagick Studio LLC, a non-profit organization dedicated to making software imaging solutions freely available.
1. Definitions.

View File

@ -1,4 +1,4 @@
The author and maintainer of Magick++ is Bob Friesenhan
The author and maintainer of Magick++ is Bob Friesenhahn
<bfriesen@simple.dallas.tx.us>.
Many thanks to Cristy for developing the powerful ImageMagick

View File

@ -52,7 +52,7 @@
2007-04-10 6.3.3-7 Cristy <quetzlzacatenango@image...>
* Add colorspaceType(RGBColorspace) to set RGB colorspace before an
image read (useful to convert CMYK Potscript to RGB).
image read (useful to convert CMYK Postscript to RGB).
2006-02-05 6.3.2-3 Cristy <quetzlzacatenango@image...>
* Clear exception in throwException() method.
@ -214,7 +214,7 @@
* lib/Magick++/STL.h (coalesceImages): Replaced implementation
with one from Felix Heimbrecht. The template signature has
changed to return a new image sequence. This template API
silently ceased to funtion due to an ImageMagick CoalesceImages
silently ceased to function due to an ImageMagick CoalesceImages
API change.
2003-03-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
@ -558,10 +558,10 @@
2001-12-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* lib/Drawable.cpp (DrawableCompositeImage): Read image
immediately if provided by filename, register with peristent
registry, and pass as perisistant image type.
immediately if provided by filename, register with persistent
registry, and pass as persistent image type.
(DrawableCompositeImage): Support specifying Image in memory.
Passed as perisistant image type.
Passed as persistent image type.
2001-12-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
@ -730,7 +730,7 @@
* lib/Image.cpp (clipMask): New method to add a clip mask to the
image. Adds clipping to any image operation wherever the clip
mask image is tranparent.
mask image is transparent.
2001-08-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
@ -965,7 +965,7 @@
coordinates
(PathLinetoHorizontalRel): New class. Horizontal lineto, relative
coordinates
(PathLinetoVerticalAbs): New class. Veritical lineto, absolute
(PathLinetoVerticalAbs): New class. Vertical lineto, absolute
coordinates.
(PathLinetoVerticalRel): New class. Vertical lineto, relative
coordinates.
@ -1047,7 +1047,7 @@
2000-09-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* lib/Magick++/Drawable.h: Reverted Coordinate implemenation back
* lib/Magick++/Drawable.h: Reverted Coordinate implementation back
from and STL pair based implementation to a simple class. Maybe
this will improve portability. It is more understandable anyway.
@ -1179,7 +1179,7 @@
2000-02-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
* lib/Image.cpp : Call-back based LastError class is eliminated in
favor of ImageMagick 5.2's re-entrant ExceptionInfo reporting.
favor of ImageMagick 5.2's reentrant ExceptionInfo reporting.
This should make Magick++ thread safe under Win32.
2000-02-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
@ -1424,7 +1424,7 @@
ImageMagick to avoid namespace-induced problems.
* configure.in : CPPFLAGS and LDFLAGS specified via the
environment take precidence over flags from Magick-config.
environment take precedence over flags from Magick-config.
1999-05-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

View File

@ -156,7 +156,7 @@ instructions in README.txt (under the heading "Windows Win2K/95 VISUAL C++
Cygwin & GCC
It is possible to build both ImageMagick and Magick++ under the Cygwin
Unix-emulation environment for Windows NT. Obtain and install Cgywin from
Unix-emulation environment for Windows NT. Obtain and install Cygwin from
http://www.cygwin.com/ . An X11R6 environment for Cygwin is available
from http://www.cygwin.com/xfree/ .To build using Cygwin and GCC, follow
the instructions for building under Unix. ImageMagick and Magick++ do not

View File

@ -72,7 +72,7 @@ This file records noteworthy changes in Magick++.
* DrawableCompositeImage can be constructed based on an Image in memory
rather than just a filename.
* Added Drawable objects (DrawablePushPattern & DrawablePopPattern)
for definining arbitrary named patterns to be used for stroke and fill.
for defining arbitrary named patterns to be used for stroke and fill.
* Added Image strokePattern() and fillPattern() methods for specifying
image to use while drawing stroked object outlines and while filling
objects, respectively.
@ -123,7 +123,7 @@ This file records noteworthy changes in Magick++.
* Added clipMask method to add a clip mask to the current
image. Prevents modification to image pixels wherever the
associated clip mask image is tranparent.
associated clip mask image is transparent.
* Documented methods which were added previously, but left
undocumented.
@ -226,7 +226,7 @@ This file records noteworthy changes in Magick++.
* Fix text annotation bug which did not allow spaces in annotation text.
* Added gaussianBlurImage() method.
* Fixed bug in floodFillTexture().
* Re-worked error reporting methodology to use re-entrant error
* Re-worked error reporting methodology to use reentrant error
reporting rather than the previous method (based on call-backs)
which required thread specific data.
* Should be thread-safe under Win32 now.
@ -307,7 +307,7 @@ This file records noteworthy changes in Magick++.
* Added Blob class to support supplying formatted binary data to methods.
* Added support for setting ICC and IPTC profiles from a binary BLOB.
* Added support for transformations of image data to/from alternate
colorspace (e.g. CYMK).
colorspace (e.g. CMYK).
* Added support for 'pinging' an image (get image dimensions/size quickly).
* Added 'uncondense' method to de-compress in-memory image data.
* Added support for annotation using rotated text.
@ -346,7 +346,7 @@ This file records noteworthy changes in Magick++.
* Changed coordinate parameters from unsigned int to double in Drawable.
* Changed polygon methods in Drawable to use STL list argument.
* Added STL list based draw method to Image.
* Changed Exception heirarchy to support Warning and Error sub-classes.
* Changed Exception hierarchy to support Warning and Error sub-classes.
Most exception class names have changed.
(0.7)

View File

@ -5,7 +5,7 @@
// Simple demo program for Magick++
//
// Concept and algorithms lifted from PerlMagick demo script written
// by John Christy.
// by Cristy.
//
// Max run-time size 60MB (as compared with 95MB for PerlMagick) under SPARC Solaris
//
@ -24,6 +24,9 @@ int main( int /*argc*/, char ** argv)
// Initialize ImageMagick install location for Windows
InitializeMagick(*argv);
const char *const p = getenv("MAGICK_FONT");
const string MAGICK_FONT(p ? p : "");
try {
@ -82,8 +85,7 @@ int main( int /*argc*/, char ** argv)
example.label( "Annotate" );
example.density( "72x72" );
example.fontPointsize( 18 );
if (getenv("MAGICK_FONT") != 0)
example.font(string(getenv("MAGICK_FONT")));
example.font(MAGICK_FONT);
example.strokeColor( Color() );
example.fillColor( "gold" );
example.annotate( "Magick++", "+0+20", NorthGravity );

View File

@ -9,7 +9,7 @@
// are using X-Windows to see an animated result.
//
// Concept and algorithms lifted from PerlMagick demo script written
// by John Christy.
// by Cristy.
//
#include <Magick++.h>
@ -26,6 +26,8 @@ int main( int /*argc*/, char ** argv)
// Initialize ImageMagick install location for Windows
InitializeMagick(*argv);
const char *const p = getenv("MAGICK_FONT");
const string MAGICK_FONT(p ? p : "");
try {
@ -49,6 +51,7 @@ int main( int /*argc*/, char ** argv)
base.strokeColor(Color());
base.fillColor("#600");
base.fontPointsize( 30 );
base.font( MAGICK_FONT );
base.boxColor( "red" );
base.animationDelay( 20 );
base.compressType( RLECompression );

View File

@ -110,7 +110,7 @@ int main( int /*argc*/, char ** argv)
}
//
// Draw pentogram.
// Draw pentagram.
//
{
drawList.push_back(DrawableStrokeColor("red"));
@ -143,6 +143,7 @@ int main( int /*argc*/, char ** argv)
//
// Draw text.
//
#if defined(MAGICKCORE_FREETYPE_DELEGATE)
if (getenv("MAGICK_FONT") != 0)
drawList.push_back(DrawableFont(string(getenv("MAGICK_FONT"))));
drawList.push_back(DrawableFillColor("green"));
@ -151,6 +152,7 @@ int main( int /*argc*/, char ** argv)
drawList.push_back(DrawableTranslation(30,140));
drawList.push_back(DrawableRotation(45.0));
drawList.push_back(DrawableText(0,0,"This is a test!"));
#endif
// Finish drawing by popping back to base context.
drawList.push_back(DrawablePopGraphicContext());
@ -166,7 +168,7 @@ int main( int /*argc*/, char ** argv)
image.compressType( RLECompression );
image.write( "piddle_out.miff" );
cout << "Writing MVG metafile \"piddle_out.mvg\" ..." << endl;
image.write( "piddle_out.mvg" );
image.write( "mvg:piddle_out.mvg" );
// cout << "Display image..." << endl;
// image.display( );

View File

@ -12,11 +12,11 @@
#include "Magick++/Include.h"
#include <string>
using namespace std;
#include "Magick++/Color.h"
#include "Magick++/Exception.h"
using namespace std;
MagickPPExport int Magick::operator == (const Magick::Color &left_,
const Magick::Color &right_)
{

View File

@ -615,7 +615,7 @@ Magick::DrawableBase* Magick::DrawableFillColor::copy() const
return new DrawableFillColor(*this);
}
// Specify drawing fill fule
// Specify drawing fill rule
Magick::DrawableFillRule::~DrawableFillRule ( void )
{
}

View File

@ -14,10 +14,10 @@
#include <errno.h>
#include <string.h>
using namespace std;
#include "Magick++/Exception.h"
using namespace std;
Magick::Exception::Exception(const std::string& what_)
: std::exception(),
_what(what_),

View File

@ -12,11 +12,11 @@
#include "Magick++/Include.h"
#include <string>
using namespace std;
#include "Magick++/Functions.h"
#include "Magick++/Exception.h"
using namespace std;
static bool magick_initialized=false;
MagickPPExport void Magick::CloneString(char **destination_,
@ -68,6 +68,6 @@ MagickPPExport void Magick::TerminateMagick(void)
if (magick_initialized)
{
magick_initialized=false;
MagickCore::MagickCoreTerminus();
MagickCore::MagickWandTerminus();
}
}

View File

@ -16,11 +16,11 @@
#include <strings.h>
#endif
using namespace std;
#include "Magick++/Geometry.h"
#include "Magick++/Exception.h"
using namespace std;
MagickPPExport int Magick::operator == (const Magick::Geometry& left_,
const Magick::Geometry& right_)
{

View File

@ -16,8 +16,6 @@
#include <errno.h>
#include <math.h>
using namespace std;
#include "Magick++/Image.h"
#include "Magick++/Functions.h"
#include "Magick++/Pixels.h"
@ -25,6 +23,8 @@ using namespace std;
#include "Magick++/ImageRef.h"
#include "Magick++/ResourceLimits.h"
using namespace std;
#define AbsoluteValue(x) ((x) < 0 ? -(x) : (x))
#define MagickPI 3.14159265358979323846264338327950288419716939937510
#define DegreesToRadians(x) (MagickPI*(x)/180.0)
@ -790,7 +790,7 @@ void Magick::Image::fillPattern(const Image &fillPattern_)
Magick::Image Magick::Image::fillPattern(void) const
{
// FIXME: This is inordinately innefficient
// FIXME: This is inordinately inefficient
const MagickCore::Image
*tmpTexture;
@ -3119,7 +3119,7 @@ void Magick::Image::fontTypeMetricsMultiline(const std::string &text_,
drawInfo=options()->drawInfo();
drawInfo->text=const_cast<char *>(text_.c_str());
GetMultilineTypeMetrics(image(),drawInfo,&(metrics->_typeMetric));
(void) GetMultilineTypeMetrics(image(),drawInfo,&(metrics->_typeMetric));
drawInfo->text=0;
}

View File

@ -10,7 +10,7 @@
// "HOWTO: Exporting STL Components Inside & Outside of a Class".
// "http://support.microsoft.com/kb/168958"
//
// Note that version 3.0 of this article says that that only STL
// Note that version 3.0 of this article says that only STL
// container template which supports DLL export is <vector> and we are
// not using <vector> as part of the Drawable implementation.
//

View File

@ -148,61 +148,61 @@ namespace Magick
bool _limitPixels; // Resize using a pixel area count limit (@)
};
class MagickPPExport Offset;
// Compare two Offset objects
MagickPPExport int operator ==
(const Magick::Offset& left_,const Magick::Offset& right_);
MagickPPExport int operator !=
(const Magick::Offset& left_,const Magick::Offset& right_);
class MagickPPExport Offset
{
public:
// Default constructor
Offset();
// Construct Offset from specified string
Offset(const char *offset_);
// Copy constructor
Offset(const Offset &offset_);
// Construct Offset from specified string
Offset(const std::string &offset_);
// Construct Offset from specified x and y
Offset(ssize_t x_,ssize_t y_);
// Destructor
~Offset(void);
// Set via offset string
const Offset& operator=(const char *offset_);
// Assignment operator
Offset& operator=(const Offset& offset_);
// Set via offset string
const Offset& operator=(const std::string &offset_);
// X offset from origin
ssize_t x(void) const;
// Y offset from origin
ssize_t y(void) const;
//
// Public methods below this point are for Magick++ use only.
//
// Return an ImageMagick OffsetInfo struct
operator MagickCore::OffsetInfo() const;
private:
ssize_t _x;
ssize_t _y;
class MagickPPExport Offset;
// Compare two Offset objects
MagickPPExport int operator ==
(const Magick::Offset& left_,const Magick::Offset& right_);
MagickPPExport int operator !=
(const Magick::Offset& left_,const Magick::Offset& right_);
class MagickPPExport Offset
{
public:
// Default constructor
Offset();
// Construct Offset from specified string
Offset(const char *offset_);
// Copy constructor
Offset(const Offset &offset_);
// Construct Offset from specified string
Offset(const std::string &offset_);
// Construct Offset from specified x and y
Offset(ssize_t x_,ssize_t y_);
// Destructor
~Offset(void);
// Set via offset string
const Offset& operator=(const char *offset_);
// Assignment operator
Offset& operator=(const Offset& offset_);
// Set via offset string
const Offset& operator=(const std::string &offset_);
// X offset from origin
ssize_t x(void) const;
// Y offset from origin
ssize_t y(void) const;
//
// Public methods below this point are for Magick++ use only.
//
// Return an ImageMagick OffsetInfo struct
operator MagickCore::OffsetInfo() const;
private:
ssize_t _x;
ssize_t _y;
};
} // namespace Magick

View File

@ -675,7 +675,7 @@ namespace Magick
std::string attribute(const std::string name_ ) const;
// Extracts the 'mean' from the image and adjust the image to try
// make set its gamma appropriatally.
// make set its gamma appropriately.
void autoGamma(void);
void autoGammaChannel(const ChannelType channel_);
@ -709,7 +709,7 @@ namespace Magick
// Changes the brightness and/or contrast of an image. It converts the
// brightness and contrast parameters into slope and intercept and calls
// a polynomical function to apply to the image.
// a polynomial function to apply to the image.
void brightnessContrast(const double brightness_=0.0,
const double contrast_=0.0);
void brightnessContrastChannel(const ChannelType channel_,
@ -793,7 +793,7 @@ namespace Magick
// Compare current image with another image
// Sets meanErrorPerPixel, normalizedMaxError, and normalizedMeanError
// in the current image. False is returned if the images are identical.
// in the current image. True is returned if the images are identical.
bool compare(const Image &reference_);
// Compare current image with another image
@ -891,7 +891,7 @@ namespace Magick
// Distort image. distorts an image using various distortion methods, by
// mapping color lookups of the source image to a new destination image
// usally of the same size as the source image, unless 'bestfit' is set to
// usually of the same size as the source image, unless 'bestfit' is set to
// true.
void distort(const DistortImageMethod method_,
const size_t number_arguments_,const double *arguments_,
@ -903,10 +903,10 @@ namespace Magick
// Draw on image using a drawable list
void draw(const std::list<Magick::Drawable> &drawable_);
// Edge image (hilight edges in image)
// Edge image (highlight edges in image)
void edge(const double radius_=0.0);
// Emboss image (hilight edges with 3D effect)
// Emboss image (highlight edges with 3D effect)
// The radius_ parameter specifies the radius of the Gaussian, in
// pixels, not counting the center pixel. The sigma_ parameter
// specifies the standard deviation of the Laplacian, in pixels.
@ -1137,7 +1137,7 @@ namespace Magick
// Returns the normalized moments of one or more image channels.
ImageMoments moments(void) const;
// Applies a kernel to the image according to the given mophology method.
// Applies a kernel to the image according to the given morphology method.
void morphology(const MorphologyMethod method_,const std::string kernel_,
const ssize_t iterations_=1);
void morphology(const MorphologyMethod method_,
@ -1155,7 +1155,7 @@ namespace Magick
// pixels, not counting the center pixel. The sigma_ parameter
// specifies the standard deviation of the Laplacian, in pixels.
// The angle_ parameter specifies the angle the object appears
// to be comming from (zero degrees is from the right).
// to be coming from (zero degrees is from the right).
void motionBlur(const double radius_,const double sigma_,
const double angle_);
@ -1323,7 +1323,7 @@ namespace Magick
void resize(const Geometry &geometry_);
// Roll image (rolls image vertically and horizontally) by specified
// number of columnms and rows)
// number of columns and rows)
void roll(const Geometry &roll_);
void roll(const size_t columns_,const size_t rows_);
@ -1517,7 +1517,7 @@ namespace Magick
// the percentage of the difference between the original and
// the blur image that is added back into the original.
// threshold_
// the threshold in pixels needed to apply the diffence amount.
// the threshold in pixels needed to apply the difference amount.
void unsharpmask(const double radius_,const double sigma_,
const double amount_,const double threshold_);
void unsharpmaskChannel(const ChannelType channel_,const double radius_,

View File

@ -125,20 +125,20 @@ namespace MagickCore
# pragma comment(lib, "CORE_DB_lcms_.lib")
# endif
# if defined(MAGICKCORE_HEIC_DELEGATE)
# pragma comment(lib, "CORE_DB_libde265_.lib")
# pragma comment(lib, "CORE_DB_libheif_.lib")
# pragma comment(lib, "CORE_DB_de265_.lib")
# pragma comment(lib, "CORE_DB_heif_.lib")
# endif
# if defined(MAGICKCORE_LZMA_DELEGATE)
# pragma comment(lib, "CORE_DB_lzma_.lib")
# endif
# if defined(MAGICKCORE_RAW_R_DELEGATE)
# pragma comment(lib, "CORE_DB_libraw_.lib")
# pragma comment(lib, "CORE_DB_raw_.lib")
# endif
# if defined(MAGICKCORE_RSVG_DELEGATE)
# pragma comment(lib, "CORE_DB_librsvg_.lib")
# pragma comment(lib, "CORE_DB_rsvg_.lib")
# endif
# if defined(MAGICKCORE_XML_DELEGATE)
# pragma comment(lib, "CORE_DB_libxml_.lib")
# pragma comment(lib, "CORE_DB_xml_.lib")
# endif
# if defined(MAGICKCORE_LQR_DELEGATE)
# pragma comment(lib, "CORE_DB_ffi_.lib")
@ -156,6 +156,9 @@ namespace MagickCore
# if defined(MAGICKCORE_PNG_DELEGATE)
# pragma comment(lib, "CORE_DB_png_.lib")
# endif
# if defined(MAGICKCORE_RAQM_DELEGATE)
# pragma comment(lib, "CORE_DB_raqm_.lib")
# endif
# if defined(MAGICKCORE_TIFF_DELEGATE)
# pragma comment(lib, "CORE_DB_tiff_.lib")
# endif
@ -199,20 +202,20 @@ namespace MagickCore
# pragma comment(lib, "CORE_RL_lcms_.lib")
# endif
# if defined(MAGICKCORE_HEIC_DELEGATE)
# pragma comment(lib, "CORE_RL_libde265_.lib")
# pragma comment(lib, "CORE_RL_libheif_.lib")
# pragma comment(lib, "CORE_RL_de265_.lib")
# pragma comment(lib, "CORE_RL_heif_.lib")
# endif
# if defined(MAGICKCORE_LZMA_DELEGATE)
# pragma comment(lib, "CORE_RL_lzma_.lib")
# endif
# if defined(MAGICKCORE_RAW_R_DELEGATE)
# pragma comment(lib, "CORE_RL_libraw_.lib")
# pragma comment(lib, "CORE_RL_raw_.lib")
# endif
# if defined(MAGICKCORE_RSVG_DELEGATE)
# pragma comment(lib, "CORE_RL_librsvg_.lib")
# pragma comment(lib, "CORE_RL_rsvg_.lib")
# endif
# if defined(MAGICKCORE_XML_DELEGATE)
# pragma comment(lib, "CORE_RL_libxml_.lib")
# pragma comment(lib, "CORE_RL_xml_.lib")
# endif
# if defined(MAGICKCORE_LQR_DELEGATE)
# pragma comment(lib, "CORE_RL_ffi_.lib")
@ -230,6 +233,9 @@ namespace MagickCore
# if defined(MAGICKCORE_PNG_DELEGATE)
# pragma comment(lib, "CORE_RL_png_.lib")
# endif
# if defined(MAGICKCORE_RAQM_DELEGATE)
# pragma comment(lib, "CORE_RL_raqm_.lib")
# endif
# if defined(MAGICKCORE_TIFF_DELEGATE)
# pragma comment(lib, "CORE_RL_tiff_.lib")
# endif

View File

@ -77,7 +77,7 @@ namespace Magick
void texture(const std::string &texture_);
std::string texture(void) const;
// Thumbnail rows and colmns
// Thumbnail rows and columns
void tile(const Geometry &tile_);
Geometry tile(void) const;

View File

@ -342,7 +342,7 @@ namespace Magick
// Distort image. distorts an image using various distortion methods, by
// mapping color lookups of the source image to a new destination image
// usally of the same size as the source image, unless 'bestfit' is set to
// usually of the same size as the source image, unless 'bestfit' is set to
// true.
class MagickPPExport distortImage
{
@ -382,7 +382,7 @@ namespace Magick
DrawableList _drawableList;
};
// Edge image (hilight edges in image)
// Edge image (highlight edges in image)
class MagickPPExport edgeImage
{
public:
@ -394,7 +394,7 @@ namespace Magick
double _radius;
};
// Emboss image (hilight edges with 3D effect)
// Emboss image (highlight edges with 3D effect)
class MagickPPExport embossImage
{
public:
@ -889,7 +889,7 @@ namespace Magick
~ReadOptions();
// Vertical and horizontal resolution in pixels of the image
void density(const Geometry &geomery_);
void density(const Geometry &geometry_);
Geometry density(void) const;
// Image depth (8 or 16)
@ -946,7 +946,7 @@ namespace Magick
};
// Roll image (rolls image vertically and horizontally) by specified
// number of columnms and rows)
// number of columns and rows)
class MagickPPExport rollImage
{
public:
@ -1111,7 +1111,7 @@ namespace Magick
Geometry _geometry;
};
// Spread pixels randomly within image by specified ammount
// Spread pixels randomly within image by specified amount
class MagickPPExport spreadImage
{
public:
@ -2349,7 +2349,7 @@ namespace Magick
// Merge a sequence of image frames which represent image layers.
// This is useful for combining Photoshop layers into a single image.
template <class InputIterator>
void flattenImages( Image *flattendImage_,
void flattenImages( Image *flattenedImage_,
InputIterator first_,
InputIterator last_ ) {
if (linkImages(first_,last_) == false)
@ -2358,8 +2358,8 @@ namespace Magick
MagickCore::Image* image = MagickCore::MergeImageLayers( first_->image(),
FlattenLayer,exceptionInfo );
unlinkImages( first_, last_ );
flattendImage_->replaceImage( image );
ThrowPPException(flattendImage_->quiet());
flattenedImage_->replaceImage( image );
ThrowPPException(flattenedImage_->quiet());
}
// Implements the discrete Fourier transform (DFT) of the image either as a

View File

@ -609,9 +609,12 @@ void Magick::Options::strokeDashArray(const double *strokeDashArray_)
if (!_drawInfo->dash_pattern)
throwExceptionExplicit(MagickCore::ResourceLimitError,
"Unable to allocate dash-pattern memory");
// Copy elements
memcpy(_drawInfo->dash_pattern,strokeDashArray_,(x+1)*sizeof(double));
_drawInfo->dash_pattern[x]=0.0;
else
{
// Copy elements
memcpy(_drawInfo->dash_pattern,strokeDashArray_,(x+1)*sizeof(double));
_drawInfo->dash_pattern[x]=0.0;
}
}
}

View File

@ -295,7 +295,7 @@ void Magick::despeckleImage::operator()( Magick::Image &image_ ) const
// Distort image. distorts an image using various distortion methods, by
// mapping color lookups of the source image to a new destination image
// usally of the same size as the source image, unless 'bestfit' is set to
// usually of the same size as the source image, unless 'bestfit' is set to
// true.
Magick::distortImage::distortImage( const Magick::DistortImageMethod method_,
const size_t number_arguments_,
@ -336,7 +336,7 @@ void Magick::drawImage::operator()( Magick::Image &image_ ) const
image_.draw( _drawableList );
}
// Edge image (hilight edges in image)
// Edge image (highlight edges in image)
Magick::edgeImage::edgeImage( const double radius_ )
: _radius( radius_ )
{
@ -346,7 +346,7 @@ void Magick::edgeImage::operator()( Magick::Image &image_ ) const
image_.edge( _radius );
}
// Emboss image (hilight edges with 3D effect)
// Emboss image (highlight edges with 3D effect)
Magick::embossImage::embossImage( void )
: _radius( 1 ),
_sigma( 0.5 )
@ -912,7 +912,7 @@ void Magick::reduceNoiseImage::operator()( Image &image_ ) const
}
// Roll image (rolls image vertically and horizontally) by specified
// number of columnms and rows)
// number of columns and rows)
Magick::rollImage::rollImage( const Magick::Geometry &roll_ )
: _columns( roll_.width() ),
_rows( roll_.height() )
@ -1047,7 +1047,7 @@ void Magick::solarizeImage::operator()( Magick::Image &image_ ) const
image_.solarize( _factor );
}
// Spread pixels randomly within image by specified ammount
// Spread pixels randomly within image by specified amount
Magick::spreadImage::spreadImage( const size_t amount_ )
: _amount( amount_ )
{

View File

@ -1,4 +1,4 @@
VERS_8.0 {
VERS_9.0 {
global:
*;
};

View File

@ -31,7 +31,7 @@ int test( CoderInfo::MatchType isReadable_,
{
cout << "Entry \""
<< entry->name()
<< "\" has unexpected readablity state ("
<< "\" has unexpected readability state ("
<< static_cast<int>(entry->isReadable())
<< ")"
<< endl;
@ -45,7 +45,7 @@ int test( CoderInfo::MatchType isReadable_,
{
cout << "Entry \""
<< entry->name()
<< "\" has unexpected writablity state ("
<< "\" has unexpected writability state ("
<< static_cast<int>(entry->isWritable())
<< ")"
<< endl;

View File

@ -1,4 +1,4 @@
# Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
# Copyright © 1999 ImageMagick Studio LLC, a non-profit organization
# dedicated to making software imaging solutions freely available.
#
# You may not use this file except in compliance with the License. You may
@ -94,7 +94,6 @@ XFAIL_TESTS = \
TOP_EXTRA_DIST = \
AUTHORS.txt \
ChangeLog \
LICENSE \
QuickStart.txt \
NOTICE \
@ -168,7 +167,6 @@ man_MANS = \
doc_DATA = \
LICENSE \
ChangeLog \
NEWS.txt
endif
@ -223,7 +221,7 @@ dist-hook:
cd $(srcdir) && \
( \
for dir in $(DISTDIRS) ; do \
find $$dir -depth -print | egrep -v '(~$$)|(/.git)|(/\.#)|(/\.deps)|(/\.git)' \
find $$dir -depth -print | grep -E -v '(~$$)|(/.git)|(/\.#)|(/\.deps)|(/\.git)' \
| cpio -pdum $$builddir/$(distdir) 2> /dev/null ; \
done \
) \
@ -283,7 +281,7 @@ magick-version: magick/version.h
fi ; \
touch magick-version
magick/version.h: $(top_srcdir)/ChangeLog $(top_srcdir)/m4/version.m4
magick/version.h: $(top_srcdir)/m4/version.m4
# Automagically reconfigure libtool
LIBTOOL_DEPS = @LIBTOOL_DEPS@

File diff suppressed because it is too large Load Diff

2
NOTICE
View File

@ -2,7 +2,7 @@
1. ImageMagick copyright:
Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization dedicated
Copyright © 1999 ImageMagick Studio LLC, a non-profit organization dedicated
to making software imaging solutions freely available.
You may not use this file except in compliance with the License. You may obtain

View File

@ -1,3 +1,6 @@
2021-01-26 6.9.11 Cristy <quetzlzacatenango@image...>
* if info has undefined orientation, return the image orientation.
2021-01-16 6.9.11 Cristy <quetzlzacatenango@image...>
* requires ImageMagick 6.9.11 or above.

View File

@ -149,7 +149,7 @@ t/rad/input.rad
t/rad/read.t
t/rad/write.t
t/read.t
t/reference/cgm/read.miff
t/reference/cgm/read.gif
t/reference/composite/Add.miff
t/reference/composite/Atop.miff
t/reference/composite/Bumpmap.miff
@ -331,8 +331,8 @@ t/reference/read/input_xwd.miff
t/reference/ttf/annotate.miff
t/reference/ttf/label.miff
t/reference/ttf/read.miff
t/reference/wmf/clock.miff
t/reference/wmf/wizard.miff
t/reference/wmf/clock.gif
t/reference/wmf/wizard.gif
t/reference/write/cgm/read.miff
t/reference/write/composite/Add.miff
t/reference/write/composite/Atop.miff
@ -541,7 +541,7 @@ t/wmf/read.t
t/wmf/wizard.wmf
t/write.t
t/x11/congrats.fig
t/x11/congrats.miff
t/x11/congrats.gif
t/x11/input.xwd
t/x11/read.t
t/x11/write.t

View File

@ -1,4 +1,4 @@
# Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
# Copyright @ 1999 ImageMagick Studio LLC, a non-profit organization
# dedicated to making software imaging solutions freely available.
#
# You may not use this file except in compliance with the License. You may
@ -16,7 +16,7 @@
#
# make test
#
# Exersise one regression test:
# Exercise one regression test:
#
# make TEST_VERBOSE=1 TEST_FILES=t/filter.t test
#
@ -162,8 +162,8 @@ foreach my $delegate (@tested_delegates) {
# defaults for LIBS & INC & CCFLAGS params that we later pass to Writemakefile
my $INC_magick = '-I../ -I.. -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -I"' . $Config{'usrinc'} . '/ImageMagick"';
my $LIBS_magick = '-L../magick/.libs -lMagickCore-6.Q16 -lperl -lm';
my $CCFLAGS_magick = "$Config{'ccflags'} -I/usr/include/libxml2 -I/usr/include/libraw -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/fribidi -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/uuid -I/usr/include/harfbuzz -I/usr/include/OpenEXR -pthread -I/usr/include/openjpeg-2.3 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/fribidi -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/uuid -pthread -fopenmp -Wall -g -O2 -mtune=amdfam10 -fexceptions -pthread -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16";
my $LIBS_magick = '-L../magick/.libs -lMagickCore-6.Q16 -lm -L' . $Config{'archlib'} . '/CORE';
my $CCFLAGS_magick = "$Config{'ccflags'} -I/usr/include/libxml2 -I/usr/include/webp -I/usr/include/webp -I/usr/include/libraw -I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-4 -pthread -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-4 -pthread -I/usr/include/libxml2 -pthread -fopenmp -Wall -g -O2 -mtune=haswell -fexceptions -pthread -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16";
my $LDFLAGS_magick = "-L../magick/.libs -lMagickCore-6.Q16 $Config{'ldflags'} ";
my $LDDLFLAGS_magick = "-L../magick/.libs -lMagickCore-6.Q16 $Config{'lddlflags'} ";
@ -194,7 +194,7 @@ WriteMakefile
'AUTHOR' => 'ImageMagick Studio LLC',
# Module version
'VERSION' => '6.9.11',
'VERSION' => '6.9.12',
# Prerequisite version
'PREREQ_PM' => {'parent' => '0'},
@ -202,7 +202,7 @@ WriteMakefile
# Preprocessor defines
'DEFINE' => ' -D_LARGE_FILES=1 -DHAVE_CONFIG_H', # e.g., '-DHAVE_SOMETHING'
# Header search specfication and preprocessor flags
# Header search specification and preprocessor flags
'INC' => $INC_magick,
# C compiler

View File

@ -1,4 +1,4 @@
# Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
# Copyright @ 1999 ImageMagick Studio LLC, a non-profit organization
# dedicated to making software imaging solutions freely available.
#
# You may not use this file except in compliance with the License. You may
@ -16,7 +16,7 @@
#
# make test
#
# Exersise one regression test:
# Exercise one regression test:
#
# make TEST_VERBOSE=1 TEST_FILES=t/filter.t test
#
@ -162,7 +162,7 @@ foreach my $delegate (@tested_delegates) {
# defaults for LIBS & INC & CCFLAGS params that we later pass to Writemakefile
my $INC_magick = '-I../ -I@top_srcdir@ @CPPFLAGS@ -I"' . $Config{'usrinc'} . '/ImageMagick"';
my $LIBS_magick = '-L../magick/.libs -lMagickCore-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@ -lperl @MATH_LIBS@';
my $LIBS_magick = '-L../magick/.libs -lMagickCore-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@ @MATH_LIBS@ -L' . $Config{'archlib'} . '/CORE';
my $CCFLAGS_magick = "$Config{'ccflags'} @CFLAGS@";
my $LDFLAGS_magick = "-L../magick/.libs -lMagickCore-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@ $Config{'ldflags'} @LDFLAGS@";
my $LDDLFLAGS_magick = "-L../magick/.libs -lMagickCore-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@ $Config{'lddlflags'} @LDFLAGS@";
@ -202,7 +202,7 @@ WriteMakefile
# Preprocessor defines
'DEFINE' => '@LFS_CPPFLAGS@ @DEFS@', # e.g., '-DHAVE_SOMETHING'
# Header search specfication and preprocessor flags
# Header search specification and preprocessor flags
'INC' => $INC_magick,
# C compiler

View File

@ -1,4 +1,4 @@
# Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
# Copyright @ 1999 ImageMagick Studio LLC, a non-profit organization
# dedicated to making software imaging solutions freely available.
#
# You may not use this file except in compliance with the License. You may
@ -110,7 +110,7 @@ check-perl: $(PERLMAGICK)/$(PERLSTATICNAME)
perl-build: $(PERLMAGICK)/$(PERLSTATICNAME)
endif # WITH_PERL_STATIC
endif # WTIH_PERL_DYNAMIC
endif # WITH_PERL_DYNAMIC
clean-perl:

View File

@ -1,4 +1,4 @@
# Copyright (C) 1999-2021 ImageMagick Studio LLC
# Copyright (C) 1999 ImageMagick Studio LLC
#
# This program is covered by multiple licenses, which are described in
# LICENSE. You should have received a copy of LICENSE with this

View File

@ -23,8 +23,8 @@ Installation
Get the PerlMagick distribution and type the following:
gunzip ImageMagick-6.9.11-58.tar.gz
tar xvf ImageMagick-6.9.11
gunzip ImageMagick-6.9.12-0.tar.gz
tar xvf ImageMagick-6.9.12
Follow the ImageMagick installation instructions in INSTALL-unix.txt
then type
@ -40,7 +40,7 @@ Installation
(often -R or -rpath) corresponding to the equivalent library search
path option so that the library can be located at run-time.
To create and install the dymamically-loaded version of PerlMagick
To create and install the dynamically-loaded version of PerlMagick
(the preferred way), execute
perl Makefile.PL

View File

@ -1,5 +1,5 @@
#!/bin/sh
# Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
# Copyright @ 1999 ImageMagick Studio LLC, a non-profit organization
# dedicated to making software imaging solutions freely available.
#
# You may not use this file except in compliance with the License. You may

View File

@ -1,5 +1,5 @@
#!/bin/sh
# Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
# Copyright @ 1999 ImageMagick Studio LLC, a non-profit organization
# dedicated to making software imaging solutions freely available.
#
# You may not use this file except in compliance with the License. You may

View File

@ -1,6 +1,6 @@
package Image::Magick;
# Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
# Copyright 1999 ImageMagick Studio LLC, a non-profit organization
# dedicated to making software imaging solutions freely available.
#
# You may not use this file except in compliance with the License. You may

View File

@ -1,6 +1,6 @@
package Image::Magick;
# Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
# Copyright 1999 ImageMagick Studio LLC, a non-profit organization
# dedicated to making software imaging solutions freely available.
#
# You may not use this file except in compliance with the License. You may

View File

@ -1,4 +1,4 @@
# Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
# Copyright 1999 ImageMagick Studio LLC, a non-profit organization
# dedicated to making software imaging solutions freely available.
#
# You may not use this file except in compliance with the License. You may
@ -16,7 +16,7 @@
#
# make test
#
# Exersise one regression test:
# Exercise one regression test:
#
# make TEST_VERBOSE=1 TEST_FILES=t/filter.t test
#
@ -162,8 +162,8 @@ foreach my $delegate (@tested_delegates) {
# defaults for LIBS & INC & CCFLAGS params that we later pass to Writemakefile
my $INC_magick = '-I../.. -I../.. -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -I"' . $Config{'usrinc'} . '/ImageMagick"';
my $LIBS_magick = '-L../../magick/.libs -lMagickCore-6.Q16 -lperl -lm';
my $CCFLAGS_magick = "$Config{'ccflags'} -I/usr/include/libxml2 -I/usr/include/libraw -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/fribidi -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/uuid -I/usr/include/harfbuzz -I/usr/include/OpenEXR -pthread -I/usr/include/openjpeg-2.3 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/fribidi -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/uuid -pthread -fopenmp -Wall -g -O2 -mtune=amdfam10 -fexceptions -pthread -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16";
my $LIBS_magick = '-L../../magick/.libs -lMagickCore-6.Q16 -lm -L' . $Config{'archlib'} . '/CORE';
my $CCFLAGS_magick = "$Config{'ccflags'} -I/usr/include/libxml2 -I/usr/include/webp -I/usr/include/webp -I/usr/include/libraw -I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-4 -pthread -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-4 -pthread -I/usr/include/libxml2 -pthread -fopenmp -Wall -g -O2 -mtune=haswell -fexceptions -pthread -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16";
my $LDFLAGS_magick = "-L../../magick/.libs -lMagickCore-6.Q16 $Config{'ldflags'} ";
my $LDDLFLAGS_magick = "-L../../magick/.libs -lMagickCore-6.Q16 $Config{'lddlflags'} ";
@ -194,7 +194,7 @@ WriteMakefile
'AUTHOR' => 'ImageMagick Studio LLC',
# Module version
'VERSION' => '6.9.11',
'VERSION' => '6.9.12',
# Prerequisite version
'PREREQ_PM' => {'parent' => '0'},
@ -202,7 +202,7 @@ WriteMakefile
# Preprocessor defines
'DEFINE' => ' -D_LARGE_FILES=1 -DHAVE_CONFIG_H', # e.g., '-DHAVE_SOMETHING'
# Header search specfication and preprocessor flags
# Header search specification and preprocessor flags
'INC' => $INC_magick,
# C compiler

View File

@ -1,4 +1,4 @@
# Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
# Copyright 1999 ImageMagick Studio LLC, a non-profit organization
# dedicated to making software imaging solutions freely available.
#
# You may not use this file except in compliance with the License. You may
@ -16,7 +16,7 @@
#
# make test
#
# Exersise one regression test:
# Exercise one regression test:
#
# make TEST_VERBOSE=1 TEST_FILES=t/filter.t test
#
@ -162,7 +162,7 @@ foreach my $delegate (@tested_delegates) {
# defaults for LIBS & INC & CCFLAGS params that we later pass to Writemakefile
my $INC_magick = '-I../.. -I@top_srcdir@ @CPPFLAGS@ -I"' . $Config{'usrinc'} . '/ImageMagick"';
my $LIBS_magick = '-L../../magick/.libs -lMagickCore-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@ -lperl @MATH_LIBS@';
my $LIBS_magick = '-L../../magick/.libs -lMagickCore-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@ @MATH_LIBS@ -L' . $Config{'archlib'} . '/CORE';
my $CCFLAGS_magick = "$Config{'ccflags'} @CFLAGS@";
my $LDFLAGS_magick = "-L../../magick/.libs -lMagickCore-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@ $Config{'ldflags'} @LDFLAGS@";
my $LDDLFLAGS_magick = "-L../../magick/.libs -lMagickCore-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@ $Config{'lddlflags'} @LDFLAGS@";
@ -202,7 +202,7 @@ WriteMakefile
# Preprocessor defines
'DEFINE' => '@LFS_CPPFLAGS@ @DEFS@', # e.g., '-DHAVE_SOMETHING'
# Header search specfication and preprocessor flags
# Header search specification and preprocessor flags
'INC' => $INC_magick,
# C compiler

Binary file not shown.

View File

@ -9,7 +9,7 @@
# Also not that "composite -watermark" is actually known as the compose
# method "Modulate".
#
# Essentially each image is equivelent to
# Essentially each image is equivalent to
# convert logo: -crop 80x80+140+60 +repage \
# -size 60x60 gradient:black-white \
# -alpha set miff:- |\
@ -90,7 +90,7 @@ $clone->Composite(
push(@$results, $clone);
# ---------------
# Masked and Blending Demonstartion
# Masked and Blending Demonstration
$clone=$dest->Clone();
$clone->Label('Circle Masked\n(three image)');
@ -133,7 +133,7 @@ $clone->Composite(
push(@$results, $clone);
# ---------------
# Displacement Demonstartion
# Displacement Demonstration
$clone=$dest->Clone();
$clone->Label('Displace 50x0\n(displace horiz)');
@ -231,7 +231,7 @@ push(@$results, $clone);
# ----------------------------------------
# Output the changed pixels
# to every image underlay a checkboard pattern
# to every image underlay a checkerboard pattern
# so as to show if any transparency is present
for my $image ( @$results ) {
$image->Composite(

View File

@ -40,7 +40,7 @@ $image->Draw(primitive=>'Path',stroke=>'none',fill=>'blue',strokewidth=>4,
$image->Draw(primitive=>'circle',stroke=>'black',fill=>'none',strokewidth=>4,
points=>"170,70 200,70");
#
# Draw pentogram.
# Draw pentagram.
#
$image->Draw(primitive=>'polygon',
points=>"160,120 130,190 210,145 110,145 190,190 160,120",stroke=>red,

View File

@ -2,8 +2,8 @@
#
# Example of modifying all the pixels in an image (like -fx).
#
# Currently this is slow as each pixel is being lokedup one pixel at a time.
# The better technique of extracting and modifing a whole row of pixels at
# Currently this is slow as each pixel is being looked up one pixel at a time.
# The better technique of extracting and modifying a whole row of pixels at
# a time has not been figured out, though perl functions have been provided
# for this.
#
@ -26,7 +26,7 @@ exit if $w =~ /^Exception/;
my $dest = $orig->Clone();
# You could enlarge destination image here if you like.
# And it is posible to modify the existing image directly
# And it is possible to modify the existing image directly
# rather than modifying a clone as FX does.
# Iterate over destination image...

View File

@ -1,4 +1,4 @@
# Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
# Copyright 1999 ImageMagick Studio LLC, a non-profit organization
# dedicated to making software imaging solutions freely available.
#
# You may not use this file except in compliance with the License. You may
@ -16,7 +16,7 @@
#
# make test
#
# Exersise one regression test:
# Exercise one regression test:
#
# make TEST_VERBOSE=1 TEST_FILES=t/filter.t test
#
@ -162,8 +162,8 @@ foreach my $delegate (@tested_delegates) {
# defaults for LIBS & INC & CCFLAGS params that we later pass to Writemakefile
my $INC_magick = '-I../../ -I../.. -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -I"' . $Config{'usrinc'} . '/ImageMagick"';
my $LIBS_magick = '-L../../magick/.libs -lMagickCore-6.Q16 -lperl -lm';
my $CCFLAGS_magick = "$Config{'ccflags'} -I/usr/include/libxml2 -I/usr/include/libraw -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/fribidi -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/uuid -I/usr/include/harfbuzz -I/usr/include/OpenEXR -pthread -I/usr/include/openjpeg-2.3 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/fribidi -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/uuid -pthread -fopenmp -Wall -g -O2 -mtune=amdfam10 -fexceptions -pthread -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16";
my $LIBS_magick = '-L../../magick/.libs -lMagickCore-6.Q16 -lm -L' . $Config{'archlib'} . '/CORE';
my $CCFLAGS_magick = "$Config{'ccflags'} -I/usr/include/libxml2 -I/usr/include/webp -I/usr/include/webp -I/usr/include/libraw -I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-4 -pthread -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-4 -pthread -I/usr/include/libxml2 -pthread -fopenmp -Wall -g -O2 -mtune=haswell -fexceptions -pthread -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16";
my $LDFLAGS_magick = "-L../../magick/.libs -lMagickCore-6.Q16 $Config{'ldflags'} ";
my $LDDLFLAGS_magick = "-L../../magick/.libs -lMagickCore-6.Q16 $Config{'lddlflags'} ";
@ -194,12 +194,12 @@ WriteMakefile
'AUTHOR' => 'ImageMagick Studio LLC',
# Module version
'VERSION' => '6.9.11',
'VERSION' => '6.9.12',
# Preprocessor defines
'DEFINE' => ' -D_LARGE_FILES=1 -DHAVE_CONFIG_H', # e.g., '-DHAVE_SOMETHING'
# Header search specfication and preprocessor flags
# Header search specification and preprocessor flags
'INC' => $INC_magick,
# C compiler
@ -247,7 +247,7 @@ WriteMakefile
($Config{'archname'} =~ /-object$/i ? ('CAPI' => 'TRUE') : ()),
# sane vesion
# sane version
depend => { '$(FIRST_MAKEFILE)' => '$(VERSION_FROM)' }
);

View File

@ -1,4 +1,4 @@
# Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
# Copyright 1999 ImageMagick Studio LLC, a non-profit organization
# dedicated to making software imaging solutions freely available.
#
# You may not use this file except in compliance with the License. You may
@ -16,7 +16,7 @@
#
# make test
#
# Exersise one regression test:
# Exercise one regression test:
#
# make TEST_VERBOSE=1 TEST_FILES=t/filter.t test
#
@ -162,7 +162,7 @@ foreach my $delegate (@tested_delegates) {
# defaults for LIBS & INC & CCFLAGS params that we later pass to Writemakefile
my $INC_magick = '-I../../ -I@top_srcdir@ @CPPFLAGS@ -I"' . $Config{'usrinc'} . '/ImageMagick"';
my $LIBS_magick = '-L../../magick/.libs -lMagickCore-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@ -lperl @MATH_LIBS@';
my $LIBS_magick = '-L../../magick/.libs -lMagickCore-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@ @MATH_LIBS@ -L' . $Config{'archlib'} . '/CORE';
my $CCFLAGS_magick = "$Config{'ccflags'} @CFLAGS@";
my $LDFLAGS_magick = "-L../../magick/.libs -lMagickCore-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@ $Config{'ldflags'} @LDFLAGS@";
my $LDDLFLAGS_magick = "-L../../magick/.libs -lMagickCore-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@ $Config{'lddlflags'} @LDFLAGS@";
@ -199,7 +199,7 @@ WriteMakefile
# Preprocessor defines
'DEFINE' => '@LFS_CPPFLAGS@ @DEFS@', # e.g., '-DHAVE_SOMETHING'
# Header search specfication and preprocessor flags
# Header search specification and preprocessor flags
'INC' => $INC_magick,
# C compiler
@ -247,7 +247,7 @@ WriteMakefile
($Config{'archname'} =~ /-object$/i ? ('CAPI' => 'TRUE') : ()),
# sane vesion
# sane version
depend => { '$(FIRST_MAKEFILE)' => '$(VERSION_FROM)' }
);

View File

@ -1,6 +1,6 @@
package Image::Magick::Q16;
# Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
# Copyright 1999 ImageMagick Studio LLC, a non-profit organization
# dedicated to making software imaging solutions freely available.
#
# You may not use this file except in compliance with the License. You may
@ -43,7 +43,7 @@ require AutoLoader;
ConfigureError FatalErrorException
);
$VERSION = '6.9.11';
$VERSION = '6.9.12';
sub AUTOLOAD {
# This AUTOLOAD is used to 'autoload' constants from the constant()

View File

@ -1,6 +1,6 @@
package Image::Magick::@MAGICK_ABI_SUFFIX@;
# Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
# Copyright 1999 ImageMagick Studio LLC, a non-profit organization
# dedicated to making software imaging solutions freely available.
#
# You may not use this file except in compliance with the License. You may

View File

@ -23,7 +23,7 @@
% February 1997 %
% %
% %
% Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization %
% Copyright 1999 ImageMagick Studio LLC, a non-profit organization %
% dedicated to making software imaging solutions freely available. %
% %
% You may not use this file except in compliance with the License. You may %
@ -1064,9 +1064,9 @@ static double SiPrefixToDoubleInterval(const char *string,const double interval)
return(value);
}
static inline double StringToDouble(const char *string,char **sentinal)
static inline double StringToDouble(const char *string,char **sentinel)
{
return(InterpretLocaleValue(string,sentinal));
return(InterpretLocaleValue(string,sentinel));
}
static double StringToDoubleInterval(const char *string,const double interval)
@ -4904,6 +4904,9 @@ Get(ref,...)
{
j=info ? info->image_info->endian : image ? image->endian :
UndefinedEndian;
if (info)
if (info->image_info->endian == UndefinedEndian)
j=image->endian;
s=newSViv(j);
(void) sv_setpv(s,CommandOptionToMnemonic(MagickEndianOptions,j));
SvIOK_on(s);
@ -5167,6 +5170,9 @@ Get(ref,...)
{
j=info ? info->image_info->interlace : image ? image->interlace :
UndefinedInterlace;
if (info)
if (info->image_info->interlace == UndefinedInterlace)
j=image->interlace;
s=newSViv(j);
(void) sv_setpv(s,CommandOptionToMnemonic(MagickInterlaceOptions,
j));
@ -5321,6 +5327,9 @@ Get(ref,...)
{
j=info ? info->image_info->orientation : image ?
image->orientation : UndefinedOrientation;
if (info)
if (info->image_info->orientation == UndefinedOrientation)
j=image->orientation;
s=newSViv(j);
(void) sv_setpv(s,CommandOptionToMnemonic(MagickOrientationOptions,
j));
@ -5627,8 +5636,8 @@ Get(ref,...)
{
j=info ? info->image_info->units : image ? image->units :
UndefinedResolution;
if (info && (info->image_info->units == UndefinedResolution))
if (image)
if (info)
if (info->image_info->units == UndefinedResolution)
j=image->units;
if (j == UndefinedResolution)
s=newSVpv("undefined units",0);
@ -8588,13 +8597,11 @@ Mogrify(ref,...)
MagickBooleanType
sync;
ssize_t
x;
PixelPacket
*q;
ssize_t
x,
y;
/*
@ -8633,10 +8640,10 @@ Mogrify(ref,...)
image->interpolate=(InterpolatePixelMethod)
argument_list[12].integer_reference;
if (attribute_flag[13] != 0) /* "args=>" */
(void) SetImageArtifact(composite_image,"compose:args",
(void) SetImageArtifact(image,"compose:args",
argument_list[13].string_reference);
if (attribute_flag[14] != 0) /* "blend=>" depreciated */
(void) SetImageArtifact(composite_image,"compose:args",
(void) SetImageArtifact(image,"compose:args",
argument_list[14].string_reference);
/*
Tiling Composition (with orthogonal rotate).
@ -8681,7 +8688,7 @@ Mogrify(ref,...)
break;
}
/*
Parameter Handling used used ONLY for normal composition.
Parameter Handling used ONLY for normal composition.
*/
if (attribute_flag[5] != 0) /* gravity */
image->gravity=(GravityType) argument_list[5].integer_reference;
@ -9319,7 +9326,7 @@ Mogrify(ref,...)
TextureImage(image,argument_list[0].image_reference);
break;
}
case 55: /* Evalute */
case 55: /* Evaluate */
{
MagickEvaluateOperator
op;
@ -10233,7 +10240,7 @@ Mogrify(ref,...)
image=TransposeImage(image,exception);
break;
}
case 100: /* Tranverse */
case 100: /* Transverse */
{
image=TransverseImage(image,exception);
break;
@ -10834,7 +10841,7 @@ Mogrify(ref,...)
channel=(ChannelType) argument_list[1].integer_reference;
method=UndefinedMorphology;
if (attribute_flag[2] != 0)
method=argument_list[2].integer_reference;
method=(MorphologyMethod) argument_list[2].integer_reference;
iterations=1;
if (attribute_flag[3] != 0)
iterations=argument_list[3].integer_reference;

View File

@ -23,7 +23,7 @@
% February 1997 %
% %
% %
% Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization %
% Copyright 1999 ImageMagick Studio LLC, a non-profit organization %
% dedicated to making software imaging solutions freely available. %
% %
% You may not use this file except in compliance with the License. You may %
@ -1064,9 +1064,9 @@ static double SiPrefixToDoubleInterval(const char *string,const double interval)
return(value);
}
static inline double StringToDouble(const char *string,char **sentinal)
static inline double StringToDouble(const char *string,char **sentinel)
{
return(InterpretLocaleValue(string,sentinal));
return(InterpretLocaleValue(string,sentinel));
}
static double StringToDoubleInterval(const char *string,const double interval)
@ -4904,6 +4904,9 @@ Get(ref,...)
{
j=info ? info->image_info->endian : image ? image->endian :
UndefinedEndian;
if (info)
if (info->image_info->endian == UndefinedEndian)
j=image->endian;
s=newSViv(j);
(void) sv_setpv(s,CommandOptionToMnemonic(MagickEndianOptions,j));
SvIOK_on(s);
@ -5167,6 +5170,9 @@ Get(ref,...)
{
j=info ? info->image_info->interlace : image ? image->interlace :
UndefinedInterlace;
if (info)
if (info->image_info->interlace == UndefinedInterlace)
j=image->interlace;
s=newSViv(j);
(void) sv_setpv(s,CommandOptionToMnemonic(MagickInterlaceOptions,
j));
@ -5321,6 +5327,9 @@ Get(ref,...)
{
j=info ? info->image_info->orientation : image ?
image->orientation : UndefinedOrientation;
if (info)
if (info->image_info->orientation == UndefinedOrientation)
j=image->orientation;
s=newSViv(j);
(void) sv_setpv(s,CommandOptionToMnemonic(MagickOrientationOptions,
j));
@ -5627,8 +5636,8 @@ Get(ref,...)
{
j=info ? info->image_info->units : image ? image->units :
UndefinedResolution;
if (info && (info->image_info->units == UndefinedResolution))
if (image)
if (info)
if (info->image_info->units == UndefinedResolution)
j=image->units;
if (j == UndefinedResolution)
s=newSVpv("undefined units",0);
@ -8588,13 +8597,11 @@ Mogrify(ref,...)
MagickBooleanType
sync;
ssize_t
x;
PixelPacket
*q;
ssize_t
x,
y;
/*
@ -8633,10 +8640,10 @@ Mogrify(ref,...)
image->interpolate=(InterpolatePixelMethod)
argument_list[12].integer_reference;
if (attribute_flag[13] != 0) /* "args=>" */
(void) SetImageArtifact(composite_image,"compose:args",
(void) SetImageArtifact(image,"compose:args",
argument_list[13].string_reference);
if (attribute_flag[14] != 0) /* "blend=>" depreciated */
(void) SetImageArtifact(composite_image,"compose:args",
(void) SetImageArtifact(image,"compose:args",
argument_list[14].string_reference);
/*
Tiling Composition (with orthogonal rotate).
@ -8681,7 +8688,7 @@ Mogrify(ref,...)
break;
}
/*
Parameter Handling used used ONLY for normal composition.
Parameter Handling used ONLY for normal composition.
*/
if (attribute_flag[5] != 0) /* gravity */
image->gravity=(GravityType) argument_list[5].integer_reference;
@ -9319,7 +9326,7 @@ Mogrify(ref,...)
TextureImage(image,argument_list[0].image_reference);
break;
}
case 55: /* Evalute */
case 55: /* Evaluate */
{
MagickEvaluateOperator
op;
@ -10233,7 +10240,7 @@ Mogrify(ref,...)
image=TransposeImage(image,exception);
break;
}
case 100: /* Tranverse */
case 100: /* Transverse */
{
image=TransverseImage(image,exception);
break;
@ -10834,7 +10841,7 @@ Mogrify(ref,...)
channel=(ChannelType) argument_list[1].integer_reference;
method=UndefinedMorphology;
if (attribute_flag[2] != 0)
method=argument_list[2].integer_reference;
method=(MorphologyMethod) argument_list[2].integer_reference;
iterations=1;
if (attribute_flag[3] != 0)
iterations=argument_list[3].integer_reference;

View File

@ -1,5 +1,5 @@
#!/usr/bin/perl
# Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
# Copyright 1999 ImageMagick Studio LLC, a non-profit organization
# dedicated to making software imaging solutions freely available.
#
# You may not use this file except in compliance with the License. You may

View File

@ -23,5 +23,5 @@ testReadWrite( 'input.miff',
q/compression=>'BZip'/,
'a698f2fe0c6c31f83d19554a6ec02bac79c961dd9a87e7ed217752e75eb615d7' );
$test = 0; # Quench PERL compliaint
$test = 0; # Quench PERL complaint

View File

@ -5,7 +5,7 @@
# Written by Bob Friesenhahn
#
# Whenever a new test is added/removed, be sure to update the
# 1..n ouput.
# 1..n output.
#
BEGIN { $| = 1; $test=1; print "1..1\n"; }
END {print "not ok $test\n" unless $loaded;}
@ -16,5 +16,5 @@ require 't/subroutines.pl';
chdir 't/cgm' || die 'Cd failed';
testReadCompare('CGM:input.cgm', '../reference/cgm/read.miff', q//, 0.0 0.0);
testReadCompare('CGM:input.cgm', '../reference/cgm/read.gif', q//, 0.0 0.0);

View File

@ -1,5 +1,5 @@
#!/usr/bin/perl
# Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
# Copyright 1999 ImageMagick Studio LLC, a non-profit organization
# dedicated to making software imaging solutions freely available.
#
# You may not use this file except in compliance with the License. You may

View File

@ -1,6 +1,6 @@
#!/usr/bin/perl
#
# Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
# Copyright 1999 ImageMagick Studio LLC, a non-profit organization
# dedicated to making software imaging solutions freely available.
#
# You may not use this file except in compliance with the License. You may

View File

@ -1,5 +1,5 @@
#!/usr/bin/perl
# Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
# Copyright 1999 ImageMagick Studio LLC, a non-profit organization
# dedicated to making software imaging solutions freely available.
#
# You may not use this file except in compliance with the License. You may
@ -45,7 +45,7 @@ testGetAttribute('input.miff','columns','70');
testGetAttribute('input.miff','directory',undef);
++$test;
testGetAttribute('input.miff','gamma','0.454545');
testGetAttribute('input.miff','gamma','1');
++$test;
testGetAttribute('input.miff','geometry',undef);

View File

@ -5,7 +5,7 @@ colorspace=sRGB
resolution=72x72
page=70x46+0+0
rendering-intent=Perceptual
gamma=0.454545
gamma=1.0
red-primary=0.64,0.33 green-primary=0.3,0.6 blue-primary=0.15,0.06
white-point=0.3127,0.329
date:create=2012-06-16T20:11:10-04:00

View File

@ -1,5 +1,5 @@
#!/usr/bin/perl
# Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
# Copyright 1999 ImageMagick Studio LLC, a non-profit organization
# dedicated to making software imaging solutions freely available.
#
# You may not use this file except in compliance with the License. You may
@ -154,7 +154,7 @@ testMontage( q/bordercolor=>'blue', mattecolor=>'red'/,
q/background=>'#696e7e',, tile=>'4x4', geometry=>'90x80+6+6>', frame=>'8x10',
borderwidth=>'0', gravity=>'Center', shadow=>'True',background=>'gray'/,
'd4de864f9004b185297c9c2351f811aaeb779095bdd8fd5f29bcfbee79f09da4',
'e784da474c0296b00cbde2eed40fa99664f6a5975eeca2efc2aff131bc5982ce',
'c45f922b6f1f94accacd3946bee3f60cf84fb7930866f1c9bf0d18521218ab5b',
'803c926764df2ad940f36fbbeea274e05467d729bfdfb2f28c479cfd27245a85');
#
@ -165,7 +165,7 @@ testMontage( q/bordercolor=>'blue', mattecolor=>'red'/,
q/background=>'#696e7e',, tile=>'4x4', geometry=>'90x80+6+6>', frame=>'8x10',
borderwidth=>'0', gravity=>'Center', shadow=>'True', texture=>'granite:'/,
'8418407b6d56d2c1b67bc735004794d9eb20609d30115a93255eefcad3499e95',
'f683fcddacc049c873776952909ea5a741f76ec6db600453724cee8dbb9d06c4',
'a67fd0b6e03bd5610bb58d66f99fc0e8b3a0bf5dec7714ea2ac9f8032eb4d7f5',
'5793a1de15b5d73df297968af79fa01a110c1585cccd46dcbef794674ab5f174');
#
@ -223,7 +223,7 @@ testMontage( q//,
'108b50e6f8d5155f6c6f60dfe939e83ec465a917b3d8ec6fa1419d27ffa3cdb3',
'1fdca151dfe00fdc106832696815eff00b7e32a5fb0af64b41cb08610661880e');
#
# 19) Test concatenated thumbnail Montage (concatentated by setting params to zero)
# 19) Test concatenated thumbnail Montage (concatenated by setting params to zero)
# Thumbnails should be compacted tightly together in a grid
#
++$test;

View File

@ -3,7 +3,7 @@
# Test reading MPEG files
#
# Whenever a new test is added/removed, be sure to update the
# 1..n ouput.
# 1..n output.
#
BEGIN { $| = 1; $test=1; print "1..2\n"; }
END {print "not ok $test\n" unless $loaded;}

View File

@ -1,5 +1,5 @@
#!/usr/bin/perl
# Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
# Copyright 1999 ImageMagick Studio LLC, a non-profit organization
# dedicated to making software imaging solutions freely available.
#
# You may not use this file except in compliance with the License. You may

View File

@ -19,7 +19,7 @@ chdir 't/png' || die 'Cd failed';
#
print( "1-bit grayscale PNG ...\n" );
testRead( 'input_bw.png',
'349c2ff9310d578051e40e80d42cfc36ca29ba93e353df175219f7448da5eeee' );
'6d839acffd707c3df95ac1e8808645cf5ee22328d197dc165afc2f294e25a691' );
#
# 2) Test Monochrome PNG

View File

@ -19,7 +19,7 @@ chdir 't/png' || die 'Cd failed';
#
print( "1-bit grayscale PNG ...\n" );
testReadWrite( 'input_bw.png', 'output_bw.png', q/quality=>95/,
'349c2ff9310d578051e40e80d42cfc36ca29ba93e353df175219f7448da5eeee');
'6d839acffd707c3df95ac1e8808645cf5ee22328d197dc165afc2f294e25a691');
#
# 2) Test monochrome image

View File

@ -3,7 +3,7 @@
# Test reading Radiance file format
#
# Whenever a new test is added/removed, be sure to update the
# 1..n ouput.
# 1..n output.
#
BEGIN { $| = 1; $test=1; print "1..1\n"; }
END {print "not ok $test\n" unless $loaded;}

View File

@ -6,7 +6,7 @@
# knows how to both read and write.
#
# Whenever a new test is added/removed, be sure to update the
# 1..n ouput.
# 1..n output.
BEGIN { $| = 1; $test=1; print "1..1\n"; }
END {print "not ok $test\n" unless $loaded;}

View File

@ -1,5 +1,5 @@
#!/usr/bin/perl
# Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
# Copyright 1999 ImageMagick Studio LLC, a non-profit organization
# dedicated to making software imaging solutions freely available.
#
# You may not use this file except in compliance with the License. You may
@ -162,7 +162,7 @@ testReadCompare('sun:input.im24', 'reference/read/input_im24.miff', q//, 0.0, 0.
print("Truevision Targa image file ...\n");
++$test;
testReadCompare('input.tga', 'reference/read/input_tga.miff', q//, 0.0, 0.0);
testReadCompare('input.tga', 'reference/read/input_tga.miff', q//, 0.1, 0.9);
print("PSX TIM file ...\n");
++$test;

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

View File

@ -1,5 +1,5 @@
#!/usr/bin/perl
# Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
# Copyright 1999 ImageMagick Studio LLC, a non-profit organization
# dedicated to making software imaging solutions freely available.
#
# You may not use this file except in compliance with the License. You may

View File

@ -1,4 +1,4 @@
# Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
# Copyright 1999 ImageMagick Studio LLC, a non-profit organization
# dedicated to making software imaging solutions freely available.
#
# You may not use this file except in compliance with the License. You may

View File

@ -27,7 +27,7 @@ testRead ( 'input_mono.tiff',
++$test;
print("PseudoColor (16 color)...\n");
testRead( 'input_16.tiff',
'8b75f8ae87df02a676947672d93f49e8272dba3af07d6e7eff3149e11c39a4f7' );
'd5d455dd862d83f8a9abfa3d8e7968914f0fe9a7ad3801b762cccdbd7b244be1' );
#
# 3) Test reading PseudoColor (16 color + matte channel)
@ -35,7 +35,7 @@ testRead( 'input_16.tiff',
++$test;
print("PseudoColor (16 color + matte channel)...\n");
testRead( 'input_16_matte.tiff',
'8b75f8ae87df02a676947672d93f49e8272dba3af07d6e7eff3149e11c39a4f7' );
'd5d455dd862d83f8a9abfa3d8e7968914f0fe9a7ad3801b762cccdbd7b244be1' );
#
# 4) Test reading PseudoColor (256 color)
@ -62,10 +62,10 @@ testRead( 'input_256_planar_contig.tiff',
'08fdfd88b1eb09649ef126c1fe5a8c5b958eb941653daa0b3615f1b9db9966df' );
#
# 7) Test reading PseudoColor using seperate planes
# 7) Test reading PseudoColor using separate planes
#
++$test;
print("PseudoColor (256 color) seperate planes ...\n");
print("PseudoColor (256 color) separate planes ...\n");
testRead( 'input_256_planar_separate.tiff',
'08fdfd88b1eb09649ef126c1fe5a8c5b958eb941653daa0b3615f1b9db9966df' );

View File

@ -21,7 +21,7 @@ print("PseudoColor image (4 bits/sample) ...\n");
testReadWrite( 'input_16.tiff',
'output_16.tiff',
q//,
'8b75f8ae87df02a676947672d93f49e8272dba3af07d6e7eff3149e11c39a4f7');
'd5d455dd862d83f8a9abfa3d8e7968914f0fe9a7ad3801b762cccdbd7b244be1');
#
# 2) Test 8-bit pseudocolor image
@ -41,7 +41,7 @@ print("PseudoColor image (4 bits/sample + matte channel) ...\n");
testReadWrite( 'input_16_matte.tiff',
'output_16_matte.tiff',
q//,
'8b75f8ae87df02a676947672d93f49e8272dba3af07d6e7eff3149e11c39a4f7' );
'd5d455dd862d83f8a9abfa3d8e7968914f0fe9a7ad3801b762cccdbd7b244be1' );
#
# 4) Test 8-bit pseudocolor + matte channel image
@ -101,7 +101,7 @@ print("Gray image (4 bits per sample + matte channel) ...\n");
testReadWrite( 'input_gray_4bit_matte.tiff',
'output_gray_4bit_matte.tiff',
q//,
'91a3cb9734b88a1c35cfc439493115818d7f49a2fc7bcadec52b2489da0118f9' );
'dc120044b575d24569f3ee5bcdbce4383d14768ad24b44ada5c5a514c7bef3cf' );
#
# 10) Test gray 8 bit image (with matte channel)

Binary file not shown.

View File

@ -3,7 +3,7 @@
# Test reading WMF files
#
# Whenever a new test is added/removed, be sure to update the
# 1..n ouput.
# 1..n output.
#
BEGIN { $| = 1; $test=1; print "1..2\n"; }
END {print "not ok $test\n" unless $loaded;}
@ -14,9 +14,9 @@ require 't/subroutines.pl';
chdir 't/wmf' || die 'Cd failed';
testReadCompare('wizard.wmf', '../reference/wmf/wizard.miff',
testReadCompare('wizard.wmf', '../reference/wmf/wizard.gif',
q//, 0.53, 1.0);
++$test;
testReadCompare('clock.wmf', '../reference/wmf/clock.miff',
testReadCompare('clock.wmf', '../reference/wmf/clock.gif',
q//, 0.44, 1.0);

View File

@ -1,5 +1,5 @@
#!/usr/bin/perl
# Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
# Copyright 1999 ImageMagick Studio LLC, a non-profit organization
# dedicated to making software imaging solutions freely available.
#
# You may not use this file except in compliance with the License. You may
@ -193,7 +193,7 @@ print("Truevision Targa image file ...\n");
testReadWrite( 'TGA:input.tga',
'TGA:output.tga',
q//,
'a698f2fe0c6c31f83d19554a6ec02bac79c961dd9a87e7ed217752e75eb615d7');
'0531145ece70e51693bbcff40af31e64c7ebc0d6625d4e6f3826e68931d8e462');
print("Khoros Visualization image file ...\n");
++$test;

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

File diff suppressed because one or more lines are too long

View File

@ -19,7 +19,7 @@ chdir 't/x11' || die 'Cd failed';
#
if ( 0 && defined($ENV{'DISPLAY'}) && ($^O ne 'MSWin32') ) {
$image=Image::Magick->new;
$x=$image->ReadImage('congrats.miff');
$x=$image->ReadImage('congrats.gif');
if( "$x" ) {
print "not ok $test\n";
} else {

View File

@ -23,5 +23,5 @@ testReadWrite( 'input.miff',
q/compression=>'Zip'/,
'a698f2fe0c6c31f83d19554a6ec02bac79c961dd9a87e7ed217752e75eb615d7' );
$test = 0; # Quench PERL compliaint
$test = 0; # Quench PERL complaint

View File

@ -1,6 +1,6 @@
This file documents how to use the binary distribution packages built by
ImageMagick Studio LLC, and found in the ImageMagick 'binaries' subdirectory
of ImageMagick ftp sites. Those who want to build ImageMagick from source
of ImageMagick download sites. Those who want to build ImageMagick from source
code should refer to https://imagemagick.org/script/install-source.php.
Unix/Linux/Darwin/Mac OS X/Cygwin/MinGW Install:
@ -27,15 +27,15 @@ Unix/Linux/Darwin/Mac OS X/Cygwin/MinGW Install:
Set the MAGICK_HOME environment variable to the path where you extracted the
ImageMagick files. For example
export MAGICK_HOME="$HOME/ImageMagick-6.9.11"
export MAGICK_HOME="$HOME/ImageMagick-6.9.12"
On Linux and Solaris machines set the LD_LIBRARY_PATH environment variable:
export LD_LIBRARY_PATH="$HOME/ImageMagick-6.9.11/lib"
export LD_LIBRARY_PATH="$HOME/ImageMagick-6.9.12/lib"
On Mac OS X (Darwin) machines set the DYLD_LIBRARY_PATH environment variable:
export DYLD_LIBRARY_PATH="$HOME/ImageMagick-6.9.11/lib"
export DYLD_LIBRARY_PATH="$HOME/ImageMagick-6.9.12/lib"
Now, test ImageMagick to see if it is working
@ -44,7 +44,7 @@ Unix/Linux/Darwin/Mac OS X/Cygwin/MinGW Install:
To install PerlMagick type
cd ImageMagick-6.9.11/PerlMagick
cd ImageMagick-6.9.12/PerlMagick
perl Makefile.PL
make
make install
@ -68,7 +68,7 @@ Unix/Linux/Darwin/Mac OS X/Cygwin/MinGW Install:
$MAGICK_CONFIGURE_PATH
$MAGICK_HOME/etc/ImageMagick
$MAGICK_HOME/share/ImageMagick-6.9.11/config
$MAGICK_HOME/share/ImageMagick-6.9.12/config
$HOME/.config/ImageMagick
<client path>/etc/ImageMagick/
<current directory>/
@ -81,7 +81,7 @@ Unix/Linux/Darwin/Mac OS X/Cygwin/MinGW Install:
$MAGICK_CONFIGURE_PATH
$MAGICK_HOME/etc/ImageMagick
$MAGICK_HOME/share/ImageMagick-6.9.11/config
$MAGICK_HOME/share/ImageMagick-6.9.12/config
$HOME/.config/ImageMagick
<client path>/etc/ImageMagick/
<current directory>/
@ -98,7 +98,7 @@ Unix/Linux/Darwin/Mac OS X/Cygwin/MinGW Install:
$HOME/.config/ImageMagick
<client path>/../etc/ImageMagick/modules-Q16/coders/
$MAGICK_HOME/etc/ImageMagick/modules-Q16/coders
$MAGICK_HOME/share/ImageMagick-6.9.11/modules-Q16/coders
$MAGICK_HOME/share/ImageMagick-6.9.12/modules-Q16/coders
$HOME/.config/ImageMagick
<client path>/etc/ImageMagick/modules-Q16/coders
<current directory>/
@ -107,10 +107,10 @@ Windows Vista, XP, and NT Install:
Download one of
ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-6.9.11-85-Q16-windows-dll.exe
ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-6.9.11-85-Q16-windows-static.exe
ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-6.9.11-85-Q8-windows-dll.exe
ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-6.9.11-85-Q8-windows-static.exe
https://download.imagemagick.org/ImageMagick/download/binaries/ImageMagick-6.9.12-0-Q16-windows-dll.exe
https://download.imagemagick.org/ImageMagick/download/binaries/ImageMagick-6.9.12-0-Q16-windows-static.exe
https://download.imagemagick.org/ImageMagick/download/binaries/ImageMagick-6.9.12-0-Q8-windows-dll.exe
https://download.imagemagick.org/ImageMagick/download/binaries/ImageMagick-6.9.12-0-Q8-windows-static.exe
and execute it (or "open" it from your browser) to start the installation
program.

83
README.md Normal file
View File

@ -0,0 +1,83 @@
# ImageMagick (legacy)
[![Build Status](https://github.com/ImageMagick/ImageMagick/workflows/main/badge.svg)](https://github.com/ImageMagick/ImageMagick/actions)
[![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/imagemagick.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:imagemagick)
[![Donate](https://img.shields.io/badge/%24-donate-ff00ff.svg)](https://github.com/sponsors/ImageMagick)
<p align="center">
<img align="center" src="https://imagemagick.org/image/wizard.png" alt="ImageMagick logo" width="265" height="353"/>
</p>
Legacy [ImageMagick®](https://legacy.imagemagick.org/) is a free and [open-source](https://legacy.imagemagick.org/script/license.php) software suite for displaying, converting, and editing raster image and vector image files. It can read and write over 200 image file [formats](https://legacy.imagemagick.org/script/formats.php), and can support a wide range of image manipulation operations, such as resizing, cropping, and color correction.
#### What is ImageMagick?
ImageMagick is written in C and is available for a wide range of operating systems, including Linux, macOS, and Windows. It can be used as a standalone application, or as a library that can be integrated into other software programs.
The main website for legacy ImageMagick can be found at [https://legacy.imagemagick.org](https://legacy.imagemagick.org/). The source code for this software can be accessed through the repository located at [https://github.com/ImageMagick/ImageMagick6](https://github.com/ImageMagick/ImageMagick6). In addition, a more recent version of ImageMagick, version 7, can be found at [https://imagemagick.org](https://imagemagick.org/).
#### Features and Capabilities
One of the key features of ImageMagick is its support for scripting and automation. This allows users to create complex image manipulation pipelines that can be run automatically, without the need for manual intervention. This can be especially useful for tasks that require the processing of large numbers of images, or for tasks that need to be performed on a regular basis.
In addition to its core image manipulation capabilities, ImageMagick also includes a number of other features, such as support for animation, color management, and image rendering. These features make it a versatile tool for a wide range of image-related tasks, including graphic design, scientific visualization, and digital art.
Overall, ImageMagick is a powerful and versatile software suite for displaying, converting, and editing image files. Its support for scripting and automation, along with its other features, make it a valuable tool for a wide range of image-related tasks.
Here are just a few [examples](https://legacy.imagemagick.org/script/examples.php) of what ImageMagick can do:
* [Animation](https://legacy.imagemagick.org/script/command-line-options.php#bilateral-blur): non-linear, edge-preserving, and noise-reducing smoothing filter.
* [Bilateral Blur](https://legacy.imagemagick.org/script/command-line-options.php#bilateral-blur): non-linear, edge-preserving, and noise-reducing smoothing filter.
* [Color management](https://legacy.imagemagick.org/script/color-management.php): accurate color management with color profiles or in lieu of-- built-in gamma compression or expansion as demanded by the colorspace.
* [Color thresholding](https://legacy.imagemagick.org/script/color-management.php) force all pixels in the color range to white otherwise black.
* [Command-line processing](https://legacy.imagemagick.org/script/command-line-processing.php) utilize ImageMagick from the command-line.
* [Complex text layout](https://en.wikipedia.org/wiki/Complex_text_layout) bidirectional text support and shaping.
* [Composite](https://legacy.imagemagick.org/script/composite.php): overlap one image over another.
* [Connected component labeling](https://legacy.imagemagick.org/script/connected-components.php): uniquely label connected regions in an image.
* [Convex hull](https://legacy.imagemagick.org/script/convex-hull.php) smallest area convex polygon containing the image foreground objects. In addition, the minimum bounding box and unrotate angle are also generated.
* [Decorate](https://legacy.imagemagick.org/Usage/crop/): add a border or frame to an image.
* [Delineate image features](https://legacy.imagemagick.org/Usage/transform/#vision): Canny edge detection, mean-shift, Hough lines.
* [Discrete Fourier transform](https://legacy.imagemagick.org/Usage/fourier/): implements the forward and inverse [DFT](http://en.wikipedia.org/wiki/Discrete_Fourier_transform).
* [Distributed pixel cache](https://legacy.imagemagick.org/script/distribute-pixel-cache.php): offload intermediate pixel storage to one or more remote servers.
* [Draw](https://legacy.imagemagick.org/Usage/draw/): add shapes or text to an image.
* [Encipher or decipher an image](https://legacy.imagemagick.org/script/cipher.php): convert ordinary images into unintelligible gibberish and back again.
* [Format conversion](https://legacy.imagemagick.org/script/convert.php): convert an image from one [format](https://imagemagick.org/script/formats.php) to another (e.g. PNG to JPEG).
* [Generalized pixel distortion](https://legacy.imagemagick.org/Usage/distorts/): correct for, or induce image distortions including perspective.
* [Heterogeneous distributed processing](https://legacy.imagemagick.org/script/architecture.php#distributed): certain algorithms are OpenCL-enabled to take advantage of speed-ups offered by executing in concert across heterogeneous platforms consisting of CPUs, GPUs, and other processors.
* [High dynamic-range images](https://legacy.imagemagick.org/script/high-dynamic-range.php): accurately represent the wide range of intensity levels found in real scenes ranging from the brightest direct sunlight to the deepest darkest shadows.
* [Histogram equalization](https://legacy.imagemagick.org/script/clahe.php) use adaptive histogram equalization to improve contrast in images.
* [Image cache](https://legacy.imagemagick.org/script/magick-cache.php): secure methods and tools to cache images, image sequences, video, audio or metadata in a local folder.
* [Image calculator](https://legacy.imagemagick.org/script/fx.php): apply a mathematical expression to an image or image channels.
* [Image gradients](https://legacy.imagemagick.org/script/gradient.php): create a gradual blend of one color whose shape is horizontal, vertical, circular, or elliptical.
* [Image identification](https://legacy.imagemagick.org/script/identify.php): describe the format and attributes of an image.
* [ImageMagick on the iPhone](https://legacy.imagemagick.org/script/download.php#iOS): convert, edit, or compose images on your iPhone.
* [Large image support](https://legacy.imagemagick.org/script/architecture.php#tera-pixel): read, process, or write mega-, giga-, or tera-pixel image sizes.
* [Montage](https://legacy.imagemagick.org/script/montage.php): juxtapose image thumbnails on an image canvas.
* [Morphology of shapes](https://legacy.imagemagick.org/Usage/morphology/): extract features, describe shapes and recognize patterns in images.
* [Motion picture support](https://legacy.imagemagick.org/script/motion-picture.php): read and write the common image formats used in digital film work.
* [Multispectral imagery](https://legacy.imagemagick.org/script/architecture.php#multispectral): support multispectral imagery up to 64 bands.
* [Noise and color reduction](https://legacy.imagemagick.org/Usage/transform/#vision) Kuwahara Filter, mean-shift.
* [Perceptual hash](http://www.fmwconcepts.com/misc_tests/perceptual_hash_test_results_510/index.html): maps visually identical images to the same or similar hash-- useful in image retrieval, authentication, indexing, or copy detection as well as digital watermarking.
* [Special effects](https://legacy.imagemagick.org/Usage/blur/): blur, sharpen, threshold, or tint an image.
* [Text & comments](https://legacy.imagemagick.org/Usage/text/): insert descriptive or artistic text in an image.
* [Threads of execution support](https://legacy.imagemagick.org/script/architecture.php#threads): ImageMagick is thread safe and most internal algorithms are OpenMP-enabled to take advantage of speed-ups offered by multicore processor chips.
* [Transform](https://legacy.imagemagick.org/Usage/resize/): resize, rotate, deskew, crop, flip or trim an image.
* [Transparency](https://legacy.imagemagick.org/Usage/masking/): render portions of an image invisible.
* [Virtual pixel support](https://legacy.imagemagick.org/script/architecture.php#virtual-pixels): convenient access to pixels outside the image region.
[Examples of ImageMagick Usage](https://legacy.imagemagick.org/Usage/), demonstrates how to use the software from the [command line](https://legacy.imagemagick.org/script/command-line-processing.php) to achieve various effects. There are also several scripts available on the website called [Fred's ImageMagick Scripts](http://www.fmwconcepts.com/imagemagick/), which can be used to apply geometric transforms, blur and sharpen images, remove noise, and perform other operations. Additionally, there is a tool called [Magick.NET](https://github.com/dlemstra/Magick.NET) that allows users to access the functionality of ImageMagick without having to install the software on their own systems. Finally, the website also includes a [Cookbook](http://im.snibgo.com/) with tips and examples for using ImageMagick on Windows systems.
#### News
ImageMagick best practices **strongly** encourages you to configure a [security policy](https://legacy.imagemagick.org/script/security-policy.php) that suits your local environment.
Now that ImageMagick [version 7](https://imagemagick.org) is released, we recommend upgrading from version 6. Learn how ImageMagick version 7 differs from previous versions with our [porting guide](https://imagemagick.org/script/porting.php).
Want more performance from ImageMagick? Try these options:
* add more memory to your system, see the [pixel cache](https://legacy.imagemagick.org/script/architecture.php#cache);
* add more cores to your system, see [threads of execution support](https://legacy.imagemagick.org/script/architecture.php#threads);
* reduce lock contention with the [tcmalloc](http://goog-perftools.sourceforge.net/doc/tcmalloc.html) memory allocation library;
* push large images to a solid-state drive, see [large image support](https://legacy.imagemagick.org/script/architecture.php#tera-pixel).
If these options are prohibitive, you can reduce the quality of the image results. The default build is Q16 HDRI. If you disable [HDRI](https://legacy.imagemagick.org/script/high-dynamic-range.php), you use half the memory and instead of predominantly floating point operations, you use the typically more efficient integer operations. The tradeoff is reduced precision and you cannot process out of range pixel values (e.g. negative). If you build the Q8 non-HDRI version of ImageMagick, you again reduce the memory requirements in half-- and once again there is a tradeoff, even less precision and no out of range pixel values. For a Q8 non-HDRI build of ImageMagick, use these configure script options: --with-quantum-depth=8 --disable-hdri.

View File

@ -10,7 +10,7 @@ Introduction to ImageMagick
The functionality of ImageMagick is typically utilized from the command
line or you can use the features from programs written in your favorite
language. Choose from these interfaces: G2F (Ada), MagickCore (C),
MagickWand (C), ChMagick (Ch), ImageMagickObject (COM+), Magick++ (C++),
MagickWand (C), ChMagick (Ch), Magick++ (C++),
JMagick (Java), L-Magick (Lisp), Lua, NMagick (Neko/haXe), Magick.NET
(.NET), PascalMagick (Pascal), PerlMagick (Perl), MagickWand for PHP
(PHP), IMagick (PHP), PythonMagick (Python), RMagick (Ruby), or TclMagick
@ -30,7 +30,7 @@ Introduction to ImageMagick
that includes memory error and thread data race detection to prevent
security vulnerabilities.
The current release is the ImageMagick 6.9.11-* series. It runs on Linux,
The current release is the ImageMagick 6.9.12-* series. It runs on Linux,
Windows, Mac Os X, iOS, Android OS, and others.
The authoritative ImageMagick version 6 web site is

86
aclocal.m4 vendored
View File

@ -1,6 +1,6 @@
# generated automatically by aclocal 1.16.1 -*- Autoconf -*-
# generated automatically by aclocal 1.16.5 -*- Autoconf -*-
# Copyright (C) 1996-2018 Free Software Foundation, Inc.
# Copyright (C) 1996-2021 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -14,13 +14,13 @@
m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
[m4_warning([this file was generated for autoconf 2.69.
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],,
[m4_warning([this file was generated for autoconf 2.71.
You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
# Copyright (C) 2002-2018 Free Software Foundation, Inc.
# Copyright (C) 2002-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -35,7 +35,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION],
[am__api_version='1.16'
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
dnl require some minimum version. Point them to the right macro.
m4_if([$1], [1.16.1], [],
m4_if([$1], [1.16.5], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])
@ -51,12 +51,12 @@ m4_define([_AM_AUTOCONF_VERSION], [])
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
[AM_AUTOMAKE_VERSION([1.16.1])dnl
[AM_AUTOMAKE_VERSION([1.16.5])dnl
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
# Copyright (C) 2011-2018 Free Software Foundation, Inc.
# Copyright (C) 2011-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -118,7 +118,7 @@ AC_SUBST([AR])dnl
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
# Copyright (C) 2001-2018 Free Software Foundation, Inc.
# Copyright (C) 2001-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -170,7 +170,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd`
# AM_CONDITIONAL -*- Autoconf -*-
# Copyright (C) 1997-2018 Free Software Foundation, Inc.
# Copyright (C) 1997-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -201,7 +201,7 @@ AC_CONFIG_COMMANDS_PRE(
Usually this means the macro was only invoked conditionally.]])
fi])])
# Copyright (C) 1999-2018 Free Software Foundation, Inc.
# Copyright (C) 1999-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -392,7 +392,7 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl
# Generate code to set up dependency tracking. -*- Autoconf -*-
# Copyright (C) 1999-2018 Free Software Foundation, Inc.
# Copyright (C) 1999-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -431,7 +431,9 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
done
if test $am_rc -ne 0; then
AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments
for automatic dependency tracking. Try re-running configure with the
for automatic dependency tracking. If GNU make was not used, consider
re-running the configure script with MAKE="gmake" (or whatever is
necessary). You can also try re-running configure with the
'--disable-dependency-tracking' option to at least be able to build
the package (albeit without support for automatic dependency tracking).])
fi
@ -457,7 +459,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
[AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])])
# Copyright (C) 1996-2018 Free Software Foundation, Inc.
# Copyright (C) 1996-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -481,7 +483,7 @@ fi], [AC_MSG_RESULT([no])])
# Do all the work for Automake. -*- Autoconf -*-
# Copyright (C) 1996-2018 Free Software Foundation, Inc.
# Copyright (C) 1996-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -509,6 +511,10 @@ m4_defn([AC_PROG_CC])
# release and drop the old call support.
AC_DEFUN([AM_INIT_AUTOMAKE],
[AC_PREREQ([2.65])dnl
m4_ifdef([_$0_ALREADY_INIT],
[m4_fatal([$0 expanded multiple times
]m4_defn([_$0_ALREADY_INIT]))],
[m4_define([_$0_ALREADY_INIT], m4_expansion_stack)])dnl
dnl Autoconf wants to disallow AM_ names. We explicitly allow
dnl the ones we care about.
m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
@ -545,7 +551,7 @@ m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
[_AM_SET_OPTIONS([$1])dnl
dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
m4_if(
m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
m4_ifset([AC_PACKAGE_NAME], [ok]):m4_ifset([AC_PACKAGE_VERSION], [ok]),
[ok:ok],,
[m4_fatal([AC_INIT should be called with package and version arguments])])dnl
AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
@ -597,6 +603,20 @@ AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
[m4_define([AC_PROG_OBJCXX],
m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
])
# Variables for tags utilities; see am/tags.am
if test -z "$CTAGS"; then
CTAGS=ctags
fi
AC_SUBST([CTAGS])
if test -z "$ETAGS"; then
ETAGS=etags
fi
AC_SUBST([ETAGS])
if test -z "$CSCOPE"; then
CSCOPE=cscope
fi
AC_SUBST([CSCOPE])
AC_REQUIRE([AM_SILENT_RULES])dnl
dnl The testsuite driver may need to know about EXEEXT, so add the
dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This
@ -678,7 +698,7 @@ for _am_header in $config_headers :; do
done
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
# Copyright (C) 2001-2018 Free Software Foundation, Inc.
# Copyright (C) 2001-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -699,7 +719,7 @@ if test x"${install_sh+set}" != xset; then
fi
AC_SUBST([install_sh])])
# Copyright (C) 2003-2018 Free Software Foundation, Inc.
# Copyright (C) 2003-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -721,7 +741,7 @@ AC_SUBST([am__leading_dot])])
# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
# From Jim Meyering
# Copyright (C) 1996-2018 Free Software Foundation, Inc.
# Copyright (C) 1996-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -756,7 +776,7 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
# Check to see how 'make' treats includes. -*- Autoconf -*-
# Copyright (C) 2001-2018 Free Software Foundation, Inc.
# Copyright (C) 2001-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -799,7 +819,7 @@ AC_SUBST([am__quote])])
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
# Copyright (C) 1997-2018 Free Software Foundation, Inc.
# Copyright (C) 1997-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -820,12 +840,7 @@ AC_DEFUN([AM_MISSING_HAS_RUN],
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
AC_REQUIRE_AUX_FILE([missing])dnl
if test x"${MISSING+set}" != xset; then
case $am_aux_dir in
*\ * | *\ *)
MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
*)
MISSING="\${SHELL} $am_aux_dir/missing" ;;
esac
MISSING="\${SHELL} '$am_aux_dir/missing'"
fi
# Use eval to expand $SHELL
if eval "$MISSING --is-lightweight"; then
@ -838,7 +853,7 @@ fi
# Helper functions for option handling. -*- Autoconf -*-
# Copyright (C) 2001-2018 Free Software Foundation, Inc.
# Copyright (C) 2001-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -867,7 +882,7 @@ AC_DEFUN([_AM_SET_OPTIONS],
AC_DEFUN([_AM_IF_OPTION],
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
# Copyright (C) 1999-2018 Free Software Foundation, Inc.
# Copyright (C) 1999-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -914,7 +929,7 @@ AC_LANG_POP([C])])
# For backward compatibility.
AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
# Copyright (C) 2001-2018 Free Software Foundation, Inc.
# Copyright (C) 2001-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -933,7 +948,7 @@ AC_DEFUN([AM_RUN_LOG],
# Check to make sure that the build environment is sane. -*- Autoconf -*-
# Copyright (C) 1996-2018 Free Software Foundation, Inc.
# Copyright (C) 1996-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -1014,7 +1029,7 @@ AC_CONFIG_COMMANDS_PRE(
rm -f conftest.file
])
# Copyright (C) 2009-2018 Free Software Foundation, Inc.
# Copyright (C) 2009-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -1074,7 +1089,7 @@ AC_SUBST([AM_BACKSLASH])dnl
_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
])
# Copyright (C) 2001-2018 Free Software Foundation, Inc.
# Copyright (C) 2001-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -1102,7 +1117,7 @@ fi
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
AC_SUBST([INSTALL_STRIP_PROGRAM])])
# Copyright (C) 2006-2018 Free Software Foundation, Inc.
# Copyright (C) 2006-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -1121,7 +1136,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
# Check how to create a tarball. -*- Autoconf -*-
# Copyright (C) 2004-2018 Free Software Foundation, Inc.
# Copyright (C) 2004-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -1270,7 +1285,6 @@ m4_include([m4/ax_prepend_flag.m4])
m4_include([m4/ax_prog_perl_version.m4])
m4_include([m4/ax_pthread.m4])
m4_include([m4/ax_require_defined.m4])
m4_include([m4/cxx_have_std_libs.m4])
m4_include([m4/framework.m4])
m4_include([m4/ld-version-script.m4])
m4_include([m4/libtool.m4])

View File

@ -1,4 +1,4 @@
# Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
# Copyright 1999 ImageMagick Studio LLC, a non-profit organization
# dedicated to making software imaging solutions freely available.
#
# You may not use this file except in compliance with the License. You may
@ -208,7 +208,6 @@ MAGICK_CODER_SRCS = \
coders/xcf.c \
coders/xpm.c \
coders/xps.c \
coders/xtrn.c \
coders/ycbcr.c \
coders/yuv.c \
$(MAGICK_DPS_SRCS) \
@ -221,6 +220,7 @@ MAGICK_CODER_SRCS = \
$(MAGICK_JBIG_SRCS) \
$(MAGICK_JPEG_SRCS) \
$(MAGICK_JP2_SRCS) \
$(MAGICK_JXL_SRCS) \
$(MAGICK_PNG_SRCS) \
$(MAGICK_TIFF_SRCS) \
$(MAGICK_WEBP_SRCS) \
@ -340,7 +340,6 @@ coders_LTLIBRARIES = \
coders/xcf.la \
coders/xpm.la \
coders/xps.la \
coders/xtrn.la \
coders/ycbcr.la \
coders/yuv.la \
$(MAGICK_DPS_MODULES) \
@ -353,6 +352,7 @@ coders_LTLIBRARIES = \
$(MAGICK_JBIG_MODULES) \
$(MAGICK_JPEG_MODULES) \
$(MAGICK_JP2_MODULES) \
$(MAGICK_JXL_MODULES) \
$(MAGICK_PNG_MODULES) \
$(MAGICK_TIFF_MODULES) \
$(MAGICK_WEBP_MODULES) \
@ -1009,6 +1009,9 @@ coders_url_la_SOURCES = coders/url.c
coders_url_la_CPPFLAGS = $(MAGICK_CODER_CPPFLAGS)
coders_url_la_LDFLAGS = $(MODULECOMMONFLAGS)
coders_url_la_LIBADD = $(MAGICKCORE_LIBS) $(XML_LIBS) $(LZMA_LIBS) $(ZLIB_LIBS) $(MATH_LIBS)
if WIN32_NATIVE_BUILD
coders_url_la_LIBADD += -lurlmon
endif
# UYVY coder module
coders_uyvy_la_SOURCES = coders/uyvy.c
@ -1104,13 +1107,7 @@ coders_xpm_la_LIBADD = $(MAGICKCORE_LIBS)
coders_xps_la_SOURCES = coders/xps.c
coders_xps_la_CPPFLAGS = $(MAGICK_CODER_CPPFLAGS)
coders_xps_la_LDFLAGS = $(MODULECOMMONFLAGS)
coders_xps_la_LIBADD = $(MAGICKCORE_LIBS) $(MUPDF_LIBS) $(FREETYPE_LIBS) $(MATH_LIBS)
# XTRN coder module
coders_xtrn_la_SOURCES = coders/xtrn.c
coders_xtrn_la_CPPFLAGS = $(MAGICK_CODER_CPPFLAGS)
coders_xtrn_la_LDFLAGS = $(MODULECOMMONFLAGS)
coders_xtrn_la_LIBADD = $(MAGICKCORE_LIBS) $(OLE_LIBS)
coders_xps_la_LIBADD = $(MAGICKCORE_LIBS) $(MUPDF_LIBS) $(FREETYPE_LIBS) $(MATH_LIBS)
# XWD coder module
coders_xwd_la_SOURCES = coders/xwd.c

View File

@ -17,7 +17,7 @@
% July 1992 %
% %
% %
% Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization %
% Copyright 1999 ImageMagick Studio LLC, a non-profit organization %
% dedicated to making software imaging solutions freely available. %
% %
% You may not use this file except in compliance with the License. You may %
@ -126,11 +126,11 @@ static Image *ReadAAIImage(const ImageInfo *image_info,ExceptionInfo *exception)
*/
assert(image_info != (const ImageInfo *) NULL);
assert(image_info->signature == MagickCoreSignature);
if (image_info->debug != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
image_info->filename);
assert(exception != (ExceptionInfo *) NULL);
assert(exception->signature == MagickCoreSignature);
if (IsEventLogging() != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
image_info->filename);
image=AcquireImage(image_info);
status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);
if (status == MagickFalse)
@ -326,30 +326,26 @@ ModuleExport void UnregisterAAIImage(void)
*/
static MagickBooleanType WriteAAIImage(const ImageInfo *image_info,Image *image)
{
const PixelPacket
*magick_restrict p;
MagickBooleanType
status;
MagickOffsetType
scene;
const PixelPacket
*magick_restrict p;
ssize_t
x;
unsigned char
*magick_restrict q;
size_t
imageListLength;
number_scenes;
ssize_t
count,
x,
y;
unsigned char
*pixels;
*pixels,
*magick_restrict q;
/*
Open output image file.
@ -358,19 +354,20 @@ static MagickBooleanType WriteAAIImage(const ImageInfo *image_info,Image *image)
assert(image_info->signature == MagickCoreSignature);
assert(image != (Image *) NULL);
assert(image->signature == MagickCoreSignature);
if (image->debug != MagickFalse)
if (IsEventLogging() != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
status=OpenBlob(image_info,image,WriteBinaryBlobMode,&image->exception);
if (status == MagickFalse)
return(status);
scene=0;
imageListLength=GetImageListLength(image);
number_scenes=GetImageListLength(image);
do
{
/*
Write AAI header.
*/
(void) TransformImageColorspace(image,sRGBColorspace);
if (IssRGBCompatibleColorspace(image->colorspace) == MagickFalse)
(void) TransformImageColorspace(image,sRGBColorspace);
(void) WriteBlobLSBLong(image,(unsigned int) image->columns);
(void) WriteBlobLSBLong(image,(unsigned int) image->rows);
/*
@ -416,7 +413,7 @@ static MagickBooleanType WriteAAIImage(const ImageInfo *image_info,Image *image)
if (GetNextImageInList(image) == (Image *) NULL)
break;
image=SyncNextImageInList(image);
status=SetImageProgress(image,SaveImagesTag,scene++,imageListLength);
status=SetImageProgress(image,SaveImagesTag,scene++,number_scenes);
if (status == MagickFalse)
break;
} while (image_info->adjoin != MagickFalse);

View File

@ -17,7 +17,7 @@
% July 1992 %
% %
% %
% Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization %
% Copyright 1999 ImageMagick Studio LLC, a non-profit organization %
% dedicated to making software imaging solutions freely available. %
% %
% You may not use this file except in compliance with the License. You may %
@ -125,11 +125,11 @@ static Image *ReadARTImage(const ImageInfo *image_info,ExceptionInfo *exception)
*/
assert(image_info != (const ImageInfo *) NULL);
assert(image_info->signature == MagickCoreSignature);
if (image_info->debug != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
image_info->filename);
assert(exception != (ExceptionInfo *) NULL);
assert(exception->signature == MagickCoreSignature);
if (IsEventLogging() != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
image_info->filename);
image=AcquireImage(image_info);
status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);
if (status == MagickFalse)
@ -322,7 +322,7 @@ static MagickBooleanType WriteARTImage(const ImageInfo *image_info,Image *image)
assert(image_info->signature == MagickCoreSignature);
assert(image != (Image *) NULL);
assert(image->signature == MagickCoreSignature);
if (image->debug != MagickFalse)
if (IsEventLogging() != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
status=OpenBlob(image_info,image,WriteBinaryBlobMode,&image->exception);
if (status == MagickFalse)
@ -335,7 +335,8 @@ static MagickBooleanType WriteARTImage(const ImageInfo *image_info,Image *image)
(void) WriteBlobLSBShort(image,(unsigned short) image->columns);
(void) WriteBlobLSBShort(image,0);
(void) WriteBlobLSBShort(image,(unsigned short) image->rows);
(void) TransformImageColorspace(image,sRGBColorspace);
if (IssRGBCompatibleColorspace(image->colorspace) == MagickFalse)
(void) TransformImageColorspace(image,sRGBColorspace);
length=(image->columns+7)/8;
pixels=(unsigned char *) AcquireQuantumMemory(length,sizeof(*pixels));
if (pixels == (unsigned char *) NULL)

View File

@ -17,7 +17,7 @@
% July 1992 %
% %
% %
% Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization %
% Copyright 1999 ImageMagick Studio LLC, a non-profit organization %
% dedicated to making software imaging solutions freely available. %
% %
% You may not use this file except in compliance with the License. You may %
@ -128,11 +128,11 @@ static Image *ReadAVSImage(const ImageInfo *image_info,ExceptionInfo *exception)
*/
assert(image_info != (const ImageInfo *) NULL);
assert(image_info->signature == MagickCoreSignature);
if (image_info->debug != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
image_info->filename);
assert(exception != (ExceptionInfo *) NULL);
assert(exception->signature == MagickCoreSignature);
if (IsEventLogging() != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
image_info->filename);
image=AcquireImage(image_info);
status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);
if (status == MagickFalse)
@ -331,6 +331,9 @@ ModuleExport void UnregisterAVSImage(void)
*/
static MagickBooleanType WriteAVSImage(const ImageInfo *image_info,Image *image)
{
const PixelPacket
*magick_restrict p;
MagickBooleanType
status;
@ -340,24 +343,17 @@ static MagickBooleanType WriteAVSImage(const ImageInfo *image_info,Image *image)
MemoryInfo
*pixel_info;
const PixelPacket
*magick_restrict p;
ssize_t
x;
unsigned char
*magick_restrict q;
size_t
imageListLength;
number_scenes;
ssize_t
count,
x,
y;
unsigned char
*pixels;
*pixels,
*magick_restrict q;
/*
Open output image file.
@ -366,19 +362,20 @@ static MagickBooleanType WriteAVSImage(const ImageInfo *image_info,Image *image)
assert(image_info->signature == MagickCoreSignature);
assert(image != (Image *) NULL);
assert(image->signature == MagickCoreSignature);
if (image->debug != MagickFalse)
if (IsEventLogging() != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
status=OpenBlob(image_info,image,WriteBinaryBlobMode,&image->exception);
if (status == MagickFalse)
return(status);
scene=0;
imageListLength=GetImageListLength(image);
number_scenes=GetImageListLength(image);
do
{
/*
Write AVS header.
*/
(void) TransformImageColorspace(image,sRGBColorspace);
if (IssRGBCompatibleColorspace(image->colorspace) == MagickFalse)
(void) TransformImageColorspace(image,sRGBColorspace);
(void) WriteBlobMSBLong(image,(unsigned int) image->columns);
(void) WriteBlobMSBLong(image,(unsigned int) image->rows);
/*
@ -421,7 +418,7 @@ static MagickBooleanType WriteAVSImage(const ImageInfo *image_info,Image *image)
if (GetNextImageInList(image) == (Image *) NULL)
break;
image=SyncNextImageInList(image);
status=SetImageProgress(image,SaveImagesTag,scene++,imageListLength);
status=SetImageProgress(image,SaveImagesTag,scene++,number_scenes);
if (status == MagickFalse)
break;
} while (image_info->adjoin != MagickFalse);

View File

@ -17,7 +17,7 @@
% July 1992 %
% %
% %
% Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization %
% Copyright 1999 ImageMagick Studio LLC, a non-profit organization %
% dedicated to making software imaging solutions freely available. %
% %
% You may not use this file except in compliance with the License. You may %
@ -138,11 +138,11 @@ static Image *ReadBGRImage(const ImageInfo *image_info,
*/
assert(image_info != (const ImageInfo *) NULL);
assert(image_info->signature == MagickCoreSignature);
if (image_info->debug != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
image_info->filename);
assert(exception != (ExceptionInfo *) NULL);
assert(exception->signature == MagickCoreSignature);
if (IsEventLogging() != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
image_info->filename);
image=AcquireImage(image_info);
if ((image->columns == 0) || (image->rows == 0))
ThrowReaderException(OptionError,"MustSpecifyImageSize");
@ -165,6 +165,17 @@ static Image *ReadBGRImage(const ImageInfo *image_info,
exception);
if (canvas_image == (Image *) NULL)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
quantum_type=BGRQuantum;
if (LocaleCompare(image_info->magick,"BGRA") == 0)
{
quantum_type=BGRAQuantum;
canvas_image->matte=MagickTrue;
}
if (LocaleCompare(image_info->magick,"BGRO") == 0)
{
quantum_type=BGROQuantum;
canvas_image->matte=MagickTrue;
}
(void) SetImageVirtualPixelMethod(canvas_image,BlackVirtualPixelMethod);
quantum_info=AcquireQuantumInfo(image_info,canvas_image);
if (quantum_info == (QuantumInfo *) NULL)
@ -172,17 +183,6 @@ static Image *ReadBGRImage(const ImageInfo *image_info,
canvas_image=DestroyImage(canvas_image);
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
}
quantum_type=BGRQuantum;
if (LocaleCompare(image_info->magick,"BGRA") == 0)
{
quantum_type=BGRAQuantum;
image->matte=MagickTrue;
}
if (LocaleCompare(image_info->magick,"BGRO") == 0)
{
quantum_type=BGROQuantum;
image->matte=MagickTrue;
}
pixels=GetQuantumPixels(quantum_info);
if (image_info->number_scenes != 0)
while (image->scene < image_info->scene)
@ -209,6 +209,7 @@ static Image *ReadBGRImage(const ImageInfo *image_info,
/*
Read pixels to virtual canvas image then push to image.
*/
image->matte=canvas_image->matte;
if ((image_info->ping != MagickFalse) && (image_info->number_scenes != 0))
if (image->scene >= (image_info->scene+image_info->number_scenes-1))
break;
@ -1110,8 +1111,8 @@ static MagickBooleanType WriteBGRImage(const ImageInfo *image_info,Image *image)
quantum_type;
size_t
imageListLength,
length;
length,
number_scenes;
ssize_t
count,
@ -1127,7 +1128,7 @@ static MagickBooleanType WriteBGRImage(const ImageInfo *image_info,Image *image)
assert(image_info->signature == MagickCoreSignature);
assert(image != (Image *) NULL);
assert(image->signature == MagickCoreSignature);
if (image->debug != MagickFalse)
if (IsEventLogging() != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
if (image_info->interlace != PartitionInterlace)
{
@ -1145,13 +1146,14 @@ static MagickBooleanType WriteBGRImage(const ImageInfo *image_info,Image *image)
image->matte=MagickTrue;
}
scene=0;
imageListLength=GetImageListLength(image);
number_scenes=GetImageListLength(image);
do
{
/*
Convert MIFF to BGR raster pixels.
*/
(void) TransformImageColorspace(image,sRGBColorspace);
if (IssRGBCompatibleColorspace(image->colorspace) == MagickFalse)
(void) TransformImageColorspace(image,sRGBColorspace);
if ((LocaleCompare(image_info->magick,"BGRA") == 0) &&
(image->matte == MagickFalse))
(void) SetImageAlphaChannel(image,ResetAlphaChannel);
@ -1464,7 +1466,7 @@ static MagickBooleanType WriteBGRImage(const ImageInfo *image_info,Image *image)
if (GetNextImageInList(image) == (Image *) NULL)
break;
image=SyncNextImageInList(image);
status=SetImageProgress(image,SaveImagesTag,scene++,imageListLength);
status=SetImageProgress(image,SaveImagesTag,scene++,number_scenes);
if (status == MagickFalse)
break;
} while (image_info->adjoin != MagickFalse);

View File

@ -18,7 +18,7 @@
% December 2001 %
% %
% %
% Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization %
% Copyright 1999 ImageMagick Studio LLC, a non-profit organization %
% dedicated to making software imaging solutions freely available. %
% %
% You may not use this file except in compliance with the License. You may %
@ -75,6 +75,9 @@
#define BI_JPEG 4
#undef BI_PNG
#define BI_PNG 5
#ifndef BI_ALPHABITFIELDS
#define BI_ALPHABITFIELDS 6
#endif
#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__MINGW32__)
#undef BI_RGB
#define BI_RGB 0
@ -107,7 +110,7 @@
#endif
/*
Enumerated declaractions.
Enumerated declarations.
*/
typedef enum
{
@ -220,9 +223,9 @@ static MagickBooleanType DecodeImage(Image *image,const size_t compression,
assert(image != (Image *) NULL);
assert(image->signature == MagickCoreSignature);
if (image->debug != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
assert(pixels != (unsigned char *) NULL);
if (IsEventLogging() != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
(void) memset(pixels,0,number_pixels*sizeof(*pixels));
byte=0;
x=0;
@ -233,7 +236,7 @@ static MagickBooleanType DecodeImage(Image *image,const size_t compression,
MagickBooleanType
status;
if ((p < pixels) || (p > q))
if ((p < pixels) || (p >= q))
break;
count=ReadBlobByte(image);
if (count == EOF)
@ -269,7 +272,7 @@ static MagickBooleanType DecodeImage(Image *image,const size_t compression,
if (count == EOF)
break;
if (count == 0x01)
return(MagickTrue);
break;
switch (count)
{
case 0x00:
@ -287,8 +290,14 @@ static MagickBooleanType DecodeImage(Image *image,const size_t compression,
/*
Delta mode.
*/
x+=ReadBlobByte(image);
y+=ReadBlobByte(image);
byte=ReadBlobByte(image);
if (byte == EOF)
return(MagickFalse);
x+=byte;
byte=ReadBlobByte(image);
if (byte == EOF)
return(MagickFalse);
y+=byte;
p=pixels+y*image->columns+x;
break;
}
@ -298,6 +307,8 @@ static MagickBooleanType DecodeImage(Image *image,const size_t compression,
Absolute mode.
*/
count=(int) MagickMin((ssize_t) count,(ssize_t) (q-p));
if (count < 0)
break;
if (compression == BI_RLE8)
for (i=0; i < (ssize_t) count; i++)
{
@ -318,6 +329,8 @@ static MagickBooleanType DecodeImage(Image *image,const size_t compression,
*p++=(unsigned char)
((i & 0x01) != 0 ? (byte & 0x0f) : ((byte >> 4) & 0x0f));
}
if (byte == EOF)
break;
x+=count;
/*
Read pad byte.
@ -343,7 +356,7 @@ static MagickBooleanType DecodeImage(Image *image,const size_t compression,
}
(void) ReadBlobByte(image); /* end of line */
(void) ReadBlobByte(image);
return(y < (ssize_t) image->rows ? MagickFalse : MagickTrue);
return((q-pixels) < (ssize_t) number_pixels ? MagickFalse : MagickTrue);
}
/*
@ -402,10 +415,10 @@ static size_t EncodeImage(Image *image,const size_t bytes_per_line,
*/
assert(image != (Image *) NULL);
assert(image->signature == MagickCoreSignature);
if (image->debug != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
assert(pixels != (const unsigned char *) NULL);
assert(compressed_pixels != (unsigned char *) NULL);
if (IsEventLogging() != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
p=pixels;
q=compressed_pixels;
i=0;
@ -473,7 +486,7 @@ static MagickBooleanType IsBMP(const unsigned char *magick,const size_t length)
if ((LocaleNCompare((char *) magick,"BA",2) == 0) ||
(LocaleNCompare((char *) magick,"BM",2) == 0) ||
(LocaleNCompare((char *) magick,"IC",2) == 0) ||
(LocaleNCompare((char *) magick,"PI",2) == 0) ||
(LocaleNCompare((char *) magick,"PT",2) == 0) ||
(LocaleNCompare((char *) magick,"CI",2) == 0) ||
(LocaleNCompare((char *) magick,"CP",2) == 0))
return(MagickTrue);
@ -508,6 +521,69 @@ static MagickBooleanType IsBMP(const unsigned char *magick,const size_t length)
%
*/
static Image *ReadEmbedImage(const ImageInfo *image_info,Image *image,
const char *magick,ExceptionInfo *exception)
{
const void
*stream;
Image
*embed_image;
ImageInfo
*embed_info;
MemoryInfo
*pixel_info;
size_t
length;
ssize_t
count;
unsigned char
*pixels;
/*
Read embedded image.
*/
length=(size_t) ((MagickOffsetType) GetBlobSize(image)-TellBlob(image));
pixel_info=AcquireVirtualMemory(length,sizeof(*pixels));
if (pixel_info == (MemoryInfo *) NULL)
{
(void) ThrowMagickException(exception,GetMagickModule(),
ResourceLimitError,"MemoryAllocationFailed","`%s'",image->filename);
return((Image *) NULL);
}
pixels=(unsigned char *) GetVirtualMemoryBlob(pixel_info);
stream=ReadBlobStream(image,length,pixels,&count);
if (count != (ssize_t) length)
{
pixel_info=RelinquishVirtualMemory(pixel_info);
(void) ThrowMagickException(exception,GetMagickModule(),CorruptImageError,
"ImproperImageHeader","`%s'",image->filename);
return((Image *) NULL);
}
embed_info=AcquireImageInfo();
(void) FormatLocaleString(embed_info->filename,MagickPathExtent,
"%s:%s",magick,image_info->filename);
embed_image=BlobToImage(embed_info,stream,(size_t) count,exception);
embed_info=DestroyImageInfo(embed_info);
pixel_info=RelinquishVirtualMemory(pixel_info);
if (embed_image != (Image *) NULL)
{
(void) CopyMagickString(embed_image->filename,image->filename,
MagickPathExtent);
(void) CopyMagickString(embed_image->magick_filename,
image->magick_filename,MagickPathExtent);
(void) CopyMagickString(embed_image->magick,image->magick,
MagickPathExtent);
}
return(embed_image);
}
static Image *ReadBMPImage(const ImageInfo *image_info,ExceptionInfo *exception)
{
BMPInfo
@ -517,7 +593,8 @@ static Image *ReadBMPImage(const ImageInfo *image_info,ExceptionInfo *exception)
*image;
IndexPacket
index;
index,
*indexes;
MagickBooleanType
status;
@ -534,19 +611,9 @@ static Image *ReadBMPImage(const ImageInfo *image_info,ExceptionInfo *exception)
MemoryInfo
*pixel_info;
IndexPacket
*indexes;
PixelPacket
*q;
ssize_t
i,
x;
unsigned char
*p;
size_t
bit,
bytes_per_line,
@ -554,10 +621,13 @@ static Image *ReadBMPImage(const ImageInfo *image_info,ExceptionInfo *exception)
ssize_t
count,
i,
x,
y;
unsigned char
magick[12],
*p,
*pixels;
unsigned int
@ -571,11 +641,11 @@ static Image *ReadBMPImage(const ImageInfo *image_info,ExceptionInfo *exception)
*/
assert(image_info != (const ImageInfo *) NULL);
assert(image_info->signature == MagickCoreSignature);
if (image_info->debug != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
image_info->filename);
assert(exception != (ExceptionInfo *) NULL);
assert(exception->signature == MagickCoreSignature);
if (IsEventLogging() != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
image_info->filename);
image=AcquireImage(image_info);
status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);
if (status == MagickFalse)
@ -624,16 +694,24 @@ static Image *ReadBMPImage(const ImageInfo *image_info,ExceptionInfo *exception)
ThrowReaderException(CorruptImageError,"ImproperImageHeader");
bmp_info.file_size=ReadBlobLSBLong(image);
(void) ReadBlobLSBLong(image);
if (image->debug != MagickFalse)
(void) LogMagickEvent(CoderEvent,GetMagickModule(),
" File_size in header: %u bytes",bmp_info.file_size);
bmp_info.offset_bits=ReadBlobLSBLong(image);
bmp_info.size=ReadBlobLSBLong(image);
if (image->debug != MagickFalse)
(void) LogMagickEvent(CoderEvent,GetMagickModule()," BMP size: %u",
bmp_info.size);
(void) LogMagickEvent(CoderEvent,GetMagickModule(),
" BMP header size: %u",bmp_info.size);
if (LocaleNCompare((char *) magick,"CI",2) == 0)
{
if ((bmp_info.size != 12) && (bmp_info.size != 40) &&
(bmp_info.size != 64))
ThrowReaderException(CorruptImageError,"ImproperImageHeader");
}
if (bmp_info.size > 124)
ThrowReaderException(CorruptImageError,"ImproperImageHeader");
if ((bmp_info.file_size != 0) &&
((MagickSizeType) bmp_info.file_size > GetBlobSize(image)))
ThrowReaderException(CorruptImageError,"ImproperImageHeader");
if (bmp_info.offset_bits < bmp_info.size)
ThrowReaderException(CorruptImageError,"ImproperImageHeader");
profile_data=0;
profile_size=0;
if (bmp_info.size == 12)
@ -666,6 +744,19 @@ static Image *ReadBMPImage(const ImageInfo *image_info,ExceptionInfo *exception)
/*
Microsoft Windows BMP image file.
*/
switch (bmp_info.size)
{
case 40: case 52: case 56: case 64: case 78: case 108: case 124:
{
break;
}
default:
{
if (bmp_info.size < 64)
ThrowReaderException(CorruptImageError,"ImproperImageHeader");
break;
}
}
bmp_info.width=(ssize_t) ReadBlobLSBSignedLong(image);
bmp_info.height=(ssize_t) ReadBlobLSBSignedLong(image);
bmp_info.planes=ReadBlobLSBShort(image);
@ -717,6 +808,12 @@ static Image *ReadBMPImage(const ImageInfo *image_info,ExceptionInfo *exception)
" Compression: BI_BITFIELDS");
break;
}
case BI_ALPHABITFIELDS:
{
(void) LogMagickEvent(CoderEvent,GetMagickModule(),
" Compression: BI_ALPHABITFIELDS");
break;
}
case BI_PNG:
{
(void) LogMagickEvent(CoderEvent,GetMagickModule(),
@ -738,11 +835,14 @@ static Image *ReadBMPImage(const ImageInfo *image_info,ExceptionInfo *exception)
(void) LogMagickEvent(CoderEvent,GetMagickModule(),
" Number of colors: %u",bmp_info.number_colors);
}
if ((bmp_info.size > 40) || (bmp_info.compression == BI_BITFIELDS))
if ((bmp_info.size > 40) || (bmp_info.compression == BI_BITFIELDS) ||
(bmp_info.compression == BI_ALPHABITFIELDS))
{
bmp_info.red_mask=ReadBlobLSBLong(image);
bmp_info.green_mask=ReadBlobLSBLong(image);
bmp_info.blue_mask=ReadBlobLSBLong(image);
if (bmp_info.compression == BI_ALPHABITFIELDS)
bmp_info.alpha_mask=ReadBlobLSBLong(image);
}
if (bmp_info.size > 40)
{
@ -773,24 +873,18 @@ static Image *ReadBMPImage(const ImageInfo *image_info,ExceptionInfo *exception)
gamma=PerceptibleReciprocal(gamma);
bmp_info.red_primary.x*=gamma;
bmp_info.red_primary.y*=gamma;
image->chromaticity.red_primary.x=bmp_info.red_primary.x;
image->chromaticity.red_primary.y=bmp_info.red_primary.y;
gamma=bmp_info.green_primary.x+bmp_info.green_primary.y+
bmp_info.green_primary.z;
gamma=PerceptibleReciprocal(gamma);
bmp_info.green_primary.x*=gamma;
bmp_info.green_primary.y*=gamma;
image->chromaticity.green_primary.x=bmp_info.green_primary.x;
image->chromaticity.green_primary.y=bmp_info.green_primary.y;
gamma=bmp_info.blue_primary.x+bmp_info.blue_primary.y+
bmp_info.blue_primary.z;
gamma=PerceptibleReciprocal(gamma);
bmp_info.blue_primary.x*=gamma;
bmp_info.blue_primary.y*=gamma;
image->chromaticity.blue_primary.x=bmp_info.blue_primary.x;
image->chromaticity.blue_primary.y=bmp_info.blue_primary.y;
/*
Decode 16^16 fixed point formatted gamma_scales.
@ -798,11 +892,21 @@ static Image *ReadBMPImage(const ImageInfo *image_info,ExceptionInfo *exception)
bmp_info.gamma_scale.x=(double) ReadBlobLSBLong(image)/0x10000;
bmp_info.gamma_scale.y=(double) ReadBlobLSBLong(image)/0x10000;
bmp_info.gamma_scale.z=(double) ReadBlobLSBLong(image)/0x10000;
/*
Compute a single gamma from the BMP 3-channel gamma.
*/
image->gamma=(bmp_info.gamma_scale.x+bmp_info.gamma_scale.y+
bmp_info.gamma_scale.z)/3.0;
if (bmp_info.colorspace == 0)
{
image->chromaticity.red_primary.x=bmp_info.red_primary.x;
image->chromaticity.red_primary.y=bmp_info.red_primary.y;
image->chromaticity.green_primary.x=bmp_info.green_primary.x;
image->chromaticity.green_primary.y=bmp_info.green_primary.y;
image->chromaticity.blue_primary.x=bmp_info.blue_primary.x;
image->chromaticity.blue_primary.y=bmp_info.blue_primary.y;
/*
Compute a single gamma from the BMP 3-channel gamma.
*/
image->gamma=(bmp_info.gamma_scale.x+bmp_info.gamma_scale.y+
bmp_info.gamma_scale.z)/3.0;
}
}
else
(void) CopyMagickString(image->magick,"BMP3",MaxTextExtent);
@ -859,18 +963,46 @@ static Image *ReadBMPImage(const ImageInfo *image_info,ExceptionInfo *exception)
ThrowReaderException(CorruptImageError,"NegativeOrZeroImageSize");
if (bmp_info.height == 0)
ThrowReaderException(CorruptImageError,"NegativeOrZeroImageSize");
if (bmp_info.compression == BI_JPEG)
{
/*
Read embedded JPEG image.
*/
Image *embed_image = ReadEmbedImage(image_info,image,"jpeg",exception);
(void) CloseBlob(image);
image=DestroyImageList(image);
return(embed_image);
}
if (bmp_info.compression == BI_PNG)
{
/*
Read embedded PNG image.
*/
Image *embed_image = ReadEmbedImage(image_info,image,"png",exception);
(void) CloseBlob(image);
image=DestroyImageList(image);
return(embed_image);
}
if (bmp_info.planes != 1)
ThrowReaderException(CorruptImageError,"StaticPlanesValueNotEqualToOne");
if ((bmp_info.bits_per_pixel != 1) && (bmp_info.bits_per_pixel != 4) &&
(bmp_info.bits_per_pixel != 8) && (bmp_info.bits_per_pixel != 16) &&
(bmp_info.bits_per_pixel != 24) && (bmp_info.bits_per_pixel != 32))
ThrowReaderException(CorruptImageError,"UnsupportedBitsPerPixel");
if (bmp_info.bits_per_pixel < 16 &&
bmp_info.number_colors > (1U << bmp_info.bits_per_pixel))
switch (bmp_info.bits_per_pixel)
{
case 1: case 4: case 8: case 16: case 24: case 32: case 64:
{
break;
}
default:
ThrowReaderException(CorruptImageError,"UnsupportedBitsPerPixel");
}
if ((bmp_info.bits_per_pixel < 16) &&
(bmp_info.number_colors > (1U << bmp_info.bits_per_pixel)))
ThrowReaderException(CorruptImageError,"UnrecognizedNumberOfColors");
if ((MagickSizeType) bmp_info.number_colors > blob_size)
ThrowReaderException(CorruptImageError,"InsufficientImageDataInFile");
if ((bmp_info.compression == BI_RLE8) && (bmp_info.bits_per_pixel != 8))
ThrowReaderException(CorruptImageError,"UnsupportedBitsPerPixel");
if ((bmp_info.compression == BI_RLE4) && (bmp_info.bits_per_pixel != 4))
if ((bmp_info.compression == BI_RLE4) &&
(bmp_info.bits_per_pixel != 4))
ThrowReaderException(CorruptImageError,"UnsupportedBitsPerPixel");
if ((bmp_info.compression == BI_BITFIELDS) && (bmp_info.bits_per_pixel < 16))
ThrowReaderException(CorruptImageError,"UnsupportedBitsPerPixel");
@ -885,6 +1017,8 @@ static Image *ReadBMPImage(const ImageInfo *image_info,ExceptionInfo *exception)
break;
case BI_BITFIELDS:
break;
case BI_ALPHABITFIELDS:
break;
case BI_JPEG:
ThrowReaderException(CoderError,"JPEGCompressNotSupported");
case BI_PNG:
@ -984,7 +1118,8 @@ static Image *ReadBMPImage(const ImageInfo *image_info,ExceptionInfo *exception)
if ((MagickSizeType) (length/256) > blob_size)
ThrowReaderException(CorruptImageError,"InsufficientImageDataInFile");
if ((bmp_info.compression == BI_RGB) ||
(bmp_info.compression == BI_BITFIELDS))
(bmp_info.compression == BI_BITFIELDS) ||
(bmp_info.compression == BI_ALPHABITFIELDS))
{
pixel_info=AcquireVirtualMemory(image->rows,MagickMax(bytes_per_line,
image->columns+256UL)*sizeof(*pixels));
@ -1030,7 +1165,7 @@ static Image *ReadBMPImage(const ImageInfo *image_info,ExceptionInfo *exception)
We should ignore the alpha value in BMP3 files but there have been
reports about 32 bit files with alpha. We do a quick check to see if
the alpha channel contains a value that is not zero (default value).
If we find a non zero value we asume the program that wrote the file
If we find a non zero value we assume the program that wrote the file
wants to use the alpha channel.
*/
if ((image->matte == MagickFalse) && (bmp_info.size == 40) &&
@ -1116,7 +1251,7 @@ static Image *ReadBMPImage(const ImageInfo *image_info,ExceptionInfo *exception)
while (((bmp_info.green_mask << sample) & 0x80000000UL) != 0)
{
sample++;
if (sample > 32U)
if (sample >= 32U)
break;
}
quantum_bits.green=ClampToQuantum((MagickRealType) sample-shift.green);
@ -1124,7 +1259,7 @@ static Image *ReadBMPImage(const ImageInfo *image_info,ExceptionInfo *exception)
while (((bmp_info.blue_mask << sample) & 0x80000000UL) != 0)
{
sample++;
if (sample > 32U)
if (sample >= 32U)
break;
}
quantum_bits.blue=ClampToQuantum((MagickRealType) sample-shift.blue);
@ -1132,7 +1267,7 @@ static Image *ReadBMPImage(const ImageInfo *image_info,ExceptionInfo *exception)
while (((bmp_info.alpha_mask << sample) & 0x80000000UL) != 0)
{
sample++;
if (sample > 32U)
if (sample >= 32U)
break;
}
quantum_bits.opacity=ClampToQuantum((MagickRealType) sample-
@ -1433,6 +1568,41 @@ static Image *ReadBMPImage(const ImageInfo *image_info,ExceptionInfo *exception)
}
break;
}
case 64:
{
/*
Convert DirectColor scanline.
*/
for (y=(ssize_t) image->rows-1; y >= 0; y--)
{
unsigned short
*p16;
p16=(unsigned short *) pixels+(image->rows-y-1)*bytes_per_line;
q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
if (q == (PixelPacket *) NULL)
break;
for (x=0; x < (ssize_t) image->columns; x++)
{
SetPixelBlue(q,ScaleShortToQuantum(*p16++));
SetPixelGreen(q,ScaleShortToQuantum(*p16++));
SetPixelRed(q,ScaleShortToQuantum(*p16++));
SetPixelAlpha(q,ScaleShortToQuantum(*p16++));
q++;
}
if (SyncAuthenticPixels(image,exception) == MagickFalse)
break;
offset=(MagickOffsetType) (image->rows-y-1);
if (image->previous == (Image *) NULL)
{
status=SetImageProgress(image,LoadImageTag,(MagickOffsetType)
(image->rows-y),image->rows);
if (status == MagickFalse)
break;
}
}
break;
}
default:
{
pixel_info=RelinquishVirtualMemory(pixel_info);
@ -1465,7 +1635,7 @@ static Image *ReadBMPImage(const ImageInfo *image_info,ExceptionInfo *exception)
}
}
/*
Read embeded ICC profile
Read embedded ICC profile
*/
if ((bmp_info.colorspace == 0x4D424544L) && (profile_data > 0) &&
(profile_size > 0))
@ -1663,6 +1833,12 @@ static MagickBooleanType WriteBMPImage(const ImageInfo *image_info,Image *image)
const char
*option;
const IndexPacket
*indexes;
const PixelPacket
*p;
const StringInfo
*profile;
@ -1674,37 +1850,25 @@ static MagickBooleanType WriteBMPImage(const ImageInfo *image_info,Image *image)
*pixel_info;
MagickOffsetType
profile_data,
profile_size,
profile_size_pad,
scene;
const IndexPacket
*indexes;
const PixelPacket
*p;
ssize_t
i,
x;
unsigned char
*q;
size_t
bytes_per_line,
imageListLength,
number_scenes,
type;
ssize_t
i,
x,
y;
unsigned char
*bmp_data,
*pixels;
MagickOffsetType
profile_data,
profile_size,
profile_size_pad;
*pixels,
*q;
/*
Open output image file.
@ -1713,7 +1877,7 @@ static MagickBooleanType WriteBMPImage(const ImageInfo *image_info,Image *image)
assert(image_info->signature == MagickCoreSignature);
assert(image != (Image *) NULL);
assert(image->signature == MagickCoreSignature);
if (image->debug != MagickFalse)
if (IsEventLogging() != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
status=OpenBlob(image_info,image,WriteBinaryBlobMode,&image->exception);
if (status == MagickFalse)
@ -1742,7 +1906,7 @@ static MagickBooleanType WriteBMPImage(const ImageInfo *image_info,Image *image)
type=4;
}
scene=0;
imageListLength=GetImageListLength(image);
number_scenes=GetImageListLength(image);
do
{
/*
@ -2323,21 +2487,21 @@ static MagickBooleanType WriteBMPImage(const ImageInfo *image_info,Image *image)
(void) WriteBlobLSBLong(image,(unsigned int)
((ssize_t) image->chromaticity.red_primary.y*0x40000000));
(void) WriteBlobLSBLong(image,(unsigned int)
((ssize_t) (1.000f-(image->chromaticity.red_primary.x+
((ssize_t) (1.000-(image->chromaticity.red_primary.x+
image->chromaticity.red_primary.y))*0x40000000));
(void) WriteBlobLSBLong(image,(unsigned int)
((ssize_t) image->chromaticity.green_primary.x*0x40000000));
(void) WriteBlobLSBLong(image,(unsigned int)
((ssize_t) image->chromaticity.green_primary.y*0x40000000));
(void) WriteBlobLSBLong(image,(unsigned int)
((ssize_t) (1.000f-(image->chromaticity.green_primary.x+
((ssize_t) (1.000-(image->chromaticity.green_primary.x+
image->chromaticity.green_primary.y))*0x40000000));
(void) WriteBlobLSBLong(image,(unsigned int)
((ssize_t) image->chromaticity.blue_primary.x*0x40000000));
(void) WriteBlobLSBLong(image,(unsigned int)
((ssize_t) image->chromaticity.blue_primary.y*0x40000000));
(void) WriteBlobLSBLong(image,(unsigned int)
((ssize_t) (1.000f-(image->chromaticity.blue_primary.x+
((ssize_t) (1.000-(image->chromaticity.blue_primary.x+
image->chromaticity.blue_primary.y))*0x40000000));
(void) WriteBlobLSBLong(image,(unsigned int)
((ssize_t) bmp_info.gamma_scale.x*0x10000));
@ -2447,7 +2611,7 @@ static MagickBooleanType WriteBMPImage(const ImageInfo *image_info,Image *image)
if (GetNextImageInList(image) == (Image *) NULL)
break;
image=SyncNextImageInList(image);
status=SetImageProgress(image,SaveImagesTag,scene++,imageListLength);
status=SetImageProgress(image,SaveImagesTag,scene++,number_scenes);
if (status == MagickFalse)
break;
} while (image_info->adjoin != MagickFalse);

View File

@ -15,7 +15,7 @@
% February 2008 %
% %
% %
% Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization %
% Copyright 1999 ImageMagick Studio LLC, a non-profit organization %
% dedicated to making software imaging solutions freely available. %
% %
% You may not use this file except in compliance with the License. You may %
@ -231,6 +231,8 @@ static MagickBooleanType WriteBRAILLEImage(const ImageInfo *image_info,
assert(image_info->signature == MagickCoreSignature);
assert(image != (Image *) NULL);
assert(image->signature == MagickCoreSignature);
if (IsEventLogging() != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
if (LocaleCompare(image_info->magick,"UBRL") == 0)
unicode=1;
else
@ -250,8 +252,6 @@ static MagickBooleanType WriteBRAILLEImage(const ImageInfo *image_info,
}
else
cell_height=3;
if (image->debug != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
status=OpenBlob(image_info,image,WriteBinaryBlobMode,&image->exception);
if (status == MagickFalse)
return(status);
@ -288,7 +288,7 @@ static MagickBooleanType WriteBRAILLEImage(const ImageInfo *image_info,
if (image->storage_class == PseudoClass)
{
polarity=(IndexPacket) (GetPixelLuma(image,&image->colormap[0]) >=
(QuantumRange/2.0));
((MagickRealType) QuantumRange/2.0));
if (image->colors == 2)
polarity=(IndexPacket) (GetPixelLuma(image,&image->colormap[0]) >=
GetPixelLuma(image,&image->colormap[1]));

View File

@ -1,5 +1,5 @@
/*
Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
Copyright 1999 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License. You may
@ -31,7 +31,7 @@ typedef struct _MagickByteBuffer
data[MagickMinBufferExtent];
} MagickByteBuffer;
static inline int ReadMagickByteBuffer(MagickByteBuffer *buffer)
static inline int PeekMagickByteBuffer(MagickByteBuffer *buffer)
{
if ((buffer->offset == buffer->count) && (buffer->offset > 0))
{
@ -47,7 +47,18 @@ static inline int ReadMagickByteBuffer(MagickByteBuffer *buffer)
if (buffer->count < 1)
return(EOF);
}
return(buffer->data[buffer->offset++]);
return((int) buffer->data[buffer->offset]);
}
static inline int ReadMagickByteBuffer(MagickByteBuffer *buffer)
{
int
result;
result=PeekMagickByteBuffer(buffer);
if (result != EOF)
buffer->offset++;
return(result);
}
static inline char *GetMagickByteBufferDatum(MagickByteBuffer *buffer)

View File

@ -17,7 +17,7 @@
% July 1992 %
% %
% %
% Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization %
% Copyright 1999 ImageMagick Studio LLC, a non-profit organization %
% dedicated to making software imaging solutions freely available. %
% %
% You may not use this file except in compliance with the License. You may %
@ -181,11 +181,11 @@ static Image *ReadCALSImage(const ImageInfo *image_info,
*/
assert(image_info != (const ImageInfo *) NULL);
assert(image_info->signature == MagickCoreSignature);
if (image_info->debug != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
image_info->filename);
assert(exception != (ExceptionInfo *) NULL);
assert(exception->signature == MagickCoreSignature);
if (IsEventLogging() != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
image_info->filename);
image=AcquireImage(image_info);
status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);
if (status == MagickFalse)
@ -469,7 +469,7 @@ static MagickBooleanType WriteCALSImage(const ImageInfo *image_info,
assert(image_info->signature == MagickCoreSignature);
assert(image != (Image *) NULL);
assert(image->signature == MagickCoreSignature);
if (image->debug != MagickFalse)
if (IsEventLogging() != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
status=OpenBlob(image_info,image,WriteBinaryBlobMode,&image->exception);
if (status == MagickFalse)

Some files were not shown because too many files have changed in this diff Show More