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
#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.
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 125 126 |
# File 'ext/mask.c', line 99
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
#coeff ⇒ Array
Retrieve the two-dimensional array of coefficients for the mask.
229 230 231 232 233 234 235 236 237 238 |
# File 'ext/mask.c', line 229
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);
}
|
#int? ⇒ Boolean
Indicate whether all coefficients, the scale and the offset in the mask are integers. Some methods require an all-integer mask.
248 249 250 251 252 253 254 255 256 257 |
# File 'ext/mask.c', line 248
static VALUE
mask_int_p(VALUE obj)
{
vipsMask *msk;
Data_Get_Struct(obj, vipsMask, msk);
if(msk->imask)
return Qtrue;
return Qfalse;
}
|
#offset ⇒ Numeric
Retrieve the offset of the mask.
180 181 182 183 184 185 186 |
# File 'ext/mask.c', line 180
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);
}
|
#scale ⇒ Numeric
Retrieve the scale of the mask.
165 166 167 168 169 170 171 |
# File 'ext/mask.c', line 165
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);
}
|
#int? ⇒ Boolean
Create a one-band, band format :DOUBLE image based on mask self.
304 305 306 307 308 309 310 311 312 313 314 315 316 |
# File 'ext/mask.c', line 304
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;
}
|
#xsize ⇒ Numeric
Retrieve the number of columns in the mask.
135 136 137 138 139 140 141 |
# File 'ext/mask.c', line 135
static VALUE
mask_xsize(VALUE obj)
{
vipsMask *msk;
Data_Get_Struct(obj, vipsMask, msk);
return INT2FIX(msk->dmask->xsize);
}
|
#ysize ⇒ Numeric
Retrieve the number of rows in the mask.
150 151 152 153 154 155 156 |
# File 'ext/mask.c', line 150
static VALUE
mask_ysize(VALUE obj)
{
vipsMask *msk;
Data_Get_Struct(obj, vipsMask, msk);
return INT2FIX(msk->dmask->ysize);
}
|