Guys,

I want to use evas to resize an image file. I'm using the attached program, but it's saving a black rectangle instead of the resized image. Can someone point me what I'm doing wrong?

Thanks.

--
Rafael Fonseca
ProFUSION embedded systems
http://www.profusion.mobi
#include <limits.h>
#include <Evas.h>
#include <Ecore_Evas.h>

int
main(int argc, char *argv[])
{
    int namelen, w, h, error;
    Evas *e;
    Ecore_Evas *ee;
    Evas_Object *img;
    char name[PATH_MAX], *ext;

    if (argc < 2) {
        fprintf(stderr, "Usage: %s <image>\n", argv[0]);
        return 1;
    }

    if (!ecore_evas_init()) {
        fprintf(stderr, "Could not init ecore-evas\n");
        return 1;
    }

    ee = ecore_evas_buffer_new(480, 800);
    if (!ee) {
        fprintf(stderr, "Could not create an ecore-evas\n");
        return 1;
    }

    e = ecore_evas_get(ee);
    if (!e) {
        fprintf(stderr, "Could not get evas\n");
        return 1;
    }

    img = evas_object_image_add(e);
    if (!img) {
        fprintf(stderr, "Could not add image obj\n");
        return -1;
    }
    evas_object_image_file_set(img, argv[1], NULL);
    error = evas_object_image_load_error_get(img);
    if (error != EVAS_LOAD_ERROR_NONE) {
        fprintf(stderr, "could not load image %s\n", argv[1]);
        return -2;
    }
    evas_object_image_fill_set(img, 0, 0, 480, 800);

    evas_object_image_size_get(img, &w, &h);
    printf("Original size: %d x %d\n", w, h);
    if ((w <= 0) || (h <= 0))
        return -3;

    namelen = strlen(argv[1]);
    ext = argv[1] + namelen - 4;
    memcpy(name, argv[1], namelen - 4);
    sprintf(name + namelen - 4, "_resized%s", ext);

    /* This size set call is destroying my image buffer */
    evas_object_image_size_set(img, 480, 800);

    if (!evas_object_image_save(img, name, NULL, NULL))
        fprintf(stderr, "Could not save image %s\n", name);

    evas_object_del(img);
    ecore_evas_free(ee);
    ecore_evas_shutdown();

    return 0;
}
------------------------------------------------------------------------------

_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to