Class: Magick::KernelInfo

Inherits:
Object
  • Object
show all
Defined in:
ext/RMagick/rmmain.c

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(kernel_string) ⇒ Object

KernelInfo object constructor

Ruby usage:

- @verbatim KernelInfo#initialize @endverbatim

Parameters:

  • self

    this object

  • kernel_string

    kernel info string representation to be parsed



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'ext/RMagick/rmkinfo.c', line 52

VALUE
KernelInfo_initialize(VALUE self, VALUE kernel_string)
{
    KernelInfo *kernel;

    Check_Type(kernel_string, T_STRING);

    kernel = AcquireKernelInfo(StringValueCStr(kernel_string));

    if (!kernel)
    {
        rb_raise(rb_eRuntimeError, "failed to parse kernel string");
    }

    DATA_PTR(self) = kernel;

    return self;
}

Class Method Details

.builtin(what, geometry) ⇒ Object

Create new instance of KernelInfo with one of the ‘named’ built-in types of kernels used for special purposes such as gaussian blurring, skeleton pruning, and edge distance determination.

Ruby usage:

- @verbatim KernelInfo.builtin(kernel, geometry = nil) @endverbatim

Parameters:

  • geometry

    geometry to pass to default kernel

Returns:

  • KernelInfo instance



249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
# File 'ext/RMagick/rmkinfo.c', line 249

VALUE
KernelInfo_builtin(VALUE self, VALUE what, VALUE geometry)
{
    KernelInfo *kernel;
    KernelInfoType kernel_type;
    GeometryInfo info;

    Check_Type(geometry, T_STRING);
    VALUE_TO_ENUM(what, kernel_type, KernelInfoType);
    ParseGeometry(StringValueCStr(geometry), &info);

    kernel = AcquireKernelBuiltIn(kernel_type, &info);

    if (!kernel)
    {
        rb_raise(rb_eRuntimeError, "failed to acquire builtin kernel");
    }

    return Data_Wrap_Struct(self, NULL, rm_kernel_info_destroy, kernel);
}

Instance Method Details

#cloneObject

Creates a new clone of the object so that its can be modified without effecting the original.

Ruby usage:

- @verbatim KernelInfo#clone @endverbatim

Parameters:

  • self

    this object

Returns:

  • new KernelInfo instance



192
193
194
195
196
197
# File 'ext/RMagick/rmkinfo.c', line 192

VALUE
KernelInfo_clone(VALUE self)
{
    KernelInfo *kernel = CloneKernelInfo((KernelInfo*)DATA_PTR(self));
    return Data_Wrap_Struct(Class_KernelInfo, NULL, rm_kernel_info_destroy, kernel);
}

#dupObject

Creates a new clone of the object so that its can be modified without effecting the original.

Ruby usage:

- @verbatim KernelInfo#clone @endverbatim

Parameters:

  • self

    this object

Returns:

  • new KernelInfo instance



192
193
194
195
196
197
# File 'ext/RMagick/rmkinfo.c', line 192

VALUE
KernelInfo_clone(VALUE self)
{
    KernelInfo *kernel = CloneKernelInfo((KernelInfo*)DATA_PTR(self));
    return Data_Wrap_Struct(Class_KernelInfo, NULL, rm_kernel_info_destroy, kernel);
}

#scale(scale, flags) ⇒ Object



148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
# File 'ext/RMagick/rmkinfo.c', line 148

VALUE
KernelInfo_scale(VALUE self, VALUE scale, VALUE flags)
{
    GeometryFlags geoflags;

    if (!FIXNUM_P(scale))
        Check_Type(scale, T_FLOAT);

    if (rb_obj_is_instance_of(flags, Class_GeometryFlags))
        VALUE_TO_ENUM(flags, geoflags, GeometryFlags);
    else
        rb_raise(rb_eArgError, "expected Integer or Magick::GeometryFlags to specify flags");

    ScaleKernelInfo((KernelInfo*)DATA_PTR(self), NUM2DBL(scale), geoflags);
    return Qnil;
}

#scale_geometry(geometry) ⇒ Object

Takes a geometry argument string, typically provided as a “-set option:convolve:scale geometry” user setting, and modifies the kernel according to the parsed arguments of that setting.

Ruby usage:

- @verbatim KernelInfo#scale_geometry(geometry) @endverbatim

Parameters:

  • geometry

    geometry string to parse and apply

  • self

    this object



175
176
177
178
179
180
181
# File 'ext/RMagick/rmkinfo.c', line 175

VALUE
KernelInfo_scale_geometry(VALUE self, VALUE geometry)
{
    Check_Type(geometry, T_STRING);
    ScaleGeometryKernelInfo((KernelInfo*)DATA_PTR(self), StringValueCStr(geometry));
    return Qnil;
}

#showObject

Deprecated.

This method has been deprecated.

Dumps KernelInfo object to stderr

Ruby usage:

- @verbatim KernelInfo#show @endverbatim

Parameters:

  • self

    this object



124
125
126
127
128
129
130
# File 'ext/RMagick/rmkinfo.c', line 124

VALUE
KernelInfo_show(VALUE self)
{
    rb_warning("KernelInfo#show is deprecated");
    ShowKernelInfo((KernelInfo*)DATA_PTR(self));
    return Qnil;
}

#unity_add(scale) ⇒ Object



105
106
107
108
109
110
111
112
113
# File 'ext/RMagick/rmkinfo.c', line 105

VALUE
KernelInfo_unity_add(VALUE self, VALUE scale)
{
    if (!FIXNUM_P(scale))
        Check_Type(scale, T_FLOAT);

    UnityAddKernelInfo((KernelInfo*)DATA_PTR(self), NUM2DBL(scale));
    return Qnil;
}

#zero_nansObject



84
85
86
87
88
89
90
# File 'ext/RMagick/rmkinfo.c', line 84

VALUE
KernelInfo_zero_nans(VALUE self)
{
    rb_warning("KernelInfo#zero_nans is deprecated");
    ZeroKernelNans((KernelInfo*)DATA_PTR(self));
    return Qnil;
}