From: cristy
Date: Thu, 4 Aug 2011 01:35:11 +0000 (+0000)
Subject: (no commit message)
X-Git-Tag: 7.0.1-0~7235
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=222b19c8e5e5ee5287e41d33fea54f2b651741b6;p=imagemagick
---
diff --git a/MagickCore/cache-private.h b/MagickCore/cache-private.h
index 5a2ff6254..e76cd6688 100644
--- a/MagickCore/cache-private.h
+++ b/MagickCore/cache-private.h
@@ -1,12 +1,12 @@
/*
Copyright 1999-2011 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.
obtain a copy of the License at
-
+
http://www.imagemagick.org/script/license.php
-
+
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -118,6 +118,13 @@ typedef struct _CacheInfo
ColorspaceType
colorspace;
+ MagickBooleanType
+ matte;
+
+ size_t
+ columns,
+ rows;
+
size_t
metacontent_extent,
number_channels;
@@ -131,10 +138,6 @@ typedef struct _CacheInfo
MagickBooleanType
mapped;
- size_t
- columns,
- rows;
-
MagickOffsetType
offset;
diff --git a/MagickCore/cache.c b/MagickCore/cache.c
index 90cd4e88c..0a6ba8164 100644
--- a/MagickCore/cache.c
+++ b/MagickCore/cache.c
@@ -1970,6 +1970,7 @@ static inline MagickBooleanType ValidatePixelCacheMorphology(const Image *image)
cache_info=(CacheInfo *) image->cache;
if ((image->storage_class != cache_info->storage_class) ||
(image->colorspace != cache_info->colorspace) ||
+ (image->matte != cache_info->matte) ||
(image->columns != cache_info->columns) ||
(image->rows != cache_info->rows) ||
(image->number_channels != cache_info->number_channels) ||
@@ -4003,11 +4004,12 @@ static MagickBooleanType OpenPixelCache(Image *image,const MapMode mode,
image->filename,(double) GetImageIndexInList(image));
cache_info->storage_class=image->storage_class;
cache_info->colorspace=image->colorspace;
- cache_info->mode=mode;
+ cache_info->matte=image->matte;
cache_info->rows=image->rows;
cache_info->columns=image->columns;
cache_info->number_channels=GetPixelChannels(image);
cache_info->metacontent_extent=image->metacontent_extent;
+ cache_info->mode=mode;
if (image->ping != MagickFalse)
{
cache_info->type=PingCache;
diff --git a/MagickCore/effect.c b/MagickCore/effect.c
index b9f296df8..ab794b4f4 100644
--- a/MagickCore/effect.c
+++ b/MagickCore/effect.c
@@ -1362,9 +1362,7 @@ MagickExport Image *ConvolveImage(const Image *image,
k=kernel_info->values;
pixels=p;
pixel=kernel_info->bias;
- if (((convolve_traits & BlendPixelTrait) == 0) ||
- (GetPixelAlphaTraits(image) == UndefinedPixelTrait) ||
- (image->matte == MagickFalse))
+ if ((convolve_traits & BlendPixelTrait) == 0)
{
/*
No alpha blending.
diff --git a/MagickCore/magick-config.h b/MagickCore/magick-config.h
index f21ee5d27..500da0bb6 100644
--- a/MagickCore/magick-config.h
+++ b/MagickCore/magick-config.h
@@ -12,7 +12,9 @@
/* #undef AUTOTRACE_DELEGATE */
/* Define if coders and filters are to be built as modules. */
-/* #undef BUILD_MODULES */
+#ifndef MAGICKCORE_BUILD_MODULES
+#define MAGICKCORE_BUILD_MODULES 1
+#endif
/* Define if you have the bzip2 library */
#ifndef MAGICKCORE_BZLIB_DELEGATE
@@ -78,7 +80,9 @@
#endif
/* Define if you have FFTW library */
-/* #undef FFTW_DELEGATE */
+#ifndef MAGICKCORE_FFTW_DELEGATE
+#define MAGICKCORE_FFTW_DELEGATE 1
+#endif
/* Location of filter modules */
#ifndef MAGICKCORE_FILTER_PATH
@@ -432,15 +436,15 @@
#endif
/* Define if you have the header file. */
-#ifndef MAGICKCORE_HAVE_LCMS2_H
-#define MAGICKCORE_HAVE_LCMS2_H 1
-#endif
+/* #undef HAVE_LCMS2_H */
/* Define if you have the header file. */
/* #undef HAVE_LCMS2_LCMS2_H */
/* Define if you have the header file. */
-/* #undef HAVE_LCMS_H */
+#ifndef MAGICKCORE_HAVE_LCMS_H
+#define MAGICKCORE_HAVE_LCMS_H 1
+#endif
/* Define if you have the header file. */
/* #undef HAVE_LCMS_LCMS_H */
@@ -1163,7 +1167,9 @@
#endif
/* Define if you have JBIG library */
-/* #undef JBIG_DELEGATE */
+#ifndef MAGICKCORE_JBIG_DELEGATE
+#define MAGICKCORE_JBIG_DELEGATE 1
+#endif
/* Define if you have JPEG version 2 "Jasper" library */
#ifndef MAGICKCORE_JP2_DELEGATE
@@ -1192,7 +1198,9 @@
#endif
/* Define if you have LQR library */
-/* #undef LQR_DELEGATE */
+#ifndef MAGICKCORE_LQR_DELEGATE
+#define MAGICKCORE_LQR_DELEGATE 1
+#endif
/* Define if using libltdl to support dynamically loadable modules */
#ifndef MAGICKCORE_LTDL_DELEGATE
@@ -1204,7 +1212,7 @@
/* Define to the system default library search path. */
#ifndef MAGICKCORE_LT_DLSEARCH_PATH
-#define MAGICKCORE_LT_DLSEARCH_PATH "/lib64:/usr/lib64:/lib:/usr/lib:/usr/lib64/atlas:/usr/lib64/mysql:/usr/lib64/qt-3.3/lib:/usr/lib64/tcl8.5/tclx8.4:/usr/lib64/tcl8.5:/usr/lib/wine/:/usr/lib64/wine/:/usr/lib64/xulrunner-2"
+#define MAGICKCORE_LT_DLSEARCH_PATH "/lib64:/usr/lib64:/lib:/usr/lib:/usr/lib64/R/lib:/usr/lib64/atlas:/opt/modules/pkg/intel/f77/10.0.025/lib:/usr/local/lib:/usr/lib64/mysql:/usr/lib64/qt-3.3/lib:/usr/lib64/xulrunner-2"
#endif
/* The archive extension */
@@ -1255,7 +1263,9 @@
/* #undef NO_MINUS_C_MINUS_O */
/* Define if you have OPENEXR library */
-/* #undef OPENEXR_DELEGATE */
+#ifndef MAGICKCORE_OPENEXR_DELEGATE
+#define MAGICKCORE_OPENEXR_DELEGATE 1
+#endif
/* Define to the address where bug reports for this package should be sent. */
#ifndef MAGICKCORE_PACKAGE_BUGREPORT
@@ -1310,7 +1320,9 @@
#endif
/* Define if you have RSVG library */
-/* #undef RSVG_DELEGATE */
+#ifndef MAGICKCORE_RSVG_DELEGATE
+#define MAGICKCORE_RSVG_DELEGATE 1
+#endif
/* Define to the type of arg 1 for `select'. */
#ifndef MAGICKCORE_SELECT_TYPE_ARG1
@@ -1447,7 +1459,9 @@
/* Define if you have WEBP library */
-/* #undef WEBP_DELEGATE */
+#ifndef MAGICKCORE_WEBP_DELEGATE
+#define MAGICKCORE_WEBP_DELEGATE 1
+#endif
/* Define to use the Windows GDI32 library */
/* #undef WINGDI32_DELEGATE */
@@ -1456,7 +1470,9 @@
/* #undef WITH_DMALLOC */
/* Define if you have WMF library */
-/* #undef WMF_DELEGATE */
+#ifndef MAGICKCORE_WMF_DELEGATE
+#define MAGICKCORE_WMF_DELEGATE 1
+#endif
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
significant byte first (like Motorola and SPARC, unlike Intel). */
diff --git a/MagickCore/pixel-accessor.h b/MagickCore/pixel-accessor.h
index 5d6e62c18..fee52f4d9 100644
--- a/MagickCore/pixel-accessor.h
+++ b/MagickCore/pixel-accessor.h
@@ -476,7 +476,7 @@ static inline void SetPixelChannel(const Image *image,
pixel[image->channel_map[image->map][channel].channel]=quantum;
}
-static inline void SetPixelChannelMapComponent(const Image *image,
+static inline void SetPixelChannelMapChannel(const Image *image,
const PixelChannel channel,const PixelChannel channels)
{
image->channel_map[image->map][channel].channel=channels;
diff --git a/MagickCore/pixel.c b/MagickCore/pixel.c
index 304a5dd6b..41d0c7d8f 100644
--- a/MagickCore/pixel.c
+++ b/MagickCore/pixel.c
@@ -3685,9 +3685,7 @@ MagickExport MagickBooleanType InterpolatePixelChannel(const Image *image,
status=MagickFalse;
break;
}
- if (((traits & BlendPixelTrait) == 0) ||
- (GetPixelAlphaTraits(image) == UndefinedPixelTrait) ||
- (image->matte == MagickFalse))
+ if ((traits & BlendPixelTrait) == 0)
for (i=0; i < 16; i++)
{
alpha[i]=1.0;
@@ -3723,9 +3721,7 @@ MagickExport MagickBooleanType InterpolatePixelChannel(const Image *image,
status=MagickFalse;
break;
}
- if (((traits & BlendPixelTrait) == 0) ||
- (GetPixelAlphaTraits(image) == UndefinedPixelTrait) ||
- (image->matte == MagickFalse))
+ if ((traits & BlendPixelTrait) == 0)
for (i=0; i < 16; i++)
{
alpha[i]=1.0;
@@ -3770,9 +3766,7 @@ MagickExport MagickBooleanType InterpolatePixelChannel(const Image *image,
status=MagickFalse;
break;
}
- if (((traits & BlendPixelTrait) == 0) ||
- (GetPixelAlphaTraits(image) == UndefinedPixelTrait) ||
- (image->matte == MagickFalse))
+ if ((traits & BlendPixelTrait) == 0)
for (i=0; i < 4; i++)
{
alpha[i]=1.0;
@@ -3868,9 +3862,7 @@ MagickExport MagickBooleanType InterpolatePixelChannel(const Image *image,
status=MagickFalse;
break;
}
- if (((traits & BlendPixelTrait) == 0) ||
- (GetPixelAlphaTraits(image) == UndefinedPixelTrait) ||
- (image->matte == MagickFalse))
+ if ((traits & BlendPixelTrait) == 0)
for (i=0; i < 4; i++)
{
alpha[i]=1.0;
@@ -3967,9 +3959,7 @@ MagickExport MagickBooleanType InterpolatePixelChannel(const Image *image,
status=MagickFalse;
break;
}
- if (((traits & BlendPixelTrait) == 0) ||
- (GetPixelAlphaTraits(image) == UndefinedPixelTrait) ||
- (image->matte == MagickFalse))
+ if ((traits & BlendPixelTrait) == 0)
for (i=0; i < 16; i++)
{
alpha[i]=1.0;
@@ -4976,40 +4966,42 @@ MagickExport void SetPixelChannelMap(Image *image,
*/
MagickExport void StandardPixelChannelMap(Image *image)
{
+ PixelChannel
+ alpha_channel;
+
register ssize_t
i;
- for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
+ for (i=0; i < (ssize_t) MaxPixelChannels; i++)
+ {
+ SetPixelChannelMapChannel(image,(PixelChannel) i,(PixelChannel) i);
SetPixelChannelMapTraits(image,(PixelChannel) i,UndefinedPixelTrait);
+ }
image->number_channels=4;
- SetPixelChannelMapComponent(image,RedPixelChannel,RedPixelChannel);
- SetPixelChannelMapTraits(image,RedPixelChannel,(PixelTrait)
- (UpdatePixelTrait | BlendPixelTrait));
- SetPixelChannelMapComponent(image,GreenPixelChannel,GreenPixelChannel);
- SetPixelChannelMapTraits(image,GreenPixelChannel,(PixelTrait)
- (UpdatePixelTrait | BlendPixelTrait));
- SetPixelChannelMapComponent(image,BluePixelChannel,BluePixelChannel);
- SetPixelChannelMapTraits(image,BluePixelChannel,(PixelTrait)
- (UpdatePixelTrait | BlendPixelTrait));
- SetPixelChannelMapComponent(image,AlphaPixelChannel,AlphaPixelChannel);
- SetPixelChannelMapTraits(image,AlphaPixelChannel,UpdatePixelTrait);
if (0 && image->colorspace == GRAYColorspace)
- {
- image->number_channels=2;
- SetPixelChannelMapComponent(image,GreenPixelChannel,RedPixelChannel);
- SetPixelChannelMapComponent(image,BluePixelChannel,RedPixelChannel);
- }
+ image->number_channels=2;
if (image->colorspace == CMYKColorspace)
+ image->number_channels++;
+ if (image->storage_class == PseudoClass)
+ image->number_channels++;
+ for (i=0; i < (ssize_t) image->number_channels; i++)
+ SetPixelChannelMapTraits(image,(PixelChannel) i,(PixelTrait)
+ UpdatePixelTrait);
+ alpha_channel=GetPixelChannelMapChannel(image,AlphaPixelChannel);
+ if (image->matte != MagickFalse)
+ for (i=0; i < (ssize_t) image->number_channels; i++)
+ if ((PixelChannel) i != alpha_channel)
+ SetPixelChannelMapTraits(image,(PixelChannel) i,(PixelTrait)
+ (UpdatePixelTrait | BlendPixelTrait));
+ if (0 && image->colorspace == GRAYColorspace)
{
- image->number_channels++;
- SetPixelChannelMapComponent(image,BlackPixelChannel,BlackPixelChannel);
- SetPixelChannelMapTraits(image,BlackPixelChannel,(PixelTrait)
- (UpdatePixelTrait | BlendPixelTrait));
+ image->number_channels=2;
+ SetPixelChannelMapChannel(image,GreenPixelChannel,RedPixelChannel);
+ SetPixelChannelMapChannel(image,BluePixelChannel,RedPixelChannel);
}
if (image->storage_class == PseudoClass)
{
- image->number_channels++;
- SetPixelChannelMapComponent(image,IndexPixelChannel,IndexPixelChannel);
+ SetPixelChannelMapChannel(image,IndexPixelChannel,IndexPixelChannel);
SetPixelChannelMapTraits(image,IndexPixelChannel,CopyPixelTrait);
}
image->number_channels+=image->number_meta_channels;
diff --git a/MagickCore/resize.c b/MagickCore/resize.c
index 9a40f70fa..969289c91 100644
--- a/MagickCore/resize.c
+++ b/MagickCore/resize.c
@@ -2254,9 +2254,7 @@ static MagickBooleanType HorizontalFilter(const ResizeFilter *resize_filter,
continue;
}
pixel=0.0;
- if (((resize_traits & BlendPixelTrait) == 0) ||
- (GetPixelAlphaTraits(image) == UndefinedPixelTrait) ||
- (image->matte == MagickFalse))
+ if ((resize_traits & BlendPixelTrait) == 0)
{
/*
No alpha blending.
@@ -2472,9 +2470,7 @@ static MagickBooleanType VerticalFilter(const ResizeFilter *resize_filter,
continue;
}
pixel=0.0;
- if (((resize_traits & BlendPixelTrait) == 0) ||
- (GetPixelAlphaTraits(image) == UndefinedPixelTrait) ||
- (image->matte == MagickFalse))
+ if ((resize_traits & BlendPixelTrait) == 0)
{
/*
No alpha blending.
@@ -2843,21 +2839,16 @@ MagickExport Image *ScaleImage(const Image *image,const size_t columns,
next_row,
proceed;
- MagickRealType
- alpha,
- gamma,
- pixel[MaxPixelChannels],
+ PixelInfo
+ pixel,
*scale_scanline,
*scanline,
*x_vector,
- *y_vector;
-
- PixelChannel
- channel;
+ *y_vector,
+ zero;
- PixelTrait
- scale_traits,
- traits;
+ MagickRealType
+ alpha;
PointInfo
scale,
@@ -2867,7 +2858,6 @@ MagickExport Image *ScaleImage(const Image *image,const size_t columns,
i;
ssize_t
- n,
number_rows,
y;
@@ -2896,20 +2886,20 @@ MagickExport Image *ScaleImage(const Image *image,const size_t columns,
/*
Allocate memory.
*/
- x_vector=(MagickRealType *) AcquireQuantumMemory((size_t) image->columns,
- GetPixelChannels(image)*sizeof(*x_vector));
+ x_vector=(PixelInfo *) AcquireQuantumMemory((size_t) image->columns,
+ sizeof(*x_vector));
scanline=x_vector;
if (image->rows != scale_image->rows)
- scanline=(MagickRealType *) AcquireQuantumMemory((size_t) image->columns,
- GetPixelChannels(image)*sizeof(*scanline));
- scale_scanline=(MagickRealType *) AcquireQuantumMemory((size_t)
- scale_image->columns,GetPixelChannels(image)*sizeof(*scale_scanline));
- y_vector=(MagickRealType *) AcquireQuantumMemory((size_t) image->columns,
- GetPixelChannels(image)*sizeof(*y_vector));
- if ((scanline == (MagickRealType *) NULL) ||
- (scale_scanline == (MagickRealType *) NULL) ||
- (x_vector == (MagickRealType *) NULL) ||
- (y_vector == (MagickRealType *) NULL))
+ scanline=(PixelInfo *) AcquireQuantumMemory((size_t) image->columns,
+ sizeof(*scanline));
+ scale_scanline=(PixelInfo *) AcquireQuantumMemory((size_t)
+ scale_image->columns,sizeof(*scale_scanline));
+ y_vector=(PixelInfo *) AcquireQuantumMemory((size_t) image->columns,
+ sizeof(*y_vector));
+ if ((scanline == (PixelInfo *) NULL) ||
+ (scale_scanline == (PixelInfo *) NULL) ||
+ (x_vector == (PixelInfo *) NULL) ||
+ (y_vector == (PixelInfo *) NULL))
{
scale_image=DestroyImage(scale_image);
ThrowImageException(ResourceLimitError,"MemoryAllocationFailed");
@@ -2923,7 +2913,9 @@ MagickExport Image *ScaleImage(const Image *image,const size_t columns,
scale.y=(double) scale_image->rows/(double) image->rows;
(void) ResetMagickMemory(y_vector,0,(size_t) image->columns*
sizeof(*y_vector));
- n=0;
+ GetPixelInfo(image,&pixel);
+ (void) ResetMagickMemory(&zero,0,sizeof(zero));
+ i=0;
image_view=AcquireCacheView(image);
scale_view=AcquireCacheView(scale_image);
for (y=0; y < (ssize_t) scale_image->rows; y++)
@@ -2931,7 +2923,7 @@ MagickExport Image *ScaleImage(const Image *image,const size_t columns,
register const Quantum
*restrict p;
- register MagickRealType
+ register PixelInfo
*restrict s,
*restrict t;
@@ -2945,30 +2937,27 @@ MagickExport Image *ScaleImage(const Image *image,const size_t columns,
exception);
if (q == (const Quantum *) NULL)
break;
+ alpha=1.0;
if (scale_image->rows == image->rows)
{
/*
Read a new scanline.
*/
- p=GetCacheViewVirtualPixels(image_view,0,n++,image->columns,1,
+ p=GetCacheViewVirtualPixels(image_view,0,i++,image->columns,1,
exception);
if (p == (const Quantum *) NULL)
break;
for (x=0; x < (ssize_t) image->columns; x++)
{
- alpha=QuantumScale*GetPixelAlpha(image,p);
- for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
- {
- traits=GetPixelChannelMapTraits(image,(PixelChannel) i);
- if (((traits & BlendPixelTrait) == 0) ||
- (GetPixelAlphaTraits(image) == UndefinedPixelTrait) ||
- (image->matte == MagickFalse))
- {
- x_vector[x*GetPixelChannels(image)+i]=(MagickRealType) p[i];
- continue;
- }
- x_vector[x*GetPixelChannels(image)+i]=alpha*p[i];
- }
+ if (image->matte != MagickFalse)
+ alpha=QuantumScale*GetPixelAlpha(image,p);
+ x_vector[x].red=(MagickRealType) (alpha*GetPixelRed(image,p));
+ x_vector[x].green=(MagickRealType) (alpha*GetPixelGreen(image,p));
+ x_vector[x].blue=(MagickRealType) (alpha*GetPixelBlue(image,p));
+ if (image->matte != MagickFalse)
+ x_vector[x].alpha=(MagickRealType) GetPixelAlpha(image,p);
+ if (image->colorspace == CMYKColorspace)
+ x_vector[x].black=(MagickRealType) (alpha*GetPixelBlack(image,p));
p+=GetPixelChannels(image);
}
}
@@ -2985,34 +2974,41 @@ MagickExport Image *ScaleImage(const Image *image,const size_t columns,
/*
Read a new scanline.
*/
- p=GetCacheViewVirtualPixels(image_view,0,n++,image->columns,1,
+ p=GetCacheViewVirtualPixels(image_view,0,i++,image->columns,1,
exception);
if (p == (const Quantum *) NULL)
break;
for (x=0; x < (ssize_t) image->columns; x++)
{
- alpha=QuantumScale*GetPixelAlpha(image,p);
- for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
- {
- traits=GetPixelChannelMapTraits(image,(PixelChannel) i);
- if (((traits & BlendPixelTrait) == 0) ||
- (GetPixelAlphaTraits(image) == UndefinedPixelTrait) ||
- (image->matte == MagickFalse))
- {
- x_vector[x*GetPixelChannels(image)+i]=(MagickRealType)
- p[i];
- continue;
- }
- x_vector[x*GetPixelChannels(image)+i]=alpha*p[i];
- }
+ if (image->matte != MagickFalse)
+ alpha=QuantumScale*
+ GetPixelAlpha(image,p);
+ x_vector[x].red=(MagickRealType) (alpha*
+ GetPixelRed(image,p));
+ x_vector[x].green=(MagickRealType) (alpha*
+ GetPixelGreen(image,p));
+ x_vector[x].blue=(MagickRealType) (alpha*
+ GetPixelBlue(image,p));
+ if (image->colorspace == CMYKColorspace)
+ x_vector[x].black=(MagickRealType) (alpha*
+ GetPixelBlack(image,p));
+ if (image->matte != MagickFalse)
+ x_vector[x].alpha=(MagickRealType)
+ GetPixelAlpha(image,p);
p+=GetPixelChannels(image);
}
number_rows++;
}
for (x=0; x < (ssize_t) image->columns; x++)
- for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
- y_vector[x*GetPixelChannels(image)+i]+=scale.y*
- x_vector[x*GetPixelChannels(image)+i];
+ {
+ y_vector[x].red+=scale.y*x_vector[x].red;
+ y_vector[x].green+=scale.y*x_vector[x].green;
+ y_vector[x].blue+=scale.y*x_vector[x].blue;
+ if (scale_image->colorspace == CMYKColorspace)
+ y_vector[x].black+=scale.y*x_vector[x].black;
+ if (scale_image->matte != MagickFalse)
+ y_vector[x].alpha+=scale.y*x_vector[x].alpha;
+ }
span.y-=scale.y;
scale.y=(double) scale_image->rows/(double) image->rows;
next_row=MagickTrue;
@@ -3022,25 +3018,22 @@ MagickExport Image *ScaleImage(const Image *image,const size_t columns,
/*
Read a new scanline.
*/
- p=GetCacheViewVirtualPixels(image_view,0,n++,image->columns,1,
+ p=GetCacheViewVirtualPixels(image_view,0,i++,image->columns,1,
exception);
if (p == (const Quantum *) NULL)
break;
for (x=0; x < (ssize_t) image->columns; x++)
{
- alpha=QuantumScale*GetPixelAlpha(image,p);
- for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
- {
- traits=GetPixelChannelMapTraits(image,(PixelChannel) i);
- if (((traits & BlendPixelTrait) == 0) ||
- (GetPixelAlphaTraits(image) == UndefinedPixelTrait) ||
- (image->matte == MagickFalse))
- {
- x_vector[x*GetPixelChannels(image)+i]=(MagickRealType) p[i];
- continue;
- }
- x_vector[x*GetPixelChannels(image)+i]=alpha*p[i];
- }
+ if (image->matte != MagickFalse)
+ alpha=QuantumScale*GetPixelAlpha(image,p);
+ x_vector[x].red=(MagickRealType) (alpha*GetPixelRed(image,p));
+ x_vector[x].green=(MagickRealType) (alpha*GetPixelGreen(image,p));
+ x_vector[x].blue=(MagickRealType) (alpha*GetPixelBlue(image,p));
+ if (image->colorspace == CMYKColorspace)
+ x_vector[x].black=(MagickRealType) (alpha*
+ GetPixelBlack(image,p));
+ if (image->matte != MagickFalse)
+ x_vector[x].alpha=(MagickRealType) GetPixelAlpha(image,p);
p+=GetPixelChannels(image);
}
number_rows++;
@@ -3049,14 +3042,22 @@ MagickExport Image *ScaleImage(const Image *image,const size_t columns,
s=scanline;
for (x=0; x < (ssize_t) image->columns; x++)
{
- for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
- {
- pixel[i]=y_vector[x*GetPixelChannels(image)+i]+span.y*
- x_vector[x*GetPixelChannels(image)+i];
- y_vector[x*GetPixelChannels(image)+i]=0.0;
- s[i]=pixel[i];
- }
- s+=GetPixelChannels(image);
+ pixel.red=y_vector[x].red+span.y*x_vector[x].red;
+ pixel.green=y_vector[x].green+span.y*x_vector[x].green;
+ pixel.blue=y_vector[x].blue+span.y*x_vector[x].blue;
+ if (image->colorspace == CMYKColorspace)
+ pixel.black=y_vector[x].black+span.y*x_vector[x].black;
+ if (image->matte != MagickFalse)
+ pixel.alpha=y_vector[x].alpha+span.y*x_vector[x].alpha;
+ s->red=pixel.red;
+ s->green=pixel.green;
+ s->blue=pixel.blue;
+ if (scale_image->colorspace == CMYKColorspace)
+ s->black=pixel.black;
+ if (scale_image->matte != MagickFalse)
+ s->alpha=pixel.alpha;
+ s++;
+ y_vector[x]=zero;
}
scale.y-=span.y;
if (scale.y <= 0)
@@ -3074,27 +3075,18 @@ MagickExport Image *ScaleImage(const Image *image,const size_t columns,
s=scanline;
for (x=0; x < (ssize_t) scale_image->columns; x++)
{
- channel=GetPixelChannelMapChannel(scale_image,AlphaPixelChannel);
- alpha=QuantumScale*s[channel];
- gamma=1.0/(fabs((double) alpha) <= MagickEpsilon ? 1.0 : alpha);
- for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
- {
- traits=GetPixelChannelMapTraits(image,(PixelChannel) i);
- if (traits == UndefinedPixelTrait)
- continue;
- channel=GetPixelChannelMapChannel(image,(PixelChannel) i);
- scale_traits=GetPixelChannelMapTraits(scale_image,channel);
- if (scale_traits == UndefinedPixelTrait)
- continue;
- if (((scale_traits & BlendPixelTrait) == 0) ||
- (GetPixelAlphaTraits(scale_image) == UndefinedPixelTrait) ||
- (scale_image->matte == MagickFalse))
- q[channel]=ClampToQuantum(s[i]);
- else
- q[channel]=ClampToQuantum(gamma*s[i]);
- }
+ if (scale_image->matte != MagickFalse)
+ alpha=QuantumScale*s->alpha;
+ alpha=1.0/(fabs(alpha) <= MagickEpsilon ? 1.0 : alpha);
+ SetPixelRed(scale_image,ClampToQuantum(alpha*s->red),q);
+ SetPixelGreen(scale_image,ClampToQuantum(alpha*s->green),q);
+ SetPixelBlue(scale_image,ClampToQuantum(alpha*s->blue),q);
+ if (scale_image->colorspace == CMYKColorspace)
+ SetPixelBlack(scale_image,ClampToQuantum(alpha*s->black),q);
+ if (scale_image->matte != MagickFalse)
+ SetPixelAlpha(scale_image,ClampToQuantum(s->alpha),q);
q+=GetPixelChannels(scale_image);
- s+=GetPixelChannels(image);
+ s++;
}
}
else
@@ -3102,8 +3094,7 @@ MagickExport Image *ScaleImage(const Image *image,const size_t columns,
/*
Scale X direction.
*/
- for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
- pixel[i]=0.0;
+ pixel=zero;
next_column=MagickFalse;
span.x=1.0;
s=scanline;
@@ -3115,15 +3106,23 @@ MagickExport Image *ScaleImage(const Image *image,const size_t columns,
{
if (next_column != MagickFalse)
{
- for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
- pixel[i]=0.0;
- t+=GetPixelChannels(scale_image);
+ pixel=zero;
+ t++;
}
- for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
- {
- pixel[i]+=span.x*s[i];
- t[i]=pixel[i];
- }
+ pixel.red+=span.x*s->red;
+ pixel.green+=span.x*s->green;
+ pixel.blue+=span.x*s->blue;
+ if (scale_image->colorspace == CMYKColorspace)
+ pixel.black+=span.x*s->black;
+ if (image->matte != MagickFalse)
+ pixel.alpha+=span.x*s->alpha;
+ t->red=pixel.red;
+ t->green=pixel.green;
+ t->blue=pixel.blue;
+ if (scale_image->colorspace == CMYKColorspace)
+ t->black=pixel.black;
+ if (scale_image->matte != MagickFalse)
+ t->alpha=pixel.alpha;
scale.x-=span.x;
span.x=1.0;
next_column=MagickTrue;
@@ -3132,28 +3131,42 @@ MagickExport Image *ScaleImage(const Image *image,const size_t columns,
{
if (next_column != MagickFalse)
{
- for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
- pixel[i]=0.0;
+ pixel=zero;
next_column=MagickFalse;
- t+=GetPixelChannels(scale_image);
+ t++;
}
- for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
- pixel[i]+=scale.x*s[i];
+ pixel.red+=scale.x*s->red;
+ pixel.green+=scale.x*s->green;
+ pixel.blue+=scale.x*s->blue;
+ if (scale_image->colorspace == CMYKColorspace)
+ pixel.black+=scale.x*s->black;
+ if (scale_image->matte != MagickFalse)
+ pixel.alpha+=scale.x*s->alpha;
span.x-=scale.x;
}
- s+=GetPixelChannels(image);
+ s++;
}
if (span.x > 0)
{
- s-=GetPixelChannels(image);
- for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
- pixel[i]+=span.x*s[i];
+ s--;
+ pixel.red+=span.x*s->red;
+ pixel.green+=span.x*s->green;
+ pixel.blue+=span.x*s->blue;
+ if (scale_image->colorspace == CMYKColorspace)
+ pixel.black+=span.x*s->black;
+ if (scale_image->matte != MagickFalse)
+ pixel.alpha+=span.x*s->alpha;
}
if ((next_column == MagickFalse) &&
((ssize_t) (t-scale_scanline) < (ssize_t) scale_image->columns))
{
- for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
- t[i]=pixel[i];
+ t->red=pixel.red;
+ t->green=pixel.green;
+ t->blue=pixel.blue;
+ if (scale_image->colorspace == CMYKColorspace)
+ t->black=pixel.black;
+ if (scale_image->matte != MagickFalse)
+ t->alpha=pixel.alpha;
}
/*
Transfer scanline to scaled image.
@@ -3161,27 +3174,18 @@ MagickExport Image *ScaleImage(const Image *image,const size_t columns,
t=scale_scanline;
for (x=0; x < (ssize_t) scale_image->columns; x++)
{
- channel=GetPixelChannelMapChannel(scale_image,AlphaPixelChannel);
- alpha=QuantumScale*t[channel];
- gamma=1.0/(fabs((double) alpha) <= MagickEpsilon ? 1.0 : alpha);
- for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
- {
- traits=GetPixelChannelMapTraits(image,(PixelChannel) i);
- if (traits == UndefinedPixelTrait)
- continue;
- channel=GetPixelChannelMapChannel(image,(PixelChannel) i);
- scale_traits=GetPixelChannelMapTraits(scale_image,channel);
- if (scale_traits == UndefinedPixelTrait)
- continue;
- if (((scale_traits & BlendPixelTrait) == 0) ||
- (GetPixelAlphaTraits(scale_image) == UndefinedPixelTrait) ||
- (scale_image->matte == MagickFalse))
- q[channel]=ClampToQuantum(t[i]);
- else
- q[channel]=ClampToQuantum(gamma*t[i]);
- }
+ if (scale_image->matte != MagickFalse)
+ alpha=QuantumScale*s->alpha;
+ alpha=1.0/(fabs(alpha) <= MagickEpsilon ? 1.0 : alpha);
+ SetPixelRed(scale_image,ClampToQuantum(alpha*t->red),q);
+ SetPixelGreen(scale_image,ClampToQuantum(alpha*t->green),q);
+ SetPixelBlue(scale_image,ClampToQuantum(alpha*t->blue),q);
+ if (scale_image->colorspace == CMYKColorspace)
+ SetPixelBlack(scale_image,ClampToQuantum(alpha*t->black),q);
+ if (scale_image->matte != MagickFalse)
+ SetPixelAlpha(scale_image,ClampToQuantum(t->alpha),q);
+ t++;
q+=GetPixelChannels(scale_image);
- t+=GetPixelChannels(scale_image);
}
}
if (SyncCacheViewAuthenticPixels(scale_view,exception) == MagickFalse)
@@ -3196,11 +3200,11 @@ MagickExport Image *ScaleImage(const Image *image,const size_t columns,
/*
Free allocated memory.
*/
- y_vector=(MagickRealType *) RelinquishMagickMemory(y_vector);
- scale_scanline=(MagickRealType *) RelinquishMagickMemory(scale_scanline);
+ y_vector=(PixelInfo *) RelinquishMagickMemory(y_vector);
+ scale_scanline=(PixelInfo *) RelinquishMagickMemory(scale_scanline);
if (scale_image->rows != image->rows)
- scanline=(MagickRealType *) RelinquishMagickMemory(scanline);
- x_vector=(MagickRealType *) RelinquishMagickMemory(x_vector);
+ scanline=(PixelInfo *) RelinquishMagickMemory(scanline);
+ x_vector=(PixelInfo *) RelinquishMagickMemory(x_vector);
scale_image->type=image->type;
return(scale_image);
}
diff --git a/MagickCore/version.h b/MagickCore/version.h
index ce1137774..4a7eec6a0 100644
--- a/MagickCore/version.h
+++ b/MagickCore/version.h
@@ -27,14 +27,14 @@ extern "C" {
*/
#define MagickPackageName "ImageMagick"
#define MagickCopyright "Copyright (C) 1999-2011 ImageMagick Studio LLC"
-#define MagickSVNRevision "4861"
+#define MagickSVNRevision "exported"
#define MagickLibVersion 0x700
#define MagickLibVersionText "7.0.0"
#define MagickLibVersionNumber 5,0,0
#define MagickLibAddendum "-0"
#define MagickLibInterface 5
#define MagickLibMinInterface 5
-#define MagickReleaseDate "2011-08-02"
+#define MagickReleaseDate "2011-08-03"
#define MagickChangeDate "20110801"
#define MagickAuthoritativeURL "http://www.imagemagick.org"
#if defined(MAGICKCORE_OPENMP_SUPPORT)
diff --git a/index.html b/index.html
index 08f77b78d..f00fca87a 100644
--- a/index.html
+++ b/index.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
@@ -225,7 +225,7 @@
The ImageMagick development process ensures a stable API and ABI. Before each ImageMagick release, we perform a comprehensive security assessment that includes memory and thread error detection to prevent security vulnerabilities.
-The current release is ImageMagick 6.7.1-1.
+The current release is ImageMagick 6.7.1-2.
diff --git a/www/advanced-unix-installation.html b/www/advanced-unix-installation.html
index 1790b0ca1..c16f8d6e2 100644
--- a/www/advanced-unix-installation.html
+++ b/www/advanced-unix-installation.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
@@ -237,7 +237,7 @@
The configure script looks at your environment and decides what it can cobble together to get ImageMagick compiled and installed on your system. This includes finding a compiler, where your compiler header files are located (e.g. stdlib.h), and if any delegate libraries are available for ImageMagick to use (e.g. JPEG, PNG, TIFF, etc.). If you are willing to accept configure's default options, and build from within the source directory, you can simply type:
- $magick> cd ImageMagick-6.7.1-1 $magick> ./configure
+ $magick> cd ImageMagick-6.7.1-2 $magick> ./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:
@@ -589,7 +589,7 @@ Options used to compile and link:
Download the ImageMagick source distribution and verify the distribution against its message digest.
Unpack and change into the top-level ImageMagick directory:
-
$magick> tar xvfz ImageMagick-6.7.1-1.tar.gz $magick> cd ImageMagick-6.7.1-1
Configure ImageMagick:
+
$magick> tar xvfz ImageMagick-6.7.1-2.tar.gz $magick> cd ImageMagick-6.7.1-2
Configure ImageMagick:
$magick> ./configure --prefix=/opt --with-quantum-depth=16 \
--disable-dependency-tracking --with-x=yes \
--x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib/ \
@@ -609,7 +609,7 @@ Options used to compile and link:
Although you can download and install delegate libraries yourself, many are already available in the GnuWin32 distribution. Download and install whichever delegate libraries you require such as JPEG, PNG, TIFF, etc. Make sure you specify the development headers when you install a package. Next type,
- $magick> tar jxvf ImageMagick-6.7.1-?.tar.bz2 $magick> cd ImageMagick-6.7.1-1 $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
+ $magick> tar jxvf ImageMagick-6.7.1-?.tar.bz2 $magick> cd ImageMagick-6.7.1-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
Dealing with Unexpected Problems
diff --git a/www/advanced-windows-installation.html b/www/advanced-windows-installation.html
index 5d1163d7d..6f87ffdb9 100644
--- a/www/advanced-windows-installation.html
+++ b/www/advanced-windows-installation.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
@@ -489,7 +489,7 @@
- Double-click on
- VisualMagick/bin/ImageMagick-6.7.1-1-Q16-windows-dll.exe
+ VisualMagick/bin/ImageMagick-6.7.1-2-Q16-windows-dll.exe
to launch the ImageMagick binary distribution.
- Complete the installer screens to install ImageMagick on your system.
diff --git a/www/animate.html b/www/animate.html
index 014883ea7..b66cf4004 100644
--- a/www/animate.html
+++ b/www/animate.html
@@ -201,7 +201,7 @@
Web Hosting Ratings
diff --git a/www/api/animate.html b/www/api/animate.html
index 8caff8d99..dfcae668a 100644
--- a/www/api/animate.html
+++ b/www/api/animate.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/annotate.html b/www/api/annotate.html
index 2efa18b64..3374dcc1d 100644
--- a/www/api/annotate.html
+++ b/www/api/annotate.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/attribute.html b/www/api/attribute.html
index 6cf3ff532..32e130fb0 100644
--- a/www/api/attribute.html
+++ b/www/api/attribute.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/blob.html b/www/api/blob.html
index dd6c5fa03..3d9c9650d 100644
--- a/www/api/blob.html
+++ b/www/api/blob.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/cache-view.html b/www/api/cache-view.html
index c4e94ae39..f05aec268 100644
--- a/www/api/cache-view.html
+++ b/www/api/cache-view.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/cache.html b/www/api/cache.html
index d8b9eed34..7b54570fa 100644
--- a/www/api/cache.html
+++ b/www/api/cache.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/color.html b/www/api/color.html
index e0b7016c9..9352f019c 100644
--- a/www/api/color.html
+++ b/www/api/color.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/colormap.html b/www/api/colormap.html
index e2bf12fd6..433a5c352 100644
--- a/www/api/colormap.html
+++ b/www/api/colormap.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/compare.html b/www/api/compare.html
index ae3cee551..8cf5d19ca 100644
--- a/www/api/compare.html
+++ b/www/api/compare.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/composite.html b/www/api/composite.html
index 1e7f3bfd5..9d1b06d5c 100644
--- a/www/api/composite.html
+++ b/www/api/composite.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/constitute.html b/www/api/constitute.html
index cf075d605..0aef579a5 100644
--- a/www/api/constitute.html
+++ b/www/api/constitute.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/decorate.html b/www/api/decorate.html
index 5ea69b9f0..07911223c 100644
--- a/www/api/decorate.html
+++ b/www/api/decorate.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/deprecate.html b/www/api/deprecate.html
index e1afa5436..f8c20c41e 100644
--- a/www/api/deprecate.html
+++ b/www/api/deprecate.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/display.html b/www/api/display.html
index 862b87904..5ed6b2264 100644
--- a/www/api/display.html
+++ b/www/api/display.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/distort.html b/www/api/distort.html
index b1782d5c6..736be4c18 100644
--- a/www/api/distort.html
+++ b/www/api/distort.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/draw.html b/www/api/draw.html
index 73d509303..20a26c7fb 100644
--- a/www/api/draw.html
+++ b/www/api/draw.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/drawing-wand.html b/www/api/drawing-wand.html
index 60efa481b..414f7a7f7 100644
--- a/www/api/drawing-wand.html
+++ b/www/api/drawing-wand.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/effect.html b/www/api/effect.html
index f59a7df10..67cee14ed 100644
--- a/www/api/effect.html
+++ b/www/api/effect.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/exception.html b/www/api/exception.html
index eb6bdd6e1..09c74786c 100644
--- a/www/api/exception.html
+++ b/www/api/exception.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/fourier.html b/www/api/fourier.html
index 86bc6226c..0eb31d203 100644
--- a/www/api/fourier.html
+++ b/www/api/fourier.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/fx.html b/www/api/fx.html
index c57ba44ee..41ba876b1 100644
--- a/www/api/fx.html
+++ b/www/api/fx.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/histogram.html b/www/api/histogram.html
index 4e1dbdf63..9cfd26dad 100644
--- a/www/api/histogram.html
+++ b/www/api/histogram.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/image-view.html b/www/api/image-view.html
index 2a0d1a15e..cd334cfd0 100644
--- a/www/api/image-view.html
+++ b/www/api/image-view.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/image.html b/www/api/image.html
index d72ff8606..2b6c93b62 100644
--- a/www/api/image.html
+++ b/www/api/image.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/layer.html b/www/api/layer.html
index d39257da6..6dc078bd0 100644
--- a/www/api/layer.html
+++ b/www/api/layer.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/list.html b/www/api/list.html
index 293ae205b..ff40c1bbf 100644
--- a/www/api/list.html
+++ b/www/api/list.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/magick-deprecate.html b/www/api/magick-deprecate.html
index 4f4cd2ea0..9d3438fc3 100644
--- a/www/api/magick-deprecate.html
+++ b/www/api/magick-deprecate.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/magick-image.html b/www/api/magick-image.html
index 0b5a7d6eb..b8e30bb75 100644
--- a/www/api/magick-image.html
+++ b/www/api/magick-image.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/magick-property.html b/www/api/magick-property.html
index aa4268095..dec90a237 100644
--- a/www/api/magick-property.html
+++ b/www/api/magick-property.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/magick-wand.html b/www/api/magick-wand.html
index 4f8cddd8c..37316dbf2 100644
--- a/www/api/magick-wand.html
+++ b/www/api/magick-wand.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/memory.html b/www/api/memory.html
index c811553b5..582efac26 100644
--- a/www/api/memory.html
+++ b/www/api/memory.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/module.html b/www/api/module.html
index b8b09ff2a..e1e13865a 100644
--- a/www/api/module.html
+++ b/www/api/module.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/mogrify.html b/www/api/mogrify.html
index 4ecfb3221..c5ab4023e 100644
--- a/www/api/mogrify.html
+++ b/www/api/mogrify.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/monitor.html b/www/api/monitor.html
index 006455012..341ff21eb 100644
--- a/www/api/monitor.html
+++ b/www/api/monitor.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/montage.html b/www/api/montage.html
index a90fbd5e8..9b19c5907 100644
--- a/www/api/montage.html
+++ b/www/api/montage.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/morphology.html b/www/api/morphology.html
index 1bc58d11a..6d8da52c5 100644
--- a/www/api/morphology.html
+++ b/www/api/morphology.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/paint.html b/www/api/paint.html
index 05a049cbd..ccb132554 100644
--- a/www/api/paint.html
+++ b/www/api/paint.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/pixel-iterator.html b/www/api/pixel-iterator.html
index b723580bf..ff8ad2cf0 100644
--- a/www/api/pixel-iterator.html
+++ b/www/api/pixel-iterator.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/pixel-wand.html b/www/api/pixel-wand.html
index 4d506d688..9b95a513f 100644
--- a/www/api/pixel-wand.html
+++ b/www/api/pixel-wand.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/profile.html b/www/api/profile.html
index ab95c59e9..5986765e2 100644
--- a/www/api/profile.html
+++ b/www/api/profile.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/quantize.html b/www/api/quantize.html
index 649fef079..d6f9ece7f 100644
--- a/www/api/quantize.html
+++ b/www/api/quantize.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/registry.html b/www/api/registry.html
index 7ed63e620..860e4a400 100644
--- a/www/api/registry.html
+++ b/www/api/registry.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/resize.html b/www/api/resize.html
index 33e7b7fad..335416540 100644
--- a/www/api/resize.html
+++ b/www/api/resize.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/resource.html b/www/api/resource.html
index 68d1ed9ff..dac1833f3 100644
--- a/www/api/resource.html
+++ b/www/api/resource.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/segment.html b/www/api/segment.html
index 17699ca92..1c6b7330e 100644
--- a/www/api/segment.html
+++ b/www/api/segment.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/shear.html b/www/api/shear.html
index 7bd6a43bb..3c50595d5 100644
--- a/www/api/shear.html
+++ b/www/api/shear.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/signature.html b/www/api/signature.html
index 5b861bf7b..3b2913c58 100644
--- a/www/api/signature.html
+++ b/www/api/signature.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/statistic.html b/www/api/statistic.html
index 4ed2412f5..04b8f8e39 100644
--- a/www/api/statistic.html
+++ b/www/api/statistic.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/stream.html b/www/api/stream.html
index 5ecd80a1c..09a8fb330 100644
--- a/www/api/stream.html
+++ b/www/api/stream.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/transform.html b/www/api/transform.html
index df16220d3..c16a77b94 100644
--- a/www/api/transform.html
+++ b/www/api/transform.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/version.html b/www/api/version.html
index 683871440..25bc21b35 100644
--- a/www/api/version.html
+++ b/www/api/version.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/api/wand-view.html b/www/api/wand-view.html
index d47cc29db..907678596 100644
--- a/www/api/wand-view.html
+++ b/www/api/wand-view.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/architecture.html b/www/architecture.html
index f3755021b..0c6baa7b4 100644
--- a/www/architecture.html
+++ b/www/architecture.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
@@ -304,7 +304,7 @@
When the pixel cache is initialized, pixels are scaled from whatever bit depth they originated from to that required by the pixel cache. For example, a 1-channel 1-bit monochrome PBM image is scaled to a 4 channel 8-bit RGBA image, if you are using the Q8 version of ImageMagick, and 16-bit RGBA for the Q16 version. You can determine which version you have with the ‑version option:
- $magick> identify -versionVersion: ImageMagick 6.7.1-1 2011-07-01 Q16 http://www.imagemagick.org
+ $magick> identify -versionVersion: ImageMagick 6.7.1-2 2011-07-01 Q16 http://www.imagemagick.org
As you can see, the convenience of the pixel cache sometimes comes with a trade-off in storage (e.g. storing a 1-bit monochrome image as 16-bit RGBA is wasteful) and speed (i.e. storing the entire image in memory is generally slower than accessing one scanline of pixels at a time). In most cases, the benefits of the pixel cache typically outweigh any disadvantages.
diff --git a/www/binary-releases.html b/www/binary-releases.html
index 8ab32bc1a..3fa791fd8 100644
--- a/www/binary-releases.html
+++ b/www/binary-releases.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
@@ -235,16 +235,16 @@
- ImageMagick-6.7.1-1.i386.rpm |
- download |
- download |
+ ImageMagick-6.7.1-2.i386.rpm |
+ download |
+ download |
CentOS 5.4 i386 RPM |
- ImageMagick-6.7.1-1.x86_64.rpm |
- download |
- download |
+ ImageMagick-6.7.1-2.x86_64.rpm |
+ download |
+ download |
CentOS 5.4 x86_64 RPM |
@@ -281,7 +281,7 @@
ImageMagick RPM's are self-installing. Simply type the following command and you're ready to start using ImageMagick:
- $magick> rpm -Uvh ImageMagick-6.7.1-1.i386.rpm
+ $magick> rpm -Uvh ImageMagick-6.7.1-2.i386.rpm
For other systems, create (or choose) a directory to install the package into and change to that directory, for example:
$magick> cd $HOME
@@ -381,7 +381,7 @@
./imagemagick_compile.sh VERSION
-where VERSION is the version of ImageMagick you want to compile (i.e.: 6.7.1-1, svn, ...)
+where VERSION is the version of ImageMagick you want to compile (i.e.: 6.7.1-2, svn, ...)
This script compiles ImageMagick as a static library to be included in iOS projects and adds support for
@@ -420,7 +420,7 @@
The amount of memory can be an important factor, especially if you intend to work on large images. A minimum of 512 MB of RAM is recommended, but the more RAM the better. Although ImageMagick runs well on a single core computer, it automagically runs in parallel on multi-core systems reducing run times considerably.
The Windows version of ImageMagick is self-installing. Simply click on the appropriate version below and it will launch itself and ask you a few installation questions. Versions with Q8 in the name are 8 bits-per-pixel component (e.g. 8-bit red, 8-bit green, etc.), whereas, Q16 in the filename are 16 bits-per-pixel component. A Q16 version permits you to read or write 16-bit images without losing precision but requires twice as much resources as the Q8 version. Versions with dll in the filename include ImageMagick libraries as dynamic link libraries. If you are not sure which version is appropriate, choose
-ImageMagick-6.7.1-1-Q16-windows-dll.exe.
+ImageMagick-6.7.1-2-Q16-windows-dll.exe.
@@ -432,44 +432,44 @@
- ImageMagick-6.7.1-1-Q16-windows-dll.exe |
- download |
- download |
+ ImageMagick-6.7.1-2-Q16-windows-dll.exe |
+ download |
+ download |
Win32 dynamic at 16 bits-per-pixel |
- ImageMagick-6.7.1-1-Q16-windows-static.exe |
- download |
- download |
+ ImageMagick-6.7.1-2-Q16-windows-static.exe |
+ download |
+ download |
Win32 static at 16 bits-per-pixel |
- ImageMagick-6.7.1-1-Q8-windows-dll.exe |
- download |
- download |
+ ImageMagick-6.7.1-2-Q8-windows-dll.exe |
+ download |
+ download |
Win32 dynamic at 8 bits-per-pixel |
- ImageMagick-6.7.1-1-Q8-windows-static.exe |
- download |
- download |
+ ImageMagick-6.7.1-2-Q8-windows-static.exe |
+ download |
+ download |
Win32 static at 8 bits-per-pixel |
- ImageMagick-6.7.1-1-Q16-windows-x64-dll.exe |
- download |
- download |
+ ImageMagick-6.7.1-2-Q16-windows-x64-dll.exe |
+ download |
+ download |
Win64 dynamic at 16 bits-per-pixel |
- ImageMagick-6.7.1-1-Q16-windows-x64-static.exe |
- download |
- download |
+ ImageMagick-6.7.1-2-Q16-windows-x64-static.exe |
+ download |
+ download |
Win64 static at 16 bits-per-pixel |
diff --git a/www/changelog.html b/www/changelog.html
index 5d772c6e5..12aec789b 100644
--- a/www/changelog.html
+++ b/www/changelog.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/cipher.html b/www/cipher.html
index 3c3c04367..9ff360f47 100644
--- a/www/cipher.html
+++ b/www/cipher.html
@@ -201,7 +201,7 @@
Web Hosting Ratings
diff --git a/www/color.html b/www/color.html
index d9b878db9..ce3687323 100644
--- a/www/color.html
+++ b/www/color.html
@@ -201,7 +201,7 @@
Web Hosting Ratings
diff --git a/www/command-line-processing.html b/www/command-line-processing.html
index 151875cb3..14ec0c382 100644
--- a/www/command-line-processing.html
+++ b/www/command-line-processing.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/command-line-tools.html b/www/command-line-tools.html
index 34c29ab2e..dafd8fd20 100644
--- a/www/command-line-tools.html
+++ b/www/command-line-tools.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/compare.html b/www/compare.html
index e470eea42..59b913631 100644
--- a/www/compare.html
+++ b/www/compare.html
@@ -201,7 +201,7 @@
Web Hosting Ratings
diff --git a/www/compose.html b/www/compose.html
index 4103d097d..5862ca7b8 100644
--- a/www/compose.html
+++ b/www/compose.html
@@ -201,7 +201,7 @@
Web Hosting Ratings
diff --git a/www/composite.html b/www/composite.html
index 94eb7034d..a35ebad61 100644
--- a/www/composite.html
+++ b/www/composite.html
@@ -201,7 +201,7 @@
Web Hosting Ratings
diff --git a/www/conjure.html b/www/conjure.html
index 182bf9ca4..c5cc96e1e 100644
--- a/www/conjure.html
+++ b/www/conjure.html
@@ -201,7 +201,7 @@
Web Hosting Ratings
diff --git a/www/contact.html b/www/contact.html
index c0d4c2fcd..8fd636184 100644
--- a/www/contact.html
+++ b/www/contact.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/convert.html b/www/convert.html
index 70e1a152e..a54049f30 100644
--- a/www/convert.html
+++ b/www/convert.html
@@ -201,7 +201,7 @@
Web Hosting Ratings
diff --git a/www/display.html b/www/display.html
index 3e59aeafe..c02943221 100644
--- a/www/display.html
+++ b/www/display.html
@@ -201,7 +201,7 @@
Web Hosting Ratings
diff --git a/www/download.html b/www/download.html
index 35971f212..083b17bc1 100644
--- a/www/download.html
+++ b/www/download.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
@@ -215,7 +215,7 @@
Download ImageMagick
ImageMagick source and binary distributions are available from a variety of FTP and Web mirrors around the world listed below. ImageMagick stable and development source releases are also available from Subversion. Before you download, you may want to review recent changes to the ImageMagick distribution.
-
The latest release of ImageMagick is version 6.7.1-1.
+
The latest release of ImageMagick is version 6.7.1-2.
- Australia
- ftp://mirror.aarnet.edu.au/pub/imagemagick/
diff --git a/www/escape.html b/www/escape.html
index 4fe397e9a..eea1314a0 100644
--- a/www/escape.html
+++ b/www/escape.html
@@ -201,7 +201,7 @@
Web Hosting Ratings
diff --git a/www/examples.html b/www/examples.html
index 611f6fb24..a48977d8f 100644
--- a/www/examples.html
+++ b/www/examples.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/export.html b/www/export.html
index f37b638e7..f67e2e824 100644
--- a/www/export.html
+++ b/www/export.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/formats.html b/www/formats.html
index fe17c6925..488b05f04 100644
--- a/www/formats.html
+++ b/www/formats.html
@@ -201,7 +201,7 @@
Web Hosting Ratings
diff --git a/www/high-dynamic-range.html b/www/high-dynamic-range.html
index 64debc5fe..f87a7b2bb 100644
--- a/www/high-dynamic-range.html
+++ b/www/high-dynamic-range.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/identify.html b/www/identify.html
index bee5cf960..b21e653a1 100644
--- a/www/identify.html
+++ b/www/identify.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
@@ -283,7 +283,7 @@
Tainted: False
Filesize: 3.97266kb
Number pixels: 3.14453kb
- Version: ImageMagick 6.7.1-1 2011-07-01 Q16 http://www.imagemagick.org
+ Version: ImageMagick 6.7.1-2 2011-07-01 Q16 http://www.imagemagick.org
To get the print size in inches of an image at 72 DPI, use:
$magick> identify -format "%[fx:w/72] by %[fx:h/72] inches" document.png8.5 x 11 inches
diff --git a/www/import.html b/www/import.html
index 4996f7b0e..f6ce6769c 100644
--- a/www/import.html
+++ b/www/import.html
@@ -201,7 +201,7 @@
Web Hosting Ratings
diff --git a/www/index.html b/www/index.html
index 9d564dabf..38256c7da 100644
--- a/www/index.html
+++ b/www/index.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
@@ -225,7 +225,7 @@
The ImageMagick development process ensures a stable API and ABI. Before each ImageMagick release, we perform a comprehensive security assessment that includes memory and thread error detection to prevent security vulnerabilities.
-The current release is ImageMagick 6.7.1-1.
+The current release is ImageMagick 6.7.1-2.
diff --git a/www/install-source.html b/www/install-source.html
index f5ab1bfaa..c00e01e6d 100644
--- a/www/install-source.html
+++ b/www/install-source.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/jp2.html b/www/jp2.html
index eceaf2992..5bbcbc341 100644
--- a/www/jp2.html
+++ b/www/jp2.html
@@ -201,7 +201,7 @@
Web Hosting Ratings
diff --git a/www/license.html b/www/license.html
index 059b963e2..e3c76ce42 100644
--- a/www/license.html
+++ b/www/license.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/magick++.html b/www/magick++.html
index 1e5345744..7a9e5fa1c 100644
--- a/www/magick++.html
+++ b/www/magick++.html
@@ -201,7 +201,7 @@
Web Hosting Ratings
diff --git a/www/magick-core.html b/www/magick-core.html
index fec21cc43..cc5e768d1 100644
--- a/www/magick-core.html
+++ b/www/magick-core.html
@@ -201,7 +201,7 @@
Web Hosting Ratings
diff --git a/www/magick-vector-graphics.html b/www/magick-vector-graphics.html
index d6aaaf876..5f92a0e00 100644
--- a/www/magick-vector-graphics.html
+++ b/www/magick-vector-graphics.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/magick-wand.html b/www/magick-wand.html
index 0f8556add..1172739bc 100644
--- a/www/magick-wand.html
+++ b/www/magick-wand.html
@@ -201,7 +201,7 @@
Web Hosting Ratings
diff --git a/www/miff.html b/www/miff.html
index 8c0662e09..7bd59891b 100644
--- a/www/miff.html
+++ b/www/miff.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/mogrify.html b/www/mogrify.html
index a890d05c1..b70d6c5d7 100644
--- a/www/mogrify.html
+++ b/www/mogrify.html
@@ -201,7 +201,7 @@
Web Hosting Ratings
diff --git a/www/montage.html b/www/montage.html
index 8ac0e752e..267bdbca6 100644
--- a/www/montage.html
+++ b/www/montage.html
@@ -201,7 +201,7 @@
Web Hosting Ratings
diff --git a/www/motion-picture.html b/www/motion-picture.html
index e301ef4bf..ba8603103 100644
--- a/www/motion-picture.html
+++ b/www/motion-picture.html
@@ -201,7 +201,7 @@
Web Hosting Ratings
diff --git a/www/perl-magick.html b/www/perl-magick.html
index 9ce12d3dc..59ea63841 100644
--- a/www/perl-magick.html
+++ b/www/perl-magick.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/porting.html b/www/porting.html
index 83847103f..a1b477b32 100644
--- a/www/porting.html
+++ b/www/porting.html
@@ -201,7 +201,7 @@
Web Hosting Ratings
diff --git a/www/quantize.html b/www/quantize.html
index 15a8c21e6..bda8c08bd 100644
--- a/www/quantize.html
+++ b/www/quantize.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/resources.html b/www/resources.html
index 829009e8e..62b86b0a0 100644
--- a/www/resources.html
+++ b/www/resources.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/search.html b/www/search.html
index b5027608b..0d864864d 100644
--- a/www/search.html
+++ b/www/search.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/sitemap.html b/www/sitemap.html
index 8416d0ff5..898a3c190 100644
--- a/www/sitemap.html
+++ b/www/sitemap.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/sponsors.html b/www/sponsors.html
index 1dfc21c48..a28dbdc3a 100644
--- a/www/sponsors.html
+++ b/www/sponsors.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/stream.html b/www/stream.html
index 3ce913fe0..225a22eed 100644
--- a/www/stream.html
+++ b/www/stream.html
@@ -201,7 +201,7 @@
Web Hosting Ratings
diff --git a/www/subversion.html b/www/subversion.html
index 0ae3bb849..cb805a075 100644
--- a/www/subversion.html
+++ b/www/subversion.html
@@ -200,7 +200,7 @@
Web Hosting Ratings
diff --git a/www/t-shirt.html b/www/t-shirt.html
index 565500852..3b4b319f4 100644
--- a/www/t-shirt.html
+++ b/www/t-shirt.html
@@ -200,7 +200,7 @@
Web Hosting Ratings