diff --git a/Magick++/lib/Image.cpp b/Magick++/lib/Image.cpp
index fcb1fd1..8f20750 100644
--- a/Magick++/lib/Image.cpp
+++ b/Magick++/lib/Image.cpp
@@ -725,6 +725,7 @@
kernel_info->width=order_;
kernel_info->height=order_;
kernel_info->values=(double *) kernel_;
+ kernel_info->bias=image()->bias;
MagickCore::Image* newImage =
ConvolveImage ( image(), kernel_info, &exceptionInfo );
kernel_info->values=(double *) NULL;
diff --git a/MagickCore/cache-view.c b/MagickCore/cache-view.c
index f82db39..25fe60b 100644
--- a/MagickCore/cache-view.c
+++ b/MagickCore/cache-view.c
@@ -113,7 +113,7 @@
assert(image->signature == MagickSignature);
if (image->debug != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
- cache_view=(CacheView *) AcquireMagickMemory(sizeof(*cache_view));
+ cache_view=(CacheView *) AcquireAlignedMemory(1,sizeof(*cache_view));
if (cache_view == (CacheView *) NULL)
ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed");
(void) ResetMagickMemory(cache_view,0,sizeof(*cache_view));
@@ -160,7 +160,7 @@
if (cache_view->debug != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
cache_view->image->filename);
- clone_view=(CacheView *) AcquireMagickMemory(sizeof(*clone_view));
+ clone_view=(CacheView *) AcquireAlignedMemory(1,sizeof(*clone_view));
if (clone_view == (CacheView *) NULL)
ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed");
(void) ResetMagickMemory(clone_view,0,sizeof(*clone_view));
diff --git a/MagickCore/cache.c b/MagickCore/cache.c
index b894a76..ef3dbf2 100644
--- a/MagickCore/cache.c
+++ b/MagickCore/cache.c
@@ -185,7 +185,7 @@
CacheInfo
*cache_info;
- cache_info=(CacheInfo *) AcquireMagickMemory(sizeof(*cache_info));
+ cache_info=(CacheInfo *) AcquireAlignedMemory(1,sizeof(*cache_info));
if (cache_info == (CacheInfo *) NULL)
ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed");
(void) ResetMagickMemory(cache_info,0,sizeof(*cache_info));
@@ -254,7 +254,7 @@
register ssize_t
i;
- nexus_info=(NexusInfo **) AcquireQuantumMemory(number_threads,
+ nexus_info=(NexusInfo **) AcquireAlignedMemory(number_threads,
sizeof(*nexus_info));
if (nexus_info == (NexusInfo **) NULL)
ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed");
@@ -782,7 +782,7 @@
*/
if (cache_info->debug != MagickFalse)
(void) LogMagickEvent(CacheEvent,GetMagickModule(),"disk => disk");
- blob=(unsigned char *) AcquireQuantumMemory(MagickMaxBufferExtent,
+ blob=(unsigned char *) AcquireAlignedMemory(MagickMaxBufferExtent,
sizeof(*blob));
if (blob == (unsigned char *) NULL)
{
@@ -948,7 +948,7 @@
length=(size_t) MagickMax(MagickMax(cache_info->number_channels,
clone_info->number_channels)*sizeof(Quantum),MagickMax(
cache_info->metacontent_extent,clone_info->metacontent_extent));
- blob=(unsigned char *) AcquireQuantumMemory(length,sizeof(*blob));
+ blob=(unsigned char *) AcquireAlignedMemory(length,sizeof(*blob));
if (blob == (unsigned char *) NULL)
{
(void) ThrowMagickException(exception,GetMagickModule(),
@@ -1484,7 +1484,7 @@
if (nexus_info[i]->cache != (Quantum *) NULL)
RelinquishCacheNexusPixels(nexus_info[i]);
nexus_info[i]->signature=(~MagickSignature);
- nexus_info[i]=(NexusInfo *) RelinquishAlignedMemory(nexus_info[i]);
+ nexus_info[i]=(NexusInfo *) RelinquishMagickMemory(nexus_info[i]);
}
nexus_info=(NexusInfo **) RelinquishMagickMemory(nexus_info);
return(nexus_info);
@@ -3246,7 +3246,7 @@
/*
Acquire virtual pixel and associated channels.
*/
- virtual_pixel=(Quantum *) AcquireQuantumMemory(
+ virtual_pixel=(Quantum *) AcquireAlignedMemory(
cache_info->number_channels,sizeof(*virtual_pixel));
if (virtual_pixel == (Quantum *) NULL)
{
@@ -3259,12 +3259,11 @@
sizeof(*virtual_pixel));
if (cache_info->metacontent_extent != 0)
{
- virtual_associated_pixel=(void *) AcquireMagickMemory(
+ virtual_associated_pixel=(void *) AcquireAlignedMemory(1,
cache_info->metacontent_extent);
if (virtual_associated_pixel == (void *) NULL)
{
- virtual_pixel=(Quantum *) RelinquishMagickMemory(
- virtual_pixel);
+ virtual_pixel=(Quantum *) RelinquishMagickMemory(virtual_pixel);
virtual_nexus=DestroyPixelCacheNexus(virtual_nexus,1);
(void) ThrowMagickException(exception,GetMagickModule(),
CacheError,"UnableToGetCacheNexus","`%s'",image->filename);
diff --git a/MagickCore/effect.c b/MagickCore/effect.c
index 65a3f6d..82b43c8 100644
--- a/MagickCore/effect.c
+++ b/MagickCore/effect.c
@@ -1366,7 +1366,7 @@
}
k=kernel_info->values;
kernel_pixels=p;
- pixel=image->bias;
+ pixel=kernel_info->bias;
if (((convolve_traits & BlendPixelTrait) == 0) ||
(GetPixelAlphaTraits(image) == UndefinedPixelTrait) ||
(image->matte == MagickFalse))
@@ -1816,6 +1816,7 @@
}
}
kernel_info->values[i/2]=(double) (width*width-1.0);
+ kernel_info->bias=image->bias;
edge_image=ConvolveImage(image,kernel_info,exception);
kernel_info=DestroyKernelInfo(kernel_info);
return(edge_image);
@@ -1910,6 +1911,7 @@
}
k--;
}
+ kernel_info->bias=image->bias;
emboss_image=ConvolveImage(image,kernel_info,exception);
kernel_info=DestroyKernelInfo(kernel_info);
if (emboss_image != (Image *) NULL)
@@ -2002,6 +2004,7 @@
i++;
}
}
+ kernel_info->bias=image->bias;
blur_image=ConvolveImage(image,kernel_info,exception);
kernel_info=DestroyKernelInfo(kernel_info);
return(blur_image);
@@ -3756,6 +3759,7 @@
}
}
kernel_info->values[i/2]=(double) ((-2.0)*normalize);
+ kernel_info->bias=image->bias;
sharp_image=ConvolveImage(image,kernel_info,exception);
kernel_info=DestroyKernelInfo(kernel_info);
return(sharp_image);
diff --git a/MagickCore/version.h b/MagickCore/version.h
index db83fac..079a9bf 100644
--- a/MagickCore/version.h
+++ b/MagickCore/version.h
@@ -34,7 +34,7 @@
#define MagickLibAddendum "-0"
#define MagickLibInterface 5
#define MagickLibMinInterface 5
-#define MagickReleaseDate "2011-07-15"
+#define MagickReleaseDate "2011-07-16"
#define MagickChangeDate "20110701"
#define MagickAuthoritativeURL "http://www.imagemagick.org"
#if defined(MAGICKCORE_OPENMP_SUPPORT)
diff --git a/MagickWand/mogrify.c b/MagickWand/mogrify.c
index 104b299..6146c54 100644
--- a/MagickWand/mogrify.c
+++ b/MagickWand/mogrify.c
@@ -1201,6 +1201,7 @@
kernel_info=AcquireKernelInfo(argv[i+1]);
if (kernel_info == (KernelInfo *) NULL)
break;
+ kernel_info->bias=(*image)->bias;
mogrify_image=ConvolveImage(*image,kernel_info,exception);
kernel_info=DestroyKernelInfo(kernel_info);
break;
@@ -1211,20 +1212,7 @@
Crop a image to a smaller size
*/
(void) SyncImageSettings(mogrify_info,*image);
-#if 0
- flags=ParseGravityGeometry(*image,argv[i+1],&geometry,exception);
- if (((geometry.width != 0) || (geometry.height != 0)) &&
- ((flags & XValue) == 0) && ((flags & YValue) == 0))
- break;
-#endif
-#if 0
- mogrify_image=CloneImage(*image,0,0,MagickTrue,&(*image)->exception);
- mogrify_image->next = mogrify_image->previous = (Image *)NULL;
- (void) TransformImage(&mogrify_image,argv[i+1],(char *) NULL);
- InheritException(exception,&mogrify_image->exception);
-#else
mogrify_image=CropImageToTiles(*image,argv[i+1],exception);
-#endif
break;
}
if (LocaleCompare("cycle",option+1) == 0)
diff --git a/PerlMagick/Magick.xs b/PerlMagick/Magick.xs
index 9f9eaf8..45e5b98 100644
--- a/PerlMagick/Magick.xs
+++ b/PerlMagick/Magick.xs
@@ -9173,6 +9173,7 @@
break;
}
PushPixelChannelMap(image,channel);
+ kernel->bias=image->bias;
image=ConvolveImage(image,kernel,exception);
if (image != (Image *) NULL)
PopPixelChannelMap(image);