return(complex_images);
}
AppendImageToList(&complex_images,image);
- complex_images->storage_class=DirectClass;
- complex_images->depth=32UL;
/*
Apply complex mathematics to image pixels.
*/
return(MagickFalse);
}
magnitude_pixels=(double *) GetVirtualMemoryBlob(magnitude_info);
- (void) ResetMagickMemory(magnitude_pixels,0,fourier_info->height*
- fourier_info->width*sizeof(*magnitude_pixels));
+ (void) ResetMagickMemory(magnitude_pixels,0,fourier_info->width*
+ fourier_info->height*sizeof(*magnitude_pixels));
phase_pixels=(double *) GetVirtualMemoryBlob(phase_info);
- (void) ResetMagickMemory(phase_pixels,0,fourier_info->height*
- fourier_info->width*sizeof(*phase_pixels));
+ (void) ResetMagickMemory(phase_pixels,0,fourier_info->width*
+ fourier_info->height*sizeof(*phase_pixels));
status=ForwardQuadrantSwap(fourier_info->width,fourier_info->height,
magnitude,magnitude_pixels);
if (status != MagickFalse)
return(MagickFalse);
}
source_pixels=(double *) GetVirtualMemoryBlob(source_info);
- ResetMagickMemory(source_pixels,0,fourier_info->height*fourier_info->width*
+ ResetMagickMemory(source_pixels,0,fourier_info->width*fourier_info->height*
sizeof(*source_pixels));
i=0L;
image_view=AcquireVirtualCacheView(image,exception);
fourier_info.width=image->columns;
fourier_info.height=image->rows;
+ if ((image->columns != image->rows) || ((image->columns % 2) != 0) ||
+ ((image->rows % 2) != 0))
+ {
+ size_t extent=image->columns < image->rows ? image->rows : image->columns;
+ fourier_info.width=(extent & 0x01) == 1 ? extent+1UL : extent;
+ }
+ fourier_info.height=fourier_info.width;
fourier_info.center=(ssize_t) (fourier_info.width/2L)+1L;
fourier_info.channel=channel;
fourier_info.modulus=modulus;
width=image->columns;
height=image->rows;
+ if ((image->columns != image->rows) || ((image->columns % 2) != 0) ||
+ ((image->rows % 2) != 0))
+ {
+ size_t extent=image->columns < image->rows ? image->rows :
+ image->columns;
+ width=(extent & 0x01) == 1 ? extent+1UL : extent;
+ }
+ height=width;
magnitude_image=CloneImage(image,width,height,MagickTrue,exception);
if (magnitude_image != (Image *) NULL)
{
fourier_info.width=magnitude_image->columns;
fourier_info.height=magnitude_image->rows;
+ if ((magnitude_image->columns != magnitude_image->rows) ||
+ ((magnitude_image->columns % 2) != 0) ||
+ ((magnitude_image->rows % 2) != 0))
+ {
+ size_t extent=magnitude_image->columns < magnitude_image->rows ?
+ magnitude_image->rows : magnitude_image->columns;
+ fourier_info.width=(extent & 0x01) == 1 ? extent+1UL : extent;
+ }
+ fourier_info.height=fourier_info.width;
fourier_info.center=(ssize_t) (fourier_info.width/2L)+1L;
fourier_info.channel=channel;
fourier_info.modulus=modulus;