Coverage Report

Created: 2026-02-14 07:11

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/imagemagick/MagickCore/composite-private.h
Line
Count
Source
1
/*
2
  Copyright @ 1999 ImageMagick Studio LLC, a non-profit organization
3
  dedicated to making software imaging solutions freely available.
4
5
  You may not use this file except in compliance with the License.  You may
6
  obtain a copy of the License at
7
8
    https://imagemagick.org/license/
9
10
  Unless required by applicable law or agreed to in writing, software
11
  distributed under the License is distributed on an "AS IS" BASIS,
12
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
  See the License for the specific language governing permissions and
14
  limitations under the License.
15
16
  MagickCore image composite private methods.
17
*/
18
#ifndef MAGICKCORE_COMPOSITE_PRIVATE_H
19
#define MAGICKCORE_COMPOSITE_PRIVATE_H
20
21
22
#include "MagickCore/color.h"
23
#include "MagickCore/image.h"
24
#include "MagickCore/artifact.h"
25
#include "MagickCore/image-private.h"
26
#include "MagickCore/pixel-accessor.h"
27
28
#if defined(__cplusplus) || defined(c_plusplus)
29
extern "C" {
30
#endif
31
32
/*
33
  ImageMagick Alpha Composite Inline Methods (special export)
34
*/
35
static inline double MagickOver_(const double p,const double alpha,
36
  const double q,const double beta)
37
391M
{
38
391M
  double
39
391M
    Da,
40
391M
    Sa;
41
42
391M
  Sa=QuantumScale*alpha;
43
391M
  Da=QuantumScale*beta;
44
391M
  return(Sa*p+Da*q*(1.0-Sa));
45
391M
}
annotate.c:MagickOver_
Line
Count
Source
37
26.9M
{
38
26.9M
  double
39
26.9M
    Da,
40
26.9M
    Sa;
41
42
26.9M
  Sa=QuantumScale*alpha;
43
26.9M
  Da=QuantumScale*beta;
44
26.9M
  return(Sa*p+Da*q*(1.0-Sa));
45
26.9M
}
Unexecuted instantiation: attribute.c:MagickOver_
cache.c:MagickOver_
Line
Count
Source
37
90.7M
{
38
90.7M
  double
39
90.7M
    Da,
40
90.7M
    Sa;
41
42
90.7M
  Sa=QuantumScale*alpha;
43
90.7M
  Da=QuantumScale*beta;
44
90.7M
  return(Sa*p+Da*q*(1.0-Sa));
45
90.7M
}
Unexecuted instantiation: channel.c:MagickOver_
Unexecuted instantiation: compare.c:MagickOver_
Unexecuted instantiation: composite.c:MagickOver_
Unexecuted instantiation: distort.c:MagickOver_
draw.c:MagickOver_
Line
Count
Source
37
273M
{
38
273M
  double
39
273M
    Da,
40
273M
    Sa;
41
42
273M
  Sa=QuantumScale*alpha;
43
273M
  Da=QuantumScale*beta;
44
273M
  return(Sa*p+Da*q*(1.0-Sa));
45
273M
}
Unexecuted instantiation: enhance.c:MagickOver_
Unexecuted instantiation: feature.c:MagickOver_
Unexecuted instantiation: image.c:MagickOver_
Unexecuted instantiation: paint.c:MagickOver_
Unexecuted instantiation: shear.c:MagickOver_
Unexecuted instantiation: statistic.c:MagickOver_
Unexecuted instantiation: stream.c:MagickOver_
Unexecuted instantiation: transform.c:MagickOver_
Unexecuted instantiation: caption.c:MagickOver_
Unexecuted instantiation: pango.c:MagickOver_
Unexecuted instantiation: svg.c:MagickOver_
46
47
static inline double RoundToUnity(const double value)
48
186M
{
49
186M
  return(value < 0.0 ? 0.0 : (value > 1.0) ? 1.0 : value);
50
186M
}
annotate.c:RoundToUnity
Line
Count
Source
48
8.97M
{
49
8.97M
  return(value < 0.0 ? 0.0 : (value > 1.0) ? 1.0 : value);
50
8.97M
}
Unexecuted instantiation: attribute.c:RoundToUnity
Unexecuted instantiation: cache.c:RoundToUnity
Unexecuted instantiation: channel.c:RoundToUnity
Unexecuted instantiation: compare.c:RoundToUnity
composite.c:RoundToUnity
Line
Count
Source
48
6.07k
{
49
6.07k
  return(value < 0.0 ? 0.0 : (value > 1.0) ? 1.0 : value);
50
6.07k
}
Unexecuted instantiation: distort.c:RoundToUnity
draw.c:RoundToUnity
Line
Count
Source
48
177M
{
49
177M
  return(value < 0.0 ? 0.0 : (value > 1.0) ? 1.0 : value);
50
177M
}
Unexecuted instantiation: enhance.c:RoundToUnity
Unexecuted instantiation: feature.c:RoundToUnity
Unexecuted instantiation: image.c:RoundToUnity
Unexecuted instantiation: paint.c:RoundToUnity
Unexecuted instantiation: shear.c:RoundToUnity
Unexecuted instantiation: statistic.c:RoundToUnity
Unexecuted instantiation: stream.c:RoundToUnity
Unexecuted instantiation: transform.c:RoundToUnity
Unexecuted instantiation: caption.c:RoundToUnity
Unexecuted instantiation: pango.c:RoundToUnity
Unexecuted instantiation: svg.c:RoundToUnity
51
52
static inline void CompositePixelOver(const Image *image,const PixelInfo *p,
53
  const double alpha,const Quantum *q,const double beta,Quantum *composite)
54
49.6M
{
55
49.6M
  double
56
49.6M
    Da,
57
49.6M
    gamma,
58
49.6M
    Sa;
59
60
49.6M
  ssize_t
61
49.6M
    i;
62
63
  /*
64
    Compose pixel p over pixel q with the given alpha.
65
  */
66
49.6M
  Sa=QuantumScale*alpha;
67
49.6M
  Da=QuantumScale*beta;
68
49.6M
  gamma=Sa+Da-Sa*Da;
69
49.6M
  gamma=MagickSafeReciprocal(gamma);
70
249M
  for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
71
199M
  {
72
199M
    PixelChannel
73
199M
      channel;
74
75
199M
    PixelTrait
76
199M
      traits;
77
78
199M
    channel=GetPixelChannelChannel(image,i);
79
199M
    traits=GetPixelChannelTraits(image,channel);
80
199M
    if (traits == UndefinedPixelTrait)
81
0
      continue;
82
199M
    switch (channel)
83
199M
    {
84
49.6M
      case RedPixelChannel:
85
49.6M
      {
86
49.6M
        composite[i]=ClampToQuantum(gamma*MagickOver_((double) p->red,alpha,
87
49.6M
          (double) q[i],beta));
88
49.6M
        break;
89
0
      }
90
49.6M
      case GreenPixelChannel:
91
49.6M
      {
92
49.6M
        composite[i]=ClampToQuantum(gamma*MagickOver_((double) p->green,alpha,
93
49.6M
          (double) q[i],beta));
94
49.6M
        break;
95
0
      }
96
49.6M
      case BluePixelChannel:
97
49.6M
      {
98
49.6M
        composite[i]=ClampToQuantum(gamma*MagickOver_((double) p->blue,alpha,
99
49.6M
          (double) q[i],beta));
100
49.6M
        break;
101
0
      }
102
0
      case BlackPixelChannel:
103
0
      {
104
0
        composite[i]=ClampToQuantum(gamma*MagickOver_((double) p->black,alpha,
105
0
          (double) q[i],beta));
106
0
        break;
107
0
      }
108
49.6M
      case AlphaPixelChannel:
109
49.6M
      {
110
49.6M
        composite[i]=ClampToQuantum((double) QuantumRange*
111
49.6M
          RoundToUnity(Sa+Da-Sa*Da));
112
49.6M
        break;
113
0
      }
114
1.08M
      default:
115
1.08M
      {
116
1.08M
        composite[i]=q[i];
117
1.08M
        break;
118
0
      }
119
199M
    }
120
199M
  }
121
49.6M
}
annotate.c:CompositePixelOver
Line
Count
Source
54
8.97M
{
55
8.97M
  double
56
8.97M
    Da,
57
8.97M
    gamma,
58
8.97M
    Sa;
59
60
8.97M
  ssize_t
61
8.97M
    i;
62
63
  /*
64
    Compose pixel p over pixel q with the given alpha.
65
  */
66
8.97M
  Sa=QuantumScale*alpha;
67
8.97M
  Da=QuantumScale*beta;
68
8.97M
  gamma=Sa+Da-Sa*Da;
69
8.97M
  gamma=MagickSafeReciprocal(gamma);
70
44.8M
  for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
71
35.8M
  {
72
35.8M
    PixelChannel
73
35.8M
      channel;
74
75
35.8M
    PixelTrait
76
35.8M
      traits;
77
78
35.8M
    channel=GetPixelChannelChannel(image,i);
79
35.8M
    traits=GetPixelChannelTraits(image,channel);
80
35.8M
    if (traits == UndefinedPixelTrait)
81
0
      continue;
82
35.8M
    switch (channel)
83
35.8M
    {
84
8.97M
      case RedPixelChannel:
85
8.97M
      {
86
8.97M
        composite[i]=ClampToQuantum(gamma*MagickOver_((double) p->red,alpha,
87
8.97M
          (double) q[i],beta));
88
8.97M
        break;
89
0
      }
90
8.97M
      case GreenPixelChannel:
91
8.97M
      {
92
8.97M
        composite[i]=ClampToQuantum(gamma*MagickOver_((double) p->green,alpha,
93
8.97M
          (double) q[i],beta));
94
8.97M
        break;
95
0
      }
96
8.97M
      case BluePixelChannel:
97
8.97M
      {
98
8.97M
        composite[i]=ClampToQuantum(gamma*MagickOver_((double) p->blue,alpha,
99
8.97M
          (double) q[i],beta));
100
8.97M
        break;
101
0
      }
102
0
      case BlackPixelChannel:
103
0
      {
104
0
        composite[i]=ClampToQuantum(gamma*MagickOver_((double) p->black,alpha,
105
0
          (double) q[i],beta));
106
0
        break;
107
0
      }
108
8.97M
      case AlphaPixelChannel:
109
8.97M
      {
110
8.97M
        composite[i]=ClampToQuantum((double) QuantumRange*
111
8.97M
          RoundToUnity(Sa+Da-Sa*Da));
112
8.97M
        break;
113
0
      }
114
0
      default:
115
0
      {
116
0
        composite[i]=q[i];
117
0
        break;
118
0
      }
119
35.8M
    }
120
35.8M
  }
121
8.97M
}
Unexecuted instantiation: attribute.c:CompositePixelOver
Unexecuted instantiation: cache.c:CompositePixelOver
Unexecuted instantiation: channel.c:CompositePixelOver
Unexecuted instantiation: compare.c:CompositePixelOver
Unexecuted instantiation: composite.c:CompositePixelOver
Unexecuted instantiation: distort.c:CompositePixelOver
draw.c:CompositePixelOver
Line
Count
Source
54
40.7M
{
55
40.7M
  double
56
40.7M
    Da,
57
40.7M
    gamma,
58
40.7M
    Sa;
59
60
40.7M
  ssize_t
61
40.7M
    i;
62
63
  /*
64
    Compose pixel p over pixel q with the given alpha.
65
  */
66
40.7M
  Sa=QuantumScale*alpha;
67
40.7M
  Da=QuantumScale*beta;
68
40.7M
  gamma=Sa+Da-Sa*Da;
69
40.7M
  gamma=MagickSafeReciprocal(gamma);
70
204M
  for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
71
163M
  {
72
163M
    PixelChannel
73
163M
      channel;
74
75
163M
    PixelTrait
76
163M
      traits;
77
78
163M
    channel=GetPixelChannelChannel(image,i);
79
163M
    traits=GetPixelChannelTraits(image,channel);
80
163M
    if (traits == UndefinedPixelTrait)
81
0
      continue;
82
163M
    switch (channel)
83
163M
    {
84
40.7M
      case RedPixelChannel:
85
40.7M
      {
86
40.7M
        composite[i]=ClampToQuantum(gamma*MagickOver_((double) p->red,alpha,
87
40.7M
          (double) q[i],beta));
88
40.7M
        break;
89
0
      }
90
40.7M
      case GreenPixelChannel:
91
40.7M
      {
92
40.7M
        composite[i]=ClampToQuantum(gamma*MagickOver_((double) p->green,alpha,
93
40.7M
          (double) q[i],beta));
94
40.7M
        break;
95
0
      }
96
40.7M
      case BluePixelChannel:
97
40.7M
      {
98
40.7M
        composite[i]=ClampToQuantum(gamma*MagickOver_((double) p->blue,alpha,
99
40.7M
          (double) q[i],beta));
100
40.7M
        break;
101
0
      }
102
0
      case BlackPixelChannel:
103
0
      {
104
0
        composite[i]=ClampToQuantum(gamma*MagickOver_((double) p->black,alpha,
105
0
          (double) q[i],beta));
106
0
        break;
107
0
      }
108
40.7M
      case AlphaPixelChannel:
109
40.7M
      {
110
40.7M
        composite[i]=ClampToQuantum((double) QuantumRange*
111
40.7M
          RoundToUnity(Sa+Da-Sa*Da));
112
40.7M
        break;
113
0
      }
114
1.08M
      default:
115
1.08M
      {
116
1.08M
        composite[i]=q[i];
117
1.08M
        break;
118
0
      }
119
163M
    }
120
163M
  }
121
40.7M
}
Unexecuted instantiation: enhance.c:CompositePixelOver
Unexecuted instantiation: feature.c:CompositePixelOver
Unexecuted instantiation: image.c:CompositePixelOver
Unexecuted instantiation: paint.c:CompositePixelOver
Unexecuted instantiation: shear.c:CompositePixelOver
Unexecuted instantiation: statistic.c:CompositePixelOver
Unexecuted instantiation: stream.c:CompositePixelOver
Unexecuted instantiation: transform.c:CompositePixelOver
Unexecuted instantiation: caption.c:CompositePixelOver
Unexecuted instantiation: pango.c:CompositePixelOver
Unexecuted instantiation: svg.c:CompositePixelOver
122
123
static inline void CompositePixelInfoOver(const PixelInfo *p,const double alpha,
124
  const PixelInfo *q,const double beta,PixelInfo *composite)
125
50.4M
{
126
50.4M
  double
127
50.4M
    Da,
128
50.4M
    gamma,
129
50.4M
    Sa;
130
131
  /*
132
    Compose pixel p over pixel q with the given opacities.
133
  */
134
50.4M
  Sa=QuantumScale*alpha;
135
50.4M
  Da=QuantumScale*beta,
136
50.4M
  gamma=Sa+Da-Sa*Da;
137
50.4M
  composite->alpha=(double) QuantumRange*RoundToUnity(gamma);
138
50.4M
  gamma=MagickSafeReciprocal(gamma);
139
50.4M
  composite->red=gamma*MagickOver_(p->red,alpha,q->red,beta);
140
50.4M
  composite->green=gamma*MagickOver_(p->green,alpha,q->green,beta);
141
50.4M
  composite->blue=gamma*MagickOver_(p->blue,alpha,q->blue,beta);
142
50.4M
  if (q->colorspace == CMYKColorspace)
143
8.53k
    composite->black=gamma*MagickOver_(p->black,alpha,q->black,beta);
144
50.4M
}
Unexecuted instantiation: annotate.c:CompositePixelInfoOver
Unexecuted instantiation: attribute.c:CompositePixelInfoOver
Unexecuted instantiation: cache.c:CompositePixelInfoOver
Unexecuted instantiation: channel.c:CompositePixelInfoOver
Unexecuted instantiation: compare.c:CompositePixelInfoOver
Unexecuted instantiation: composite.c:CompositePixelInfoOver
Unexecuted instantiation: distort.c:CompositePixelInfoOver
draw.c:CompositePixelInfoOver
Line
Count
Source
125
50.4M
{
126
50.4M
  double
127
50.4M
    Da,
128
50.4M
    gamma,
129
50.4M
    Sa;
130
131
  /*
132
    Compose pixel p over pixel q with the given opacities.
133
  */
134
50.4M
  Sa=QuantumScale*alpha;
135
50.4M
  Da=QuantumScale*beta,
136
50.4M
  gamma=Sa+Da-Sa*Da;
137
50.4M
  composite->alpha=(double) QuantumRange*RoundToUnity(gamma);
138
50.4M
  gamma=MagickSafeReciprocal(gamma);
139
50.4M
  composite->red=gamma*MagickOver_(p->red,alpha,q->red,beta);
140
50.4M
  composite->green=gamma*MagickOver_(p->green,alpha,q->green,beta);
141
50.4M
  composite->blue=gamma*MagickOver_(p->blue,alpha,q->blue,beta);
142
50.4M
  if (q->colorspace == CMYKColorspace)
143
8.53k
    composite->black=gamma*MagickOver_(p->black,alpha,q->black,beta);
144
50.4M
}
Unexecuted instantiation: enhance.c:CompositePixelInfoOver
Unexecuted instantiation: feature.c:CompositePixelInfoOver
Unexecuted instantiation: image.c:CompositePixelInfoOver
Unexecuted instantiation: paint.c:CompositePixelInfoOver
Unexecuted instantiation: shear.c:CompositePixelInfoOver
Unexecuted instantiation: statistic.c:CompositePixelInfoOver
Unexecuted instantiation: stream.c:CompositePixelInfoOver
Unexecuted instantiation: transform.c:CompositePixelInfoOver
Unexecuted instantiation: caption.c:CompositePixelInfoOver
Unexecuted instantiation: pango.c:CompositePixelInfoOver
Unexecuted instantiation: svg.c:CompositePixelInfoOver
145
146
static inline void CompositePixelInfoPlus(const PixelInfo *p,
147
  const double alpha,const PixelInfo *q,const double beta,PixelInfo *composite)
148
43.1M
{
149
43.1M
  double
150
43.1M
    Da,
151
43.1M
    gamma,
152
43.1M
    Sa;
153
154
  /*
155
    Add two pixels with the given opacities.
156
  */
157
43.1M
  Sa=QuantumScale*alpha;
158
43.1M
  Da=QuantumScale*beta;
159
43.1M
  gamma=RoundToUnity(Sa+Da);  /* 'Plus' blending -- not 'Over' blending */
160
43.1M
  composite->alpha=(double) QuantumRange*RoundToUnity(gamma);
161
43.1M
  gamma=MagickSafeReciprocal(gamma);
162
43.1M
  composite->red=gamma*(Sa*p->red+Da*q->red);
163
43.1M
  composite->green=gamma*(Sa*p->green+Da*q->green);
164
43.1M
  composite->blue=gamma*(Sa*p->blue+Da*q->blue);
165
43.1M
  if (q->colorspace == CMYKColorspace)
166
4.39k
    composite->black=gamma*(Sa*p->black+Da*q->black);
167
43.1M
}
Unexecuted instantiation: annotate.c:CompositePixelInfoPlus
Unexecuted instantiation: attribute.c:CompositePixelInfoPlus
Unexecuted instantiation: cache.c:CompositePixelInfoPlus
Unexecuted instantiation: channel.c:CompositePixelInfoPlus
Unexecuted instantiation: compare.c:CompositePixelInfoPlus
Unexecuted instantiation: composite.c:CompositePixelInfoPlus
Unexecuted instantiation: distort.c:CompositePixelInfoPlus
draw.c:CompositePixelInfoPlus
Line
Count
Source
148
43.1M
{
149
43.1M
  double
150
43.1M
    Da,
151
43.1M
    gamma,
152
43.1M
    Sa;
153
154
  /*
155
    Add two pixels with the given opacities.
156
  */
157
43.1M
  Sa=QuantumScale*alpha;
158
43.1M
  Da=QuantumScale*beta;
159
43.1M
  gamma=RoundToUnity(Sa+Da);  /* 'Plus' blending -- not 'Over' blending */
160
43.1M
  composite->alpha=(double) QuantumRange*RoundToUnity(gamma);
161
43.1M
  gamma=MagickSafeReciprocal(gamma);
162
43.1M
  composite->red=gamma*(Sa*p->red+Da*q->red);
163
43.1M
  composite->green=gamma*(Sa*p->green+Da*q->green);
164
43.1M
  composite->blue=gamma*(Sa*p->blue+Da*q->blue);
165
43.1M
  if (q->colorspace == CMYKColorspace)
166
4.39k
    composite->black=gamma*(Sa*p->black+Da*q->black);
167
43.1M
}
Unexecuted instantiation: enhance.c:CompositePixelInfoPlus
Unexecuted instantiation: feature.c:CompositePixelInfoPlus
Unexecuted instantiation: image.c:CompositePixelInfoPlus
Unexecuted instantiation: paint.c:CompositePixelInfoPlus
Unexecuted instantiation: shear.c:CompositePixelInfoPlus
Unexecuted instantiation: statistic.c:CompositePixelInfoPlus
Unexecuted instantiation: stream.c:CompositePixelInfoPlus
Unexecuted instantiation: transform.c:CompositePixelInfoPlus
Unexecuted instantiation: caption.c:CompositePixelInfoPlus
Unexecuted instantiation: pango.c:CompositePixelInfoPlus
Unexecuted instantiation: svg.c:CompositePixelInfoPlus
168
169
static inline void CompositePixelInfoAreaBlend(const PixelInfo *p,
170
  const double alpha,const PixelInfo *q,const double beta,const double area,
171
  PixelInfo *composite)
172
0
{
173
  /*
174
    Blend pixel colors p and q by the amount given and area.
175
  */
176
0
  CompositePixelInfoPlus(p,(double) (1.0-area)*alpha,q,(double) (area*beta),
177
0
    composite);
178
0
}
Unexecuted instantiation: annotate.c:CompositePixelInfoAreaBlend
Unexecuted instantiation: attribute.c:CompositePixelInfoAreaBlend
Unexecuted instantiation: cache.c:CompositePixelInfoAreaBlend
Unexecuted instantiation: channel.c:CompositePixelInfoAreaBlend
Unexecuted instantiation: compare.c:CompositePixelInfoAreaBlend
Unexecuted instantiation: composite.c:CompositePixelInfoAreaBlend
Unexecuted instantiation: distort.c:CompositePixelInfoAreaBlend
Unexecuted instantiation: draw.c:CompositePixelInfoAreaBlend
Unexecuted instantiation: enhance.c:CompositePixelInfoAreaBlend
Unexecuted instantiation: feature.c:CompositePixelInfoAreaBlend
Unexecuted instantiation: image.c:CompositePixelInfoAreaBlend
Unexecuted instantiation: paint.c:CompositePixelInfoAreaBlend
Unexecuted instantiation: shear.c:CompositePixelInfoAreaBlend
Unexecuted instantiation: statistic.c:CompositePixelInfoAreaBlend
Unexecuted instantiation: stream.c:CompositePixelInfoAreaBlend
Unexecuted instantiation: transform.c:CompositePixelInfoAreaBlend
Unexecuted instantiation: caption.c:CompositePixelInfoAreaBlend
Unexecuted instantiation: pango.c:CompositePixelInfoAreaBlend
Unexecuted instantiation: svg.c:CompositePixelInfoAreaBlend
179
180
static inline void CompositePixelInfoBlend(const PixelInfo *p,
181
  const double alpha,const PixelInfo *q,const double beta,PixelInfo *composite)
182
43.1M
{
183
  /*
184
    Blend pixel colors p and q by the amount given.
185
  */
186
43.1M
  CompositePixelInfoPlus(p,(double) (alpha*p->alpha),q,(double) (beta*q->alpha),
187
43.1M
    composite);
188
43.1M
}
Unexecuted instantiation: annotate.c:CompositePixelInfoBlend
Unexecuted instantiation: attribute.c:CompositePixelInfoBlend
Unexecuted instantiation: cache.c:CompositePixelInfoBlend
Unexecuted instantiation: channel.c:CompositePixelInfoBlend
Unexecuted instantiation: compare.c:CompositePixelInfoBlend
Unexecuted instantiation: composite.c:CompositePixelInfoBlend
Unexecuted instantiation: distort.c:CompositePixelInfoBlend
draw.c:CompositePixelInfoBlend
Line
Count
Source
182
43.1M
{
183
  /*
184
    Blend pixel colors p and q by the amount given.
185
  */
186
43.1M
  CompositePixelInfoPlus(p,(double) (alpha*p->alpha),q,(double) (beta*q->alpha),
187
43.1M
    composite);
188
43.1M
}
Unexecuted instantiation: enhance.c:CompositePixelInfoBlend
Unexecuted instantiation: feature.c:CompositePixelInfoBlend
Unexecuted instantiation: image.c:CompositePixelInfoBlend
Unexecuted instantiation: paint.c:CompositePixelInfoBlend
Unexecuted instantiation: shear.c:CompositePixelInfoBlend
Unexecuted instantiation: statistic.c:CompositePixelInfoBlend
Unexecuted instantiation: stream.c:CompositePixelInfoBlend
Unexecuted instantiation: transform.c:CompositePixelInfoBlend
Unexecuted instantiation: caption.c:CompositePixelInfoBlend
Unexecuted instantiation: pango.c:CompositePixelInfoBlend
Unexecuted instantiation: svg.c:CompositePixelInfoBlend
189
190
static inline void DisableCompositeClampUnlessSpecified(Image *image)
191
0
{
192
0
  if (GetImageArtifact(image,"compose:clamp") == (const char *) NULL)
193
0
    (void) SetImageArtifact(image,"compose:clamp","off");
194
0
}
Unexecuted instantiation: annotate.c:DisableCompositeClampUnlessSpecified
Unexecuted instantiation: attribute.c:DisableCompositeClampUnlessSpecified
Unexecuted instantiation: cache.c:DisableCompositeClampUnlessSpecified
Unexecuted instantiation: channel.c:DisableCompositeClampUnlessSpecified
Unexecuted instantiation: compare.c:DisableCompositeClampUnlessSpecified
Unexecuted instantiation: composite.c:DisableCompositeClampUnlessSpecified
Unexecuted instantiation: distort.c:DisableCompositeClampUnlessSpecified
Unexecuted instantiation: draw.c:DisableCompositeClampUnlessSpecified
Unexecuted instantiation: enhance.c:DisableCompositeClampUnlessSpecified
Unexecuted instantiation: feature.c:DisableCompositeClampUnlessSpecified
Unexecuted instantiation: image.c:DisableCompositeClampUnlessSpecified
Unexecuted instantiation: paint.c:DisableCompositeClampUnlessSpecified
Unexecuted instantiation: shear.c:DisableCompositeClampUnlessSpecified
Unexecuted instantiation: statistic.c:DisableCompositeClampUnlessSpecified
Unexecuted instantiation: stream.c:DisableCompositeClampUnlessSpecified
Unexecuted instantiation: transform.c:DisableCompositeClampUnlessSpecified
Unexecuted instantiation: caption.c:DisableCompositeClampUnlessSpecified
Unexecuted instantiation: pango.c:DisableCompositeClampUnlessSpecified
Unexecuted instantiation: svg.c:DisableCompositeClampUnlessSpecified
195
196
static inline MagickBooleanType GetCompositeClipToSelf(
197
  const CompositeOperator compose)
198
0
{
199
0
  switch (compose)
200
0
  {
201
0
    case ClearCompositeOp:
202
0
    case SrcCompositeOp:
203
0
    case InCompositeOp:
204
0
    case SrcInCompositeOp:
205
0
    case OutCompositeOp:
206
0
    case SrcOutCompositeOp:
207
0
    case DstInCompositeOp:
208
0
    case DstAtopCompositeOp:
209
0
    case CopyAlphaCompositeOp:
210
0
    case ChangeMaskCompositeOp:
211
0
    {
212
0
      return(MagickFalse);
213
0
      break;
214
0
    }
215
0
    default:
216
0
      break;
217
0
  }
218
0
  return(MagickTrue);
219
0
}
Unexecuted instantiation: annotate.c:GetCompositeClipToSelf
Unexecuted instantiation: attribute.c:GetCompositeClipToSelf
Unexecuted instantiation: cache.c:GetCompositeClipToSelf
Unexecuted instantiation: channel.c:GetCompositeClipToSelf
Unexecuted instantiation: compare.c:GetCompositeClipToSelf
Unexecuted instantiation: composite.c:GetCompositeClipToSelf
Unexecuted instantiation: distort.c:GetCompositeClipToSelf
Unexecuted instantiation: draw.c:GetCompositeClipToSelf
Unexecuted instantiation: enhance.c:GetCompositeClipToSelf
Unexecuted instantiation: feature.c:GetCompositeClipToSelf
Unexecuted instantiation: image.c:GetCompositeClipToSelf
Unexecuted instantiation: paint.c:GetCompositeClipToSelf
Unexecuted instantiation: shear.c:GetCompositeClipToSelf
Unexecuted instantiation: statistic.c:GetCompositeClipToSelf
Unexecuted instantiation: stream.c:GetCompositeClipToSelf
Unexecuted instantiation: transform.c:GetCompositeClipToSelf
Unexecuted instantiation: caption.c:GetCompositeClipToSelf
Unexecuted instantiation: pango.c:GetCompositeClipToSelf
Unexecuted instantiation: svg.c:GetCompositeClipToSelf
220
221
#if defined(__cplusplus) || defined(c_plusplus)
222
}
223
#endif
224
225
#endif