Class: Cairo::ImageSurface
- Defined in:
- ext/cairo/rb_cairo_surface.c
Class Method Summary collapse
Instance Method Summary collapse
- #data ⇒ Object
- #format ⇒ Object
- #height ⇒ Object
- #initialize ⇒ Object constructor
- #stride ⇒ Object
- #width ⇒ Object
Methods inherited from Surface
#clone, #content, #copy_page, #create_similar, #create_similar_image, #destroy, #device, #device_offset, #dup, #fallback_resolution, #finish, #flush, #font_options, #get_mime_data, gl_supported?, gl_texture_supported?, image_supported?, #map_to_image, #mark_dirty, pdf_supported?, ps_supported?, quartz_image_supported?, quartz_supported?, recording_supported?, script_supported?, #set_device_offset, #set_fallback_resolution, #set_mime_data, #show_page, #sub_rectangle_surface, supported?, #supported_mime_type?, svg_supported?, tee_supported?, #unmap_image, win32_printing_supported?, win32_supported?, #write_to_png, xml_supported?
Constructor Details
#initialize ⇒ Object
949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 |
# File 'ext/cairo/rb_cairo_surface.c', line 949
static VALUE
cr_image_surface_initialize (int argc, VALUE *argv, VALUE self)
{
cairo_surface_t *surface;
VALUE arg1, arg2, arg3, arg4, arg5;
int n;
n = rb_scan_args (argc, argv, "23", &arg1, &arg2, &arg3, &arg4, &arg5);
if (n == 2)
surface = cr_image_surface_create (self, Qnil, arg1, arg2);
else if (n == 3)
surface = cr_image_surface_create (self, arg1, arg2, arg3);
else if (n == 5)
surface =
cr_image_surface_create_for_data (self, arg1, arg2, arg3, arg4, arg5);
else
rb_raise (rb_eArgError,
"invalid argument (expect "
"(width, height) or "
"(format, width, height) or "
"(data, format, width, height, stride)): %s",
rb_cairo__inspect (rb_ary_new3 (4, arg1, arg2, arg3, arg4)));
cr_surface_check_status (surface);
DATA_PTR (self) = surface;
if (rb_block_given_p ())
yield_and_finish (self);
return Qnil;
}
|
Class Method Details
.from_png ⇒ Object
904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 |
# File 'ext/cairo/rb_cairo_surface.c', line 904
static VALUE
cr_image_surface_create_from_png_generic (VALUE klass, VALUE target)
{
VALUE rb_surface;
cairo_surface_t *surface;
if (rb_respond_to (target, rb_cairo__io_id_read))
surface = cr_image_surface_create_from_png_stream (target);
else
surface = cr_image_surface_create_from_png (target);
cr_surface_check_status (surface);
rb_surface = cr_surface_allocate (klass);
DATA_PTR (rb_surface) = surface;
return rb_surface;
}
|
Instance Method Details
#data ⇒ Object
980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 |
# File 'ext/cairo/rb_cairo_surface.c', line 980
static VALUE
cr_image_surface_get_data (VALUE self)
{
unsigned char *data;
cairo_surface_t *surface;
surface = _SELF;
data = cairo_image_surface_get_data (surface);
if (data)
return rb_str_new ((const char *)data,
cairo_image_surface_get_stride (surface) *
cairo_image_surface_get_height (surface));
else
return Qnil;
}
|
#format ⇒ Object
997 998 999 1000 1001 |
# File 'ext/cairo/rb_cairo_surface.c', line 997
static VALUE
cr_image_surface_get_format (VALUE self)
{
return INT2NUM (cairo_image_surface_get_format (_SELF));
}
|
#height ⇒ Object
1009 1010 1011 1012 1013 |
# File 'ext/cairo/rb_cairo_surface.c', line 1009
static VALUE
cr_image_surface_get_height (VALUE self)
{
return INT2NUM (cairo_image_surface_get_height (_SELF));
}
|
#stride ⇒ Object
1015 1016 1017 1018 1019 |
# File 'ext/cairo/rb_cairo_surface.c', line 1015
static VALUE
cr_image_surface_get_stride (VALUE self)
{
return INT2NUM (cairo_image_surface_get_stride (_SELF));
}
|
#width ⇒ Object
1003 1004 1005 1006 1007 |
# File 'ext/cairo/rb_cairo_surface.c', line 1003
static VALUE
cr_image_surface_get_width (VALUE self)
{
return INT2NUM (cairo_image_surface_get_width (_SELF));
}
|