mirror of
https://github.com/ruby-opencv/ruby-opencv
synced 2023-03-27 23:22:12 -04:00
fixed a bug of CvFont (about italic font setting), added CvFont#italic and its tests
This commit is contained in:
parent
2ed3220989
commit
908d208ea9
3 changed files with 16 additions and 2 deletions
|
@ -65,6 +65,7 @@ define_ruby_class()
|
|||
rb_define_method(rb_klass, "shear", RUBY_METHOD_FUNC(rb_shear), 0);
|
||||
rb_define_method(rb_klass, "thickness", RUBY_METHOD_FUNC(rb_thickness), 0);
|
||||
rb_define_method(rb_klass, "line_type", RUBY_METHOD_FUNC(rb_line_type), 0);
|
||||
rb_define_method(rb_klass, "italic", RUBY_METHOD_FUNC(rb_italic), 0);
|
||||
}
|
||||
|
||||
VALUE
|
||||
|
@ -175,5 +176,11 @@ rb_line_type(VALUE self)
|
|||
return INT2FIX(CVFONT(self)->line_type);
|
||||
}
|
||||
|
||||
VALUE
|
||||
rb_italic(VALUE self)
|
||||
{
|
||||
return ((CVFONT(self)->font_face & CV_FONT_ITALIC) > 0) ? Qtrue : Qfalse;
|
||||
}
|
||||
|
||||
__NAMESPACE_END_CVFONT
|
||||
__NAMESPACE_END_OPENCV
|
||||
|
|
|
@ -19,7 +19,7 @@ __NAMESPACE_BEGIN_OPENCV
|
|||
__NAMESPACE_BEGIN_CVFONT
|
||||
|
||||
#define FONT_OPTION(op) NIL_P(op) ? rb_const_get(rb_class(), rb_intern("FONT_OPTION")) : rb_funcall(rb_const_get(rb_class(), rb_intern("FONT_OPTION")), rb_intern("merge"), 1, font_option)
|
||||
#define FO_ITALIC(op) ({VALUE _italic = rb_hash_aref(op, ID2SYM(rb_intern("italic"))); NIL_P(_italic) ? 0 : _italic == Qfalse ? 0 : 1;})
|
||||
#define FO_ITALIC(op) ({VALUE _italic = rb_hash_aref(op, ID2SYM(rb_intern("italic"))); NIL_P(_italic) ? 0 : _italic == Qfalse ? 0 : CV_FONT_ITALIC;})
|
||||
#define FO_HSCALE(op) NUM2DBL(rb_hash_aref(op, ID2SYM(rb_intern("hscale"))))
|
||||
#define FO_VSCALE(op) NUM2DBL(rb_hash_aref(op, ID2SYM(rb_intern("vscale"))))
|
||||
#define FO_SHEAR(op) NUM2DBL(rb_hash_aref(op, ID2SYM(rb_intern("shear"))))
|
||||
|
@ -40,6 +40,7 @@ VALUE rb_vscale(VALUE self);
|
|||
VALUE rb_shear(VALUE self);
|
||||
VALUE rb_thickness(VALUE self);
|
||||
VALUE rb_line_type(VALUE self);
|
||||
VALUE rb_italic(VALUE self);
|
||||
|
||||
__NAMESPACE_END_CVFONT
|
||||
|
||||
|
|
|
@ -34,15 +34,21 @@ class TestCvFont < OpenCVTestCase
|
|||
assert_equal(0, font.shear)
|
||||
assert_equal(1, font.thickness)
|
||||
assert_equal(8, font.line_type)
|
||||
assert(!font.italic)
|
||||
|
||||
font = CvFont.new(:plain, :hscale => 2.5, :vscale => 3.5,
|
||||
:shear => 0.5, :thickness => 3, :line_type => 2)
|
||||
:shear => 0.5, :thickness => 3, :line_type => 2, :italic => false)
|
||||
assert_equal(1, font.face)
|
||||
assert_equal(2.5, font.hscale)
|
||||
assert_equal(3.5, font.vscale)
|
||||
assert_equal(0.5, font.shear)
|
||||
assert_equal(3, font.thickness)
|
||||
assert_equal(2, font.line_type)
|
||||
assert(!font.italic)
|
||||
|
||||
font = CvFont.new(:simplex, :italic => true)
|
||||
assert_equal(16, font.face)
|
||||
assert(font.italic)
|
||||
|
||||
assert_raise(ArgumentError) {
|
||||
CvFont.new(:foo)
|
||||
|
|
Loading…
Add table
Reference in a new issue