Class: VIPS::Mask
- Inherits:
-
Object
- Object
- VIPS::Mask
- Defined in:
- ext/mask.c
Instance Method Summary collapse
-
#coeff ⇒ Array
Retrieve the two-dimensional array of coefficients for the mask.
-
#new(coeffs, scale = 1, offset = 0) ⇒ Object
constructor
Create a new Mask object.
-
#int? ⇒ Boolean
Indicate whether all coefficients, the scale and the offset in the mask are integers.
-
#offset ⇒ Numeric
Retrieve the offset of the mask.
-
#scale ⇒ Numeric
Retrieve the scale of the mask.
-
#int? ⇒ Boolean
Create a one-band, band format :DOUBLE image based on mask self.
-
#xsize ⇒ Numeric
Retrieve the number of columns in the mask.
-
#ysize ⇒ Numeric
Retrieve the number of rows in the mask.
Constructor Details
permalink #new(coeffs, scale = 1, offset = 0) ⇒ Object
Create a new Mask object. coeffs is a two-dimensional array where every row must have the same length. Note that some methods require a mask where all values in coeffs are whole integers.
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
# File 'ext/mask.c', line 97
static VALUE
mask_initialize(int argc, VALUE *argv, VALUE obj)
{
VALUE coeffs, scale, offset;
vipsMask *msk;
Data_Get_Struct(obj, vipsMask, msk);
rb_scan_args(argc, argv, "12", &coeffs, &scale, &offset);
if (NIL_P(scale))
scale = INT2NUM(1);
if (NIL_P(offset))
offset = INT2NUM(0);
if(TYPE(scale) == T_FIXNUM && TYPE(offset) == T_FIXNUM &&
ary_is_int_2d(coeffs)) {
msk->imask = mask_ary2imask(coeffs);
msk->imask->scale = NUM2INT(scale);
msk->imask->offset = NUM2INT(offset);
}
msk->dmask = mask_ary2dmask(coeffs);
msk->dmask->scale = NUM2DBL(scale);
msk->dmask->offset = NUM2DBL(offset);
return obj;
}
|
Instance Method Details
permalink #coeff ⇒ Array
Retrieve the two-dimensional array of coefficients for the mask.
227 228 229 230 231 232 233 234 235 236 |
# File 'ext/mask.c', line 227
static VALUE
mask_coeff(VALUE obj)
{
vipsMask *msk;
Data_Get_Struct(obj, vipsMask, msk);
if(msk->imask)
return imask2rb(msk->imask);
else
return dmask2rb(msk->dmask);
}
|
permalink #int? ⇒ Boolean
Indicate whether all coefficients, the scale and the offset in the mask are integers. Some methods require an all-integer mask.
246 247 248 249 250 251 252 253 254 255 |
# File 'ext/mask.c', line 246
static VALUE
mask_int_p(VALUE obj)
{
vipsMask *msk;
Data_Get_Struct(obj, vipsMask, msk);
if(msk->imask)
return Qtrue;
return Qfalse;
}
|
permalink #offset ⇒ Numeric
Retrieve the offset of the mask.
178 179 180 181 182 183 184 |
# File 'ext/mask.c', line 178
static VALUE
mask_offset(VALUE obj)
{
vipsMask *msk;
Data_Get_Struct(obj, vipsMask, msk);
return msk->imask ? INT2FIX(msk->imask->offset) : DBL2NUM(msk->dmask->offset);
}
|
permalink #scale ⇒ Numeric
Retrieve the scale of the mask.
163 164 165 166 167 168 169 |
# File 'ext/mask.c', line 163
static VALUE
mask_scale(VALUE obj)
{
vipsMask *msk;
Data_Get_Struct(obj, vipsMask, msk);
return msk->imask ? INT2FIX(msk->imask->scale) : DBL2NUM(msk->dmask->scale);
}
|
permalink #int? ⇒ Boolean
Create a one-band, band format :DOUBLE image based on mask self.
302 303 304 305 306 307 308 309 310 311 312 313 314 |
# File 'ext/mask.c', line 302
static VALUE
mask_to_image(VALUE obj)
{
vipsMask *msk;
OutImg(obj, new, data, im);
Data_Get_Struct(obj, vipsMask, msk);
if (im_mask2vips(msk->dmask, im))
vips_lib_error();
return new;
}
|
permalink #xsize ⇒ Numeric
Retrieve the number of columns in the mask.
133 134 135 136 137 138 139 |
# File 'ext/mask.c', line 133
static VALUE
mask_xsize(VALUE obj)
{
vipsMask *msk;
Data_Get_Struct(obj, vipsMask, msk);
return INT2FIX(msk->dmask->xsize);
}
|
permalink #ysize ⇒ Numeric
Retrieve the number of rows in the mask.
148 149 150 151 152 153 154 |
# File 'ext/mask.c', line 148
static VALUE
mask_ysize(VALUE obj)
{
vipsMask *msk;
Data_Get_Struct(obj, vipsMask, msk);
return INT2FIX(msk->dmask->ysize);
}
|