EomImage

## EomImage EomImage |

## Synopsis

    enum                EomImageData;
    #define             EOM_IMAGE_DATA_ALL
    enum                EomImageError;
    #define             EOM_IMAGE_ERROR
    enum                EomImageStatus;
                        EomImage;
    GQuark              eom_image_error_quark               (void);
    EomImage *          eom_image_new                       (const char *txt_uri);
    EomImage *          eom_image_new_file                  (GFile *file);
    gboolean            eom_image_load                      (EomImage *img,
                                                             EomImageData data2read,
                                                             EomJob *job,
                                                             GError **error);
    void                eom_image_cancel_load               (EomImage *img);
    gboolean            eom_image_has_data                  (EomImage *img,
                                                             EomImageData data);
    void                eom_image_data_ref                  (EomImage *img);
    void                eom_image_data_unref                (EomImage *img);
    void                eom_image_set_thumbnail             (EomImage *img,
                                                             GdkPixbuf *pixbuf);
    gboolean            eom_image_save_as_by_info           (EomImage *img,
                                                             EomImageSaveInfo *source,
                                                             EomImageSaveInfo *target,
                                                             GError **error);
    gboolean            eom_image_save_by_info              (EomImage *img,
                                                             EomImageSaveInfo *source,
                                                             GError **error);
    GdkPixbuf *         eom_image_get_pixbuf                (EomImage *img);
    GdkPixbuf *         eom_image_get_thumbnail             (EomImage *img);
    void                eom_image_get_size                  (EomImage *img,
                                                             gint *width,
                                                             gint *height);
    goffset             eom_image_get_bytes                 (EomImage *img);
    gboolean            eom_image_is_modified               (EomImage *img);
    void                eom_image_modified                  (EomImage *img);
    const gchar *       eom_image_get_caption               (EomImage *img);
    const gchar *       eom_image_get_collate_key           (EomImage *img);
    ExifData *          eom_image_get_exif_info             (EomImage *img);
    gpointer            eom_image_get_xmp_info              (EomImage *img);
    GFile *             eom_image_get_file                  (EomImage *img);
    gchar *             eom_image_get_uri_for_display       (EomImage *img);
    EomImageStatus      eom_image_get_status                (EomImage *img);
    void                eom_image_transform                 (EomImage *img,
                                                             EomTransform *trans,
                                                             EomJob *job);
    void                eom_image_autorotate                (EomImage *img);
    cmsHPROFILE         eom_image_get_profile               (EomImage *img);
    void                eom_image_apply_display_profile     (EomImage *img,
                                                             cmsHPROFILE display_profile);
    void                eom_image_undo                      (EomImage *img);
    GList *             eom_image_get_supported_mime_types  (void);
    gboolean            eom_image_is_supported_mime_type    (const char *mime_type);
    void                eom_image_file_changed              (EomImage *img);
    gboolean            eom_image_is_file_changed           (EomImage *img);
    EomImageMetadataStatus eom_image_get_metadata_status    (EomImage *img);
    RsvgHandle *        eom_image_get_svg                   (EomImage *img);
    EomTransform *      eom_image_get_transform             (EomImage *img);
    gboolean            eom_image_is_animation              (EomImage *img);
    gboolean            eom_image_is_svg                    (EomImage *img);
    gboolean            eom_image_start_animation           (EomImage *img);

## Object Hierarchy

      GObject
       +----EomImage

## Signals

      "changed"                                        : Run Last
      "file-changed"                                   : Run Last
      "next-frame"                                     : Run Last
      "save-progress"                                  : Run Last
      "size-prepared"                                  : Run Last
      "thumbnail-changed"                              : Run Last

## Description

## Details

### enum EomImageData

    typedef enum {
    	EOM_IMAGE_DATA_IMAGE     = 1 << 0,
    	EOM_IMAGE_DATA_DIMENSION = 1 << 1,
    	EOM_IMAGE_DATA_EXIF      = 1 << 2,
    	EOM_IMAGE_DATA_XMP       = 1 << 3
    } EomImageData;

`EOM_IMAGE_DATA_IMAGE` |
`EOM_IMAGE_DATA_DIMENSION` |
`EOM_IMAGE_DATA_EXIF` |
`EOM_IMAGE_DATA_XMP` |

### EOM_IMAGE_DATA_ALL

    #define             EOM_IMAGE_DATA_ALL

### enum EomImageError

    typedef enum {
    	EOM_IMAGE_ERROR_SAVE_NOT_LOCAL,
    	EOM_IMAGE_ERROR_NOT_LOADED,
    	EOM_IMAGE_ERROR_VFS,
    	EOM_IMAGE_ERROR_FILE_EXISTS,
    	EOM_IMAGE_ERROR_TMP_FILE_FAILED,
    	EOM_IMAGE_ERROR_GENERIC,
    	EOM_IMAGE_ERROR_UNKNOWN
    } EomImageError;

`EOM_IMAGE_ERROR_SAVE_NOT_LOCAL` |
`EOM_IMAGE_ERROR_NOT_LOADED` |
`EOM_IMAGE_ERROR_VFS` |
`EOM_IMAGE_ERROR_FILE_EXISTS` |
`EOM_IMAGE_ERROR_TMP_FILE_FAILED` |
`EOM_IMAGE_ERROR_GENERIC` |
`EOM_IMAGE_ERROR_UNKNOWN` |

### EOM_IMAGE_ERROR

    #define EOM_IMAGE_ERROR eom_image_error_quark ()

### enum EomImageStatus

    typedef enum {
    	EOM_IMAGE_STATUS_UNKNOWN,
    	EOM_IMAGE_STATUS_LOADING,
    	EOM_IMAGE_STATUS_LOADED,
    	EOM_IMAGE_STATUS_SAVING,
    	EOM_IMAGE_STATUS_FAILED
    } EomImageStatus;

`EOM_IMAGE_STATUS_UNKNOWN` |
`EOM_IMAGE_STATUS_LOADING` |
`EOM_IMAGE_STATUS_LOADED` |
`EOM_IMAGE_STATUS_SAVING` |
`EOM_IMAGE_STATUS_FAILED` |

### EomImage

    typedef struct _EomImage EomImage;

### eom_image_error_quark ()

    GQuark              eom_image_error_quark               (void);

### eom_image_new ()

    EomImage *          eom_image_new                       (const char *txt_uri);

### eom_image_new_file ()

    EomImage *          eom_image_new_file                  (GFile *file);

### eom_image_load ()

    gboolean            eom_image_load                      (EomImage *img,
                                                             EomImageData data2read,
                                                             EomJob *job,
                                                             GError **error);

### eom_image_cancel_load ()

    void                eom_image_cancel_load               (EomImage *img);

### eom_image_has_data ()

    gboolean            eom_image_has_data                  (EomImage *img,
                                                             EomImageData data);

### eom_image_data_ref ()

    void                eom_image_data_ref                  (EomImage *img);

### eom_image_data_unref ()

    void                eom_image_data_unref                (EomImage *img);

### eom_image_set_thumbnail ()

    void                eom_image_set_thumbnail             (EomImage *img,
                                                             GdkPixbuf *pixbuf);

### eom_image_save_as_by_info ()

    gboolean            eom_image_save_as_by_info           (EomImage *img,
                                                             EomImageSaveInfo *source,
                                                             EomImageSaveInfo *target,
                                                             GError **error);

### eom_image_save_by_info ()

    gboolean            eom_image_save_by_info              (EomImage *img,
                                                             EomImageSaveInfo *source,
                                                             GError **error);

### eom_image_get_pixbuf ()

    GdkPixbuf *         eom_image_get_pixbuf                (EomImage *img);

Gets the GdkPixbuf of the image

`img` : | a EomImage
Returns : | a GdkPixbuf. [transfer full]

### eom_image_get_thumbnail ()

    GdkPixbuf *         eom_image_get_thumbnail             (EomImage *img);

Gets the thumbnail pixbuf for `img`

`img` : | a EomImage
Returns : | a GdkPixbuf with a thumbnail. [transfer full]

### eom_image_get_size ()

    void                eom_image_get_size                  (EomImage *img,
                                                             gint *width,
                                                             gint *height);

### eom_image_get_bytes ()

    goffset             eom_image_get_bytes                 (EomImage *img);

### eom_image_is_modified ()

    gboolean            eom_image_is_modified               (EomImage *img);

### eom_image_modified ()

    void                eom_image_modified                  (EomImage *img);

### eom_image_get_caption ()

    const gchar *       eom_image_get_caption               (EomImage *img);

### eom_image_get_collate_key ()

    const gchar *       eom_image_get_collate_key           (EomImage *img);

### eom_image_get_exif_info ()

    ExifData *          eom_image_get_exif_info             (EomImage *img);

### eom_image_get_xmp_info ()

    gpointer            eom_image_get_xmp_info              (EomImage *img);

Gets the XMP info for `img` or NULL if compiled without libexempi support.

`img` : | a EomImage
Returns : | the xmp data. [transfer full]

### eom_image_get_file ()

    GFile *             eom_image_get_file                  (EomImage *img);

Gets the GFile associated with `img`

`img` : | a EomImage
Returns : | a GFile. [transfer full]

### eom_image_get_uri_for_display ()

    gchar *             eom_image_get_uri_for_display       (EomImage *img);

### eom_image_get_status ()

    EomImageStatus      eom_image_get_status                (EomImage *img);

### eom_image_transform ()

    void                eom_image_transform                 (EomImage *img,
                                                             EomTransform *trans,
                                                             EomJob *job);

### eom_image_autorotate ()

    void                eom_image_autorotate                (EomImage *img);

### eom_image_get_profile ()

    cmsHPROFILE         eom_image_get_profile               (EomImage *img);

### eom_image_apply_display_profile ()

    void                eom_image_apply_display_profile     (EomImage *img,
                                                             cmsHPROFILE display_profile);

### eom_image_undo ()

    void                eom_image_undo                      (EomImage *img);

### eom_image_get_supported_mime_types ()

    GList *             eom_image_get_supported_mime_types  (void);

Gets the list of supported mimetypes

Returns : | a GList of supported mimetypes. [transfer none][element-type utf8]

### eom_image_is_supported_mime_type ()

    gboolean            eom_image_is_supported_mime_type    (const char *mime_type);

### eom_image_file_changed ()

    void                eom_image_file_changed              (EomImage *img);

Marks the image files contents as changed. Also, emits EomImage::file-changed signal

`img` : | a EomImage

### eom_image_is_file_changed ()

    gboolean            eom_image_is_file_changed           (EomImage *img);

### eom_image_get_metadata_status ()

    EomImageMetadataStatus eom_image_get_metadata_status    (EomImage *img);

Returns the current status of the image metadata, that is, whether the metadata has not been read yet, is ready, or not available at all.

`img` : | a EomImage
Returns : | one of EomImageMetadataStatus

### eom_image_get_svg ()

    RsvgHandle *        eom_image_get_svg                   (EomImage *img);

### eom_image_get_transform ()

    EomTransform *      eom_image_get_transform             (EomImage *img);

### eom_image_is_animation ()

    gboolean            eom_image_is_animation              (EomImage *img);

Checks whether a given image is animated.

`img` : | a EomImage
Returns : | TRUE if it is an animated image, FALSE otherwise.

### eom_image_is_svg ()

    gboolean            eom_image_is_svg                    (EomImage *img);

### eom_image_start_animation ()

    gboolean            eom_image_start_animation           (EomImage *img);

Starts playing an animated image.

`img` : | a EomImage
Returns : | `TRUE` on success, `FALSE` if `img` is already playing or isn't an animated image.

## Signal Details

### The `"changed"` signal

    void                user_function                      (EomImage *eomimage,
                                                            gpointer  user_data)      : Run Last

`eomimage` : | the object which received the signal.
`user_data` : | user data set when the signal handler was connected.

### The `"file-changed"` signal

    void                user_function                      (EomImage *eomimage,
                                                            gpointer  user_data)      : Run Last

`eomimage` : | the object which received the signal.
`user_data` : | user data set when the signal handler was connected.

### The `"next-frame"` signal

    void                user_function                      (EomImage *img,
                                                            gint      delay,
                                                            gpointer  user_data)      : Run Last

The ::next-frame signal will be emitted each time an animated image advances to the next frame.

`img` : | the object which received the signal.
`delay` : | number of milliseconds the current frame will be displayed.
`user_data` : | user data set when the signal handler was connected.

### The `"save-progress"` signal

    void                user_function                      (EomImage *eomimage,
                                                            gfloat    arg1,
                                                            gpointer  user_data)      : Run Last

`eomimage` : | the object which received the signal.
`user_data` : | user data set when the signal handler was connected.

### The `"size-prepared"` signal

    void                user_function                      (EomImage *eomimage,
                                                            gint      arg1,
                                                            gint      arg2,
                                                            gpointer  user_data)      : Run Last

`eomimage` : | the object which received the signal.
`user_data` : | user data set when the signal handler was connected.

### The `"thumbnail-changed"` signal

    void                user_function                      (EomImage *eomimage,
                                                            gpointer  user_data)      : Run Last

`eomimage` : | the object which received the signal.
`user_data` : | user data set when the signal handler was connected.