## transform

transform

## Synopsis

                        VipsTransformation;
    void                vips__transform_init                (VipsTransformation *trn);
    int                 vips__transform_calc_inverse        (VipsTransformation *trn);
    int                 vips__transform_isidentity          (const VipsTransformation *trn);
    int                 vips__transform_add                 (const VipsTransformation *in1,
                                                             const VipsTransformation *in2,
                                                             VipsTransformation *out);
    void                vips__transform_print               (const VipsTransformation *trn);
    void                vips__transform_forward_point       (const VipsTransformation *trn,
                                                             const double x,
                                                             const double y,
                                                             double *ox,
                                                             double *oy);
    void                vips__transform_invert_point        (const VipsTransformation *trn,
                                                             const double x,
                                                             const double y,
                                                             double *ox,
                                                             double *oy);
    void                vips__transform_forward_rect        (const VipsTransformation *trn,
                                                             const VipsRect *in,
                                                             VipsRect *out);
    void                vips__transform_invert_rect         (const VipsTransformation *trn,
                                                             const VipsRect *in,
                                                             VipsRect *out);
    void                vips__transform_set_area            (VipsTransformation *Param1);
    int                 vips__affine                        (VipsImage *in,
                                                             VipsImage *out,
                                                             VipsTransformation *trn);

## Description

## Details

### VipsTransformation

    typedef struct {
    	/* Area of input we can use. This can be smaller than the real input
    	 * image: we expand the input to add extra pixels for interpolation.
    	 */
    	VipsRect iarea;

    	/* The area of the output we've been asked to generate. left/top can
    	 * be negative.
    	 */
    	VipsRect oarea;

    	/* The transform.
    	 */
    	double a, b, c, d;
    	double idx, idy;
    	double odx, ody;

    	double ia, ib, ic, id;		/* Inverse of matrix abcd */
    } VipsTransformation;

### vips__transform_init ()

    void                vips__transform_init                (VipsTransformation *trn);

### vips__transform_calc_inverse ()

    int                 vips__transform_calc_inverse        (VipsTransformation *trn);

### vips__transform_isidentity ()

    int                 vips__transform_isidentity          (const VipsTransformation *trn);

### vips__transform_add ()

    int                 vips__transform_add                 (const VipsTransformation *in1,
                                                             const VipsTransformation *in2,
                                                             VipsTransformation *out);

### vips__transform_print ()

    void                vips__transform_print               (const VipsTransformation *trn);

### vips__transform_forward_point ()

    void                vips__transform_forward_point       (const VipsTransformation *trn,
                                                             const double x,
                                                             const double y,
                                                             double *ox,
                                                             double *oy);

### vips__transform_invert_point ()

    void                vips__transform_invert_point        (const VipsTransformation *trn,
                                                             const double x,
                                                             const double y,
                                                             double *ox,
                                                             double *oy);

### vips__transform_forward_rect ()

    void                vips__transform_forward_rect        (const VipsTransformation *trn,
                                                             const VipsRect *in,
                                                             VipsRect *out);

### vips__transform_invert_rect ()

    void                vips__transform_invert_rect         (const VipsTransformation *trn,
                                                             const VipsRect *in,
                                                             VipsRect *out);

### vips__transform_set_area ()

    void                vips__transform_set_area            (VipsTransformation *Param1);

### vips__affine ()

    int                 vips__affine                        (VipsImage *in,
                                                             VipsImage *out,
                                                             VipsTransformation *trn);