static int rank_image_vec( im_object *argv ) { im_imagevec_object *iv = (im_imagevec_object *) argv[0]; int index = *((int *) argv[2]); return( im_rank_image( iv->vec, argv[1], iv->n, index ) ); }
VALUE img_rank_image_internal(int argc, VALUE *argv, VALUE obj, int index) { vipsImg *im_t; IMAGE **ins; int i; GetImg(obj, data, im); OutImg(obj, new, data_new, im_new); ins = IM_ARRAY(im_new, argc + 1, IMAGE*); ins[0] = im; for (i = 0; i < argc; i++) { img_add_dep(data_new, argv[i]); Data_Get_Struct(argv[i], vipsImg, im_t); ins[i + 1] = im_t->in; } if (im_rank_image(ins, im_new, argc + 1, index)) vips_lib_error(); return new; }