Method: Magick::Image#normalize_channel
- Defined in:
- ext/RMagick/rmimage.cpp
#normalize_channel(channel = Magick::AllChannels) ⇒ Magick::Image #normalize_channel(*channels) ⇒ Magick::Image
Enhances the contrast of a color image by adjusting the pixel color to span the entire range of colors available. Only the specified channels are normalized.
10008 10009 10010 10011 10012 10013 10014 10015 10016 10017 10018 10019 10020 10021 10022 10023 10024 10025 10026 10027 10028 10029 10030 10031 10032 10033 10034 10035 10036 10037 10038 10039 10040 10041 10042 |
# File 'ext/RMagick/rmimage.cpp', line 10008
VALUE
Image_normalize_channel(int argc, VALUE *argv, VALUE self)
{
Image *image, *new_image;
ChannelType channels;
#if defined(IMAGEMAGICK_7)
ExceptionInfo *exception;
#endif
image = rm_check_destroyed(self);
channels = extract_channels(&argc, argv);
// Ensure all arguments consumed.
if (argc > 0)
{
raise_ChannelType_error(argv[argc-1]);
}
new_image = rm_clone_image(image);
#if defined(IMAGEMAGICK_7)
exception = AcquireExceptionInfo();
BEGIN_CHANNEL_MASK(new_image, channels);
GVL_STRUCT_TYPE(NormalizeImage) args = { new_image, exception };
CALL_FUNC_WITHOUT_GVL(GVL_FUNC(NormalizeImage), &args);
END_CHANNEL_MASK(new_image);
rm_check_exception(exception, new_image, DestroyOnError);
DestroyExceptionInfo(exception);
#else
GVL_STRUCT_TYPE(NormalizeImageChannel) args = { new_image, channels };
CALL_FUNC_WITHOUT_GVL(GVL_FUNC(NormalizeImageChannel), &args);
rm_check_image_exception(new_image, DestroyOnError);
#endif
return rm_image_new(new_image);
}
|