Coverage Report

Created: 2026-07-20 07:19

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
1.26G
{
38
1.26G
  double
39
1.26G
    Da,
40
1.26G
    Sa;
41
42
1.26G
  Sa=QuantumScale*alpha;
43
1.26G
  Da=QuantumScale*beta;
44
1.26G
  return(Sa*p+Da*q*(1.0-Sa));
45
1.26G
}
annotate.c:MagickOver_
Line
Count
Source
37
915M
{
38
915M
  double
39
915M
    Da,
40
915M
    Sa;
41
42
915M
  Sa=QuantumScale*alpha;
43
915M
  Da=QuantumScale*beta;
44
915M
  return(Sa*p+Da*q*(1.0-Sa));
45
915M
}
Unexecuted instantiation: attribute.c:MagickOver_
cache.c:MagickOver_
Line
Count
Source
37
189M
{
38
189M
  double
39
189M
    Da,
40
189M
    Sa;
41
42
189M
  Sa=QuantumScale*alpha;
43
189M
  Da=QuantumScale*beta;
44
189M
  return(Sa*p+Da*q*(1.0-Sa));
45
189M
}
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
157M
{
38
157M
  double
39
157M
    Da,
40
157M
    Sa;
41
42
157M
  Sa=QuantumScale*alpha;
43
157M
  Da=QuantumScale*beta;
44
157M
  return(Sa*p+Da*q*(1.0-Sa));
45
157M
}
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
449M
{
49
449M
  return(value < 0.0 ? 0.0 : (value > 1.0) ? 1.0 : value);
50
449M
}
annotate.c:RoundToUnity
Line
Count
Source
48
305M
{
49
305M
  return(value < 0.0 ? 0.0 : (value > 1.0) ? 1.0 : value);
50
305M
}
Unexecuted instantiation: attribute.c:RoundToUnity
Unexecuted instantiation: cache.c:RoundToUnity
Unexecuted instantiation: channel.c:RoundToUnity
Unexecuted instantiation: compare.c:RoundToUnity
Unexecuted instantiation: composite.c:RoundToUnity
Unexecuted instantiation: distort.c:RoundToUnity
draw.c:RoundToUnity
Line
Count
Source
48
144M
{
49
144M
  return(value < 0.0 ? 0.0 : (value > 1.0) ? 1.0 : value);
50
144M
}
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
306M
{
55
306M
  double
56
306M
    Da,
57
306M
    gamma,
58
306M
    Sa;
59
60
306M
  ssize_t
61
306M
    i;
62
63
  /*
64
    Compose pixel p over pixel q with the given alpha.
65
  */
66
306M
  Sa=QuantumScale*alpha;
67
306M
  Da=QuantumScale*beta;
68
306M
  gamma=Sa+Da-Sa*Da;
69
306M
  gamma=MagickSafeReciprocal(gamma);
70
1.53G
  for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
71
1.22G
  {
72
1.22G
    PixelChannel
73
1.22G
      channel;
74
75
1.22G
    PixelTrait
76
1.22G
      traits;
77
78
1.22G
    channel=GetPixelChannelChannel(image,i);
79
1.22G
    traits=GetPixelChannelTraits(image,channel);
80
1.22G
    if (traits == UndefinedPixelTrait)
81
0
      continue;
82
1.22G
    switch (channel)
83
1.22G
    {
84
306M
      case RedPixelChannel:
85
306M
      {
86
306M
        composite[i]=ClampToQuantum(gamma*MagickOver_((double) p->red,alpha,
87
306M
          (double) q[i],beta));
88
306M
        break;
89
0
      }
90
306M
      case GreenPixelChannel:
91
306M
      {
92
306M
        composite[i]=ClampToQuantum(gamma*MagickOver_((double) p->green,alpha,
93
306M
          (double) q[i],beta));
94
306M
        break;
95
0
      }
96
306M
      case BluePixelChannel:
97
306M
      {
98
306M
        composite[i]=ClampToQuantum(gamma*MagickOver_((double) p->blue,alpha,
99
306M
          (double) q[i],beta));
100
306M
        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
306M
      case AlphaPixelChannel:
109
306M
      {
110
306M
        composite[i]=ClampToQuantum((double) QuantumRange*
111
306M
          RoundToUnity(Sa+Da-Sa*Da));
112
306M
        break;
113
0
      }
114
465k
      default:
115
465k
      {
116
465k
        composite[i]=q[i];
117
465k
        break;
118
0
      }
119
1.22G
    }
120
1.22G
  }
121
306M
}
annotate.c:CompositePixelOver
Line
Count
Source
54
305M
{
55
305M
  double
56
305M
    Da,
57
305M
    gamma,
58
305M
    Sa;
59
60
305M
  ssize_t
61
305M
    i;
62
63
  /*
64
    Compose pixel p over pixel q with the given alpha.
65
  */
66
305M
  Sa=QuantumScale*alpha;
67
305M
  Da=QuantumScale*beta;
68
305M
  gamma=Sa+Da-Sa*Da;
69
305M
  gamma=MagickSafeReciprocal(gamma);
70
1.52G
  for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
71
1.22G
  {
72
1.22G
    PixelChannel
73
1.22G
      channel;
74
75
1.22G
    PixelTrait
76
1.22G
      traits;
77
78
1.22G
    channel=GetPixelChannelChannel(image,i);
79
1.22G
    traits=GetPixelChannelTraits(image,channel);
80
1.22G
    if (traits == UndefinedPixelTrait)
81
0
      continue;
82
1.22G
    switch (channel)
83
1.22G
    {
84
305M
      case RedPixelChannel:
85
305M
      {
86
305M
        composite[i]=ClampToQuantum(gamma*MagickOver_((double) p->red,alpha,
87
305M
          (double) q[i],beta));
88
305M
        break;
89
0
      }
90
305M
      case GreenPixelChannel:
91
305M
      {
92
305M
        composite[i]=ClampToQuantum(gamma*MagickOver_((double) p->green,alpha,
93
305M
          (double) q[i],beta));
94
305M
        break;
95
0
      }
96
305M
      case BluePixelChannel:
97
305M
      {
98
305M
        composite[i]=ClampToQuantum(gamma*MagickOver_((double) p->blue,alpha,
99
305M
          (double) q[i],beta));
100
305M
        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
305M
      case AlphaPixelChannel:
109
305M
      {
110
305M
        composite[i]=ClampToQuantum((double) QuantumRange*
111
305M
          RoundToUnity(Sa+Da-Sa*Da));
112
305M
        break;
113
0
      }
114
0
      default:
115
0
      {
116
0
        composite[i]=q[i];
117
0
        break;
118
0
      }
119
1.22G
    }
120
1.22G
  }
121
305M
}
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
1.40M
{
55
1.40M
  double
56
1.40M
    Da,
57
1.40M
    gamma,
58
1.40M
    Sa;
59
60
1.40M
  ssize_t
61
1.40M
    i;
62
63
  /*
64
    Compose pixel p over pixel q with the given alpha.
65
  */
66
1.40M
  Sa=QuantumScale*alpha;
67
1.40M
  Da=QuantumScale*beta;
68
1.40M
  gamma=Sa+Da-Sa*Da;
69
1.40M
  gamma=MagickSafeReciprocal(gamma);
70
7.48M
  for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
71
6.07M
  {
72
6.07M
    PixelChannel
73
6.07M
      channel;
74
75
6.07M
    PixelTrait
76
6.07M
      traits;
77
78
6.07M
    channel=GetPixelChannelChannel(image,i);
79
6.07M
    traits=GetPixelChannelTraits(image,channel);
80
6.07M
    if (traits == UndefinedPixelTrait)
81
0
      continue;
82
6.07M
    switch (channel)
83
6.07M
    {
84
1.40M
      case RedPixelChannel:
85
1.40M
      {
86
1.40M
        composite[i]=ClampToQuantum(gamma*MagickOver_((double) p->red,alpha,
87
1.40M
          (double) q[i],beta));
88
1.40M
        break;
89
0
      }
90
1.40M
      case GreenPixelChannel:
91
1.40M
      {
92
1.40M
        composite[i]=ClampToQuantum(gamma*MagickOver_((double) p->green,alpha,
93
1.40M
          (double) q[i],beta));
94
1.40M
        break;
95
0
      }
96
1.40M
      case BluePixelChannel:
97
1.40M
      {
98
1.40M
        composite[i]=ClampToQuantum(gamma*MagickOver_((double) p->blue,alpha,
99
1.40M
          (double) q[i],beta));
100
1.40M
        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
1.40M
      case AlphaPixelChannel:
109
1.40M
      {
110
1.40M
        composite[i]=ClampToQuantum((double) QuantumRange*
111
1.40M
          RoundToUnity(Sa+Da-Sa*Da));
112
1.40M
        break;
113
0
      }
114
465k
      default:
115
465k
      {
116
465k
        composite[i]=q[i];
117
465k
        break;
118
0
      }
119
6.07M
    }
120
6.07M
  }
121
1.40M
}
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.9M
{
126
50.9M
  double
127
50.9M
    Da,
128
50.9M
    gamma,
129
50.9M
    Sa;
130
131
  /*
132
    Compose pixel p over pixel q with the given opacities.
133
  */
134
50.9M
  Sa=QuantumScale*alpha;
135
50.9M
  Da=QuantumScale*beta,
136
50.9M
  gamma=Sa+Da-Sa*Da;
137
50.9M
  composite->alpha=(double) QuantumRange*RoundToUnity(gamma);
138
50.9M
  gamma=MagickSafeReciprocal(gamma);
139
50.9M
  composite->red=gamma*MagickOver_(p->red,alpha,q->red,beta);
140
50.9M
  composite->green=gamma*MagickOver_(p->green,alpha,q->green,beta);
141
50.9M
  composite->blue=gamma*MagickOver_(p->blue,alpha,q->blue,beta);
142
50.9M
  if (q->colorspace == CMYKColorspace)
143
8.95k
    composite->black=gamma*MagickOver_(p->black,alpha,q->black,beta);
144
50.9M
}
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.9M
{
126
50.9M
  double
127
50.9M
    Da,
128
50.9M
    gamma,
129
50.9M
    Sa;
130
131
  /*
132
    Compose pixel p over pixel q with the given opacities.
133
  */
134
50.9M
  Sa=QuantumScale*alpha;
135
50.9M
  Da=QuantumScale*beta,
136
50.9M
  gamma=Sa+Da-Sa*Da;
137
50.9M
  composite->alpha=(double) QuantumRange*RoundToUnity(gamma);
138
50.9M
  gamma=MagickSafeReciprocal(gamma);
139
50.9M
  composite->red=gamma*MagickOver_(p->red,alpha,q->red,beta);
140
50.9M
  composite->green=gamma*MagickOver_(p->green,alpha,q->green,beta);
141
50.9M
  composite->blue=gamma*MagickOver_(p->blue,alpha,q->blue,beta);
142
50.9M
  if (q->colorspace == CMYKColorspace)
143
8.95k
    composite->black=gamma*MagickOver_(p->black,alpha,q->black,beta);
144
50.9M
}
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
46.0M
{
149
46.0M
  double
150
46.0M
    Da,
151
46.0M
    gamma,
152
46.0M
    Sa;
153
154
  /*
155
    Add two pixels with the given opacities.
156
  */
157
46.0M
  Sa=QuantumScale*alpha;
158
46.0M
  Da=QuantumScale*beta;
159
46.0M
  gamma=RoundToUnity(Sa+Da);  /* 'Plus' blending -- not 'Over' blending */
160
46.0M
  composite->alpha=(double) QuantumRange*RoundToUnity(gamma);
161
46.0M
  gamma=MagickSafeReciprocal(gamma);
162
46.0M
  composite->red=gamma*(Sa*p->red+Da*q->red);
163
46.0M
  composite->green=gamma*(Sa*p->green+Da*q->green);
164
46.0M
  composite->blue=gamma*(Sa*p->blue+Da*q->blue);
165
46.0M
  if (q->colorspace == CMYKColorspace)
166
5.12k
    composite->black=gamma*(Sa*p->black+Da*q->black);
167
46.0M
}
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
46.0M
{
149
46.0M
  double
150
46.0M
    Da,
151
46.0M
    gamma,
152
46.0M
    Sa;
153
154
  /*
155
    Add two pixels with the given opacities.
156
  */
157
46.0M
  Sa=QuantumScale*alpha;
158
46.0M
  Da=QuantumScale*beta;
159
46.0M
  gamma=RoundToUnity(Sa+Da);  /* 'Plus' blending -- not 'Over' blending */
160
46.0M
  composite->alpha=(double) QuantumRange*RoundToUnity(gamma);
161
46.0M
  gamma=MagickSafeReciprocal(gamma);
162
46.0M
  composite->red=gamma*(Sa*p->red+Da*q->red);
163
46.0M
  composite->green=gamma*(Sa*p->green+Da*q->green);
164
46.0M
  composite->blue=gamma*(Sa*p->blue+Da*q->blue);
165
46.0M
  if (q->colorspace == CMYKColorspace)
166
5.12k
    composite->black=gamma*(Sa*p->black+Da*q->black);
167
46.0M
}
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
46.0M
{
183
  /*
184
    Blend pixel colors p and q by the amount given.
185
  */
186
46.0M
  CompositePixelInfoPlus(p,(double) (alpha*p->alpha),q,(double) (beta*q->alpha),
187
46.0M
    composite);
188
46.0M
}
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
46.0M
{
183
  /*
184
    Blend pixel colors p and q by the amount given.
185
  */
186
46.0M
  CompositePixelInfoPlus(p,(double) (alpha*p->alpha),q,(double) (beta*q->alpha),
187
46.0M
    composite);
188
46.0M
}
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