#include "MagickCore/string_.h"
#include "MagickCore/string-private.h"
#include "MagickCore/timer.h"
+#include "MagickCore/token.h"
#include "MagickCore/utility.h"
#include "MagickCore/utility-private.h"
#include "MagickCore/version.h"
%
*/
-static ssize_t PrintChannelFeatures(FILE *file,const ChannelType channel,
+static ssize_t PrintChannelFeatures(FILE *file,const PixelChannel channel,
const char *name,const ChannelFeatures *channel_features)
{
#define PrintFeature(feature) \
return(n);
}
-static ssize_t PrintChannelStatistics(FILE *file,const ChannelType channel,
+static ssize_t PrintChannelStatistics(FILE *file,const PixelChannel channel,
const char *name,const double scale,
const ChannelStatistics *channel_statistics)
{
if (image->type != UndefinedType)
(void) FormatLocaleFile(file,"%s ",CommandOptionToMnemonic(
MagickTypeOptions,(ssize_t) image->type));
+ if (image->colorspace != UndefinedColorspace)
+ (void) FormatLocaleFile(file,"%s ",CommandOptionToMnemonic(
+ MagickColorspaceOptions,(ssize_t) image->colorspace));
if (image->storage_class == DirectClass)
{
- (void) FormatLocaleFile(file,"DirectClass ");
if (image->total_colors != 0)
{
(void) FormatMagickSize(image->total_colors,MagickFalse,format);
}
else
if (image->total_colors <= image->colors)
- (void) FormatLocaleFile(file,"PseudoClass %.20gc ",(double)
+ (void) FormatLocaleFile(file,"%.20gc ",(double)
image->colors);
else
- (void) FormatLocaleFile(file,"PseudoClass %.20g=>%.20gc ",(double)
+ (void) FormatLocaleFile(file,"%.20g=>%.20gc ",(double)
image->total_colors,(double) image->colors);
if (image->error.mean_error_per_pixel != 0.0)
(void) FormatLocaleFile(file,"%.20g/%f/%fdb ",(double)
(image->magick_rows != image->rows))
(void) FormatLocaleFile(file," Base geometry: %.20gx%.20g\n",(double)
image->magick_columns,(double) image->magick_rows);
- if ((image->x_resolution != 0.0) && (image->y_resolution != 0.0))
+ if ((image->resolution.x != 0.0) && (image->resolution.y != 0.0))
{
- (void) FormatLocaleFile(file," Resolution: %gx%g\n",image->x_resolution,
- image->y_resolution);
+ (void) FormatLocaleFile(file," Resolution: %gx%g\n",image->resolution.x,
+ image->resolution.y);
(void) FormatLocaleFile(file," Print size: %gx%g\n",(double)
- image->columns/image->x_resolution,(double) image->rows/
- image->y_resolution);
+ image->columns/image->resolution.x,(double) image->rows/
+ image->resolution.y);
}
(void) FormatLocaleFile(file," Units: %s\n",CommandOptionToMnemonic(
MagickResolutionOptions,(ssize_t) image->units));
channel_statistics=(ChannelStatistics *) NULL;
channel_features=(ChannelFeatures *) NULL;
colorspace=image->colorspace;
+ scale=1;
if (ping == MagickFalse)
{
size_t
default:
{
(void) FormatLocaleFile(file," red: %.20g-bit\n",(double)
- channel_statistics[RedChannel].depth);
+ channel_statistics[RedPixelChannel].depth);
(void) FormatLocaleFile(file," green: %.20g-bit\n",(double)
- channel_statistics[GreenChannel].depth);
+ channel_statistics[GreenPixelChannel].depth);
(void) FormatLocaleFile(file," blue: %.20g-bit\n",(double)
- channel_statistics[BlueChannel].depth);
+ channel_statistics[BluePixelChannel].depth);
break;
}
case CMYKColorspace:
{
(void) FormatLocaleFile(file," cyan: %.20g-bit\n",(double)
- channel_statistics[CyanChannel].depth);
+ channel_statistics[CyanPixelChannel].depth);
(void) FormatLocaleFile(file," magenta: %.20g-bit\n",(double)
- channel_statistics[MagentaChannel].depth);
+ channel_statistics[MagentaPixelChannel].depth);
(void) FormatLocaleFile(file," yellow: %.20g-bit\n",(double)
- channel_statistics[YellowChannel].depth);
+ channel_statistics[YellowPixelChannel].depth);
(void) FormatLocaleFile(file," black: %.20g-bit\n",(double)
- channel_statistics[BlackChannel].depth);
+ channel_statistics[BlackPixelChannel].depth);
break;
}
case GRAYColorspace:
{
(void) FormatLocaleFile(file," gray: %.20g-bit\n",(double)
- channel_statistics[GrayChannel].depth);
+ channel_statistics[GrayPixelChannel].depth);
break;
}
}
- if (image->matte != MagickFalse)
+ if (image->alpha_trait == BlendPixelTrait)
(void) FormatLocaleFile(file," alpha: %.20g-bit\n",(double)
- channel_statistics[OpacityChannel].depth);
+ channel_statistics[AlphaPixelChannel].depth);
scale=1;
if (image->depth <= MAGICKCORE_QUANTUM_DEPTH)
scale=QuantumRange/((size_t) QuantumRange >> ((size_t)
case RGBColorspace:
default:
{
- (void) PrintChannelStatistics(file,RedChannel,"Red",1.0/scale,
- channel_statistics);
- (void) PrintChannelStatistics(file,GreenChannel,"Green",1.0/scale,
- channel_statistics);
- (void) PrintChannelStatistics(file,BlueChannel,"Blue",1.0/scale,
- channel_statistics);
+ (void) PrintChannelStatistics(file,RedPixelChannel,"Red",1.0/
+ scale,channel_statistics);
+ (void) PrintChannelStatistics(file,GreenPixelChannel,"Green",1.0/
+ scale,channel_statistics);
+ (void) PrintChannelStatistics(file,BluePixelChannel,"Blue",1.0/
+ scale,channel_statistics);
break;
}
case CMYKColorspace:
{
- (void) PrintChannelStatistics(file,CyanChannel,"Cyan",1.0/scale,
- channel_statistics);
- (void) PrintChannelStatistics(file,MagentaChannel,"Magenta",1.0/scale,
- channel_statistics);
- (void) PrintChannelStatistics(file,YellowChannel,"Yellow",1.0/scale,
- channel_statistics);
- (void) PrintChannelStatistics(file,BlackChannel,"Black",1.0/scale,
- channel_statistics);
+ (void) PrintChannelStatistics(file,CyanPixelChannel,"Cyan",1.0/
+ scale,channel_statistics);
+ (void) PrintChannelStatistics(file,MagentaPixelChannel,"Magenta",1.0/
+ scale,channel_statistics);
+ (void) PrintChannelStatistics(file,YellowPixelChannel,"Yellow",1.0/
+ scale,channel_statistics);
+ (void) PrintChannelStatistics(file,BlackPixelChannel,"Black",1.0/
+ scale,channel_statistics);
break;
}
case GRAYColorspace:
{
- (void) PrintChannelStatistics(file,GrayChannel,"Gray",1.0/scale,
- channel_statistics);
+ (void) PrintChannelStatistics(file,GrayPixelChannel,"Gray",1.0/
+ scale,channel_statistics);
break;
}
}
- if (image->matte != MagickFalse)
- (void) PrintChannelStatistics(file,AlphaChannel,"Alpha",1.0/scale,
- channel_statistics);
+ if (image->alpha_trait == BlendPixelTrait)
+ (void) PrintChannelStatistics(file,AlphaPixelChannel,"Alpha",1.0/
+ scale,channel_statistics);
if (colorspace != GRAYColorspace)
{
(void) FormatLocaleFile(file," Image statistics:\n");
- (void) PrintChannelStatistics(file,CompositeChannels,"Overall",1.0/
- scale,channel_statistics);
+ (void) PrintChannelStatistics(file,(PixelChannel) MaxPixelChannels,
+ "Overall",1.0/scale,channel_statistics);
}
channel_statistics=(ChannelStatistics *) RelinquishMagickMemory(
channel_statistics);
case RGBColorspace:
default:
{
- (void) PrintChannelFeatures(file,RedChannel,"Red",channel_features);
- (void) PrintChannelFeatures(file,GreenChannel,"Green",
+ (void) PrintChannelFeatures(file,RedPixelChannel,"Red",
+ channel_features);
+ (void) PrintChannelFeatures(file,GreenPixelChannel,"Green",
+ channel_features);
+ (void) PrintChannelFeatures(file,BluePixelChannel,"Blue",
channel_features);
- (void) PrintChannelFeatures(file,BlueChannel,"Blue",channel_features);
break;
}
case CMYKColorspace:
{
- (void) PrintChannelFeatures(file,CyanChannel,"Cyan",channel_features);
- (void) PrintChannelFeatures(file,MagentaChannel,"Magenta",
+ (void) PrintChannelFeatures(file,CyanPixelChannel,"Cyan",
channel_features);
- (void) PrintChannelFeatures(file,YellowChannel,"Yellow",
+ (void) PrintChannelFeatures(file,MagentaPixelChannel,"Magenta",
channel_features);
- (void) PrintChannelFeatures(file,BlackChannel,"Black",
+ (void) PrintChannelFeatures(file,YellowPixelChannel,"Yellow",
+ channel_features);
+ (void) PrintChannelFeatures(file,BlackPixelChannel,"Black",
channel_features);
break;
}
case GRAYColorspace:
{
- (void) PrintChannelFeatures(file,GrayChannel,"Gray",channel_features);
+ (void) PrintChannelFeatures(file,GrayPixelChannel,"Gray",
+ channel_features);
break;
}
}
- if (image->matte != MagickFalse)
- (void) PrintChannelFeatures(file,AlphaChannel,"Alpha",channel_features);
+ if (image->alpha_trait == BlendPixelTrait)
+ (void) PrintChannelFeatures(file,AlphaPixelChannel,"Alpha",
+ channel_features);
channel_features=(ChannelFeatures *) RelinquishMagickMemory(
channel_features);
}
{
if (image->colorspace == CMYKColorspace)
(void) FormatLocaleFile(file," Total ink density: %.0f%%\n",100.0*
- GetImageTotalInkDensity(image)/(double) QuantumRange);
+ GetImageTotalInkDensity(image,exception)/(double) QuantumRange);
x=0;
- if (image->matte != MagickFalse)
+ if (image->alpha_trait == BlendPixelTrait)
{
register const Quantum
*p;
pixel;
GetPixelInfo(image,&pixel);
- SetPixelInfo(image,p,&pixel);
- (void) QueryMagickColorname(image,&pixel,SVGCompliance,tuple,
+ GetPixelInfoPixel(image,p,&pixel);
+ (void) QueryColorname(image,&pixel,SVGCompliance,tuple,
exception);
(void) FormatLocaleFile(file," Alpha: %s ",tuple);
GetColorTuple(&pixel,MagickTrue,tuple);
(void) FormatLocaleFile(file," %s\n",tuple);
}
}
- artifact=GetImageArtifact(image,"identify:unique-colors");
if (IsHistogramImage(image,exception) != MagickFalse)
{
(void) FormatLocaleFile(file," Colors: %.20g\n",(double)
(void) FormatLocaleFile(file," Histogram:\n");
(void) GetNumberColors(image,file,exception);
}
- else
- if ((artifact != (const char *) NULL) &&
- (IsMagickTrue(artifact) != MagickFalse))
- (void) FormatLocaleFile(file," Colors: %.20g\n",(double)
- GetNumberColors(image,(FILE *) NULL,exception));
+ else {
+ artifact=GetImageArtifact(image,"identify:unique-colors");
+ if (IfMagickTrue(IsStringTrue(artifact)))
+ (void) FormatLocaleFile(file," Colors: %.20g\n",(double)
+ GetNumberColors(image,(FILE *) NULL,exception));
+ }
}
if (image->storage_class == PseudoClass)
{
p=image->colormap;
for (i=0; i < (ssize_t) image->colors; i++)
{
- SetPixelInfoPacket(image,p,&pixel);
+ pixel=(*p);
(void) CopyMagickString(tuple,"(",MaxTextExtent);
ConcatenateColorComponent(&pixel,RedPixelChannel,X11Compliance,
tuple);
ConcatenateColorComponent(&pixel,BlackPixelChannel,
X11Compliance,tuple);
}
- if (pixel.matte != MagickFalse)
+ if (pixel.alpha_trait == BlendPixelTrait)
{
(void) ConcatenateMagickString(tuple,",",MaxTextExtent);
ConcatenateColorComponent(&pixel,AlphaPixelChannel,
X11Compliance,tuple);
}
(void) ConcatenateMagickString(tuple,")",MaxTextExtent);
- (void) QueryMagickColorname(image,&pixel,SVGCompliance,color,
+ (void) QueryColorname(image,&pixel,SVGCompliance,color,
exception);
GetColorTuple(&pixel,MagickTrue,hex);
(void) FormatLocaleFile(file," %8ld: %s %s %s\n",(long) i,tuple,
while (property != (const char *) NULL)
{
(void) FormatLocaleFile(file," %s:\n",property);
- value=GetImageProperty(tile,property);
+ value=GetImageProperty(tile,property,exception);
if (value != (const char *) NULL)
(void) FormatLocaleFile(file,"%s\n",value);
property=GetNextImageProperty(tile);
}
image_info=DestroyImageInfo(image_info);
}
- (void) GetImageProperty(image,"exif:*");
+ (void) GetImageProperty(image,"exif:*",exception);
ResetImagePropertyIterator(image);
property=GetNextImageProperty(image);
if (property != (const char *) NULL)
while (property != (const char *) NULL)
{
(void) FormatLocaleFile(file," %s: ",property);
- value=GetImageProperty(image,property);
+ value=GetImageProperty(image,property,exception);
if (value != (const char *) NULL)
(void) FormatLocaleFile(file,"%s\n",value);
property=GetNextImageProperty(image);
}
}
(void) FormatLocaleString(key,MaxTextExtent,"8BIM:1999,2998:#1");
- value=GetImageProperty(image,key);
+ value=GetImageProperty(image,key,exception);
if (value != (const char *) NULL)
{
/*
(void) FormatLocaleFile(file," Tainted: %s\n",CommandOptionToMnemonic(
MagickBooleanOptions,(ssize_t) image->taint));
(void) FormatMagickSize(GetBlobSize(image),MagickFalse,format);
- (void) FormatLocaleFile(file," Filesize: %sB\n",format);
+ (void) FormatLocaleFile(file," Filesize: %s\n",format);
(void) FormatMagickSize((MagickSizeType) image->columns*image->rows,
- MagickFalse,format);
+ MagickFalse,format);
+ if (strlen(format) > 1)
+ format[strlen(format)-1]='\0';
(void) FormatLocaleFile(file," Number pixels: %s\n",format);
(void) FormatMagickSize((MagickSizeType) ((double) image->columns*image->rows/
elapsed_time+0.5),MagickFalse,format);