Import Upstream version 6.9.12.98+dfsg1
This commit is contained in:
parent
66d1e3d7a0
commit
18492346e0
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
133
Install-unix.txt
133
Install-unix.txt
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
2
LICENSE
2
LICENSE
|
@ -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.
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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 );
|
||||
|
|
|
@ -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 );
|
||||
|
|
|
@ -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( );
|
||||
|
|
|
@ -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_)
|
||||
{
|
||||
|
|
|
@ -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 )
|
||||
{
|
||||
}
|
||||
|
|
|
@ -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_),
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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_)
|
||||
{
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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.
|
||||
//
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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_,
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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_ )
|
||||
{
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
VERS_8.0 {
|
||||
VERS_9.0 {
|
||||
global:
|
||||
*;
|
||||
};
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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@
|
||||
|
|
1138
Makefile.in
1138
Makefile.in
File diff suppressed because it is too large
Load Diff
2
NOTICE
2
NOTICE
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
@ -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(
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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...
|
||||
|
|
|
@ -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)' }
|
||||
);
|
||||
|
||||
|
|
|
@ -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)' }
|
||||
);
|
||||
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -23,5 +23,5 @@ testReadWrite( 'input.miff',
|
|||
q/compression=>'BZip'/,
|
||||
'a698f2fe0c6c31f83d19554a6ec02bac79c961dd9a87e7ed217752e75eb615d7' );
|
||||
|
||||
$test = 0; # Quench PERL compliaint
|
||||
$test = 0; # Quench PERL complaint
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;}
|
||||
|
|
|
@ -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;}
|
||||
|
|
|
@ -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.
Binary file not shown.
After Width: | Height: | Size: 4.7 KiB |
Binary file not shown.
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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' );
|
||||
|
||||
|
|
|
@ -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.
|
@ -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);
|
||||
|
||||
|
|
|
@ -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
|
@ -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 {
|
||||
|
|
|
@ -23,5 +23,5 @@ testReadWrite( 'input.miff',
|
|||
q/compression=>'Zip'/,
|
||||
'a698f2fe0c6c31f83d19554a6ec02bac79c961dd9a87e7ed217752e75eb615d7' );
|
||||
|
||||
$test = 0; # Quench PERL compliaint
|
||||
$test = 0; # Quench PERL complaint
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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.
|
|
@ -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
|
||||
|
|
|
@ -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])
|
||||
|
|
|
@ -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
|
||||
|
|
35
coders/aai.c
35
coders/aai.c
|
@ -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);
|
||||
|
|
13
coders/art.c
13
coders/art.c
|
@ -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)
|
||||
|
|
35
coders/avs.c
35
coders/avs.c
|
@ -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);
|
||||
|
|
44
coders/bgr.c
44
coders/bgr.c
|
@ -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);
|
||||
|
|
332
coders/bmp.c
332
coders/bmp.c
|
@ -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);
|
||||
|
|
|
@ -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]));
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
Loading…
Reference in New Issue