ssize_t
count,
+ rescale_intercept,
+ rescale_slope,
scene,
window_center,
y;
max_value=255UL;
mask=0xffff;
number_scenes=1;
+ rescale_intercept=0;
+ rescale_slope=1;
samples_per_pixel=1;
scale=(Quantum *) NULL;
sequence=MagickFalse;
window_width=StringToUnsignedLong((char *) data);
break;
}
+ case 0x1052:
+ {
+ /*
+ Rescale intercept
+ */
+ if (data != (unsigned char *) NULL)
+ rescale_intercept=(ssize_t) StringToLong((char *) data);
+ break;
+ }
+ case 0x1053:
+ {
+ /*
+ Rescale slope
+ */
+ if (data != (unsigned char *) NULL)
+ rescale_slope=(ssize_t) StringToLong((char *) data);
+ break;
+ }
case 0x1200:
case 0x3006:
{
else
pixel_value=ReadDCMShort(stream_info,image);
if (polarity != MagickFalse)
- pixel_value=max_value-pixel_value;
+ pixel_value=(int)max_value-pixel_value;
}
else
{
}
i++;
}
- index=pixel_value;
+ index=(pixel_value*rescale_slope)+rescale_intercept;
if (window_width == 0)
{
if (signed_data == 1)
- index=pixel_value-32767;
+ index-=32767;
}
else
{
(window_width-1.0)/2.0-0.5);
window_max=(ssize_t) floor((double) window_center+
(window_width-1.0)/2.0+0.5);
- if ((ssize_t) pixel_value <= window_min)
+ if ((ssize_t)index <= window_min)
index=0;
else
- if ((ssize_t) pixel_value > window_max)
+ if ((ssize_t)index > window_max)
index=(int) max_value;
else
- index=(int) (max_value*(((pixel_value-window_center-
+ index=(int) (max_value*(((index-window_center-
0.5)/(window_width-1))+0.5));
}
index&=mask;
}
i++;
}
- index=pixel_value;
+ index=(pixel_value*rescale_slope)+rescale_intercept;
if (window_width == 0)
{
if (signed_data == 1)
- index=pixel_value-32767;
+ index-=32767;
}
else
{
(window_width-1.0)/2.0-0.5);
window_max=(ssize_t) floor((double) window_center+
(window_width-1.0)/2.0+0.5);
- if ((ssize_t) pixel_value <= window_min)
+ if ((ssize_t)index <= window_min)
index=0;
else
- if ((ssize_t) pixel_value > window_max)
+ if ((ssize_t)index > window_max)
index=(int) max_value;
else
- index=(int) (max_value*(((pixel_value-window_center-
+ index=(int) (max_value*(((index-window_center-
0.5)/(window_width-1))+0.5));
}
index&=mask;