Exemple #1
0
int set_avatar(AVATAR *avatar, const uint8_t *data, uint32_t size)
{
    if (size > UTOX_AVATAR_MAX_DATA_LENGTH) {
        debug("Avatars:\t avatar too large\n");
        return 0;
    }

    uint16_t w, h;
    UTOX_NATIVE_IMAGE *image = png_to_image((UTOX_PNG_IMAGE)data, size, &w, &h, 1);
    if(!UTOX_NATIVE_IMAGE_IS_VALID(image)) {
        debug("Avatars:\t avatar is invalid\n");
        return 0;
    } else {

        avatar_free_image(avatar);

        avatar->image = image;
        avatar->width = w;
        avatar->height = h;
        avatar->format = UTOX_AVATAR_FORMAT_PNG;
        tox_hash(avatar->hash, data, size);

        return 1;
    }
}
Exemple #2
0
void friend_recvimage(FRIEND *f, void *pngdata, uint32_t size)
{
    uint16_t width, height;
    void *data = png_to_image(pngdata, &width, &height, size);
    if(!data) {
        return;
    }

    MSG_IMG *msg = malloc(sizeof(MSG_IMG));
    msg->flags = 4;
    msg->w = width;
    msg->h = height;
    msg->zoom = 0;
    msg->data = data;
    msg->position = 0.0;

    message_add(&messages_friend, (void*)msg, &f->msg);
}
Exemple #3
0
void friend_recvimage(FRIEND *f, UTOX_PNG_IMAGE png_image, size_t png_size)
{
    uint16_t width, height;
    UTOX_NATIVE_IMAGE *native_image = png_to_image(png_image, png_size, &width, &height, 0);
    if(!UTOX_NATIVE_IMAGE_IS_VALID(native_image)) {
        return;
    }

    MSG_IMG *msg = malloc(sizeof(MSG_IMG));
    msg->author = 0;
    msg->msg_type = MSG_TYPE_IMAGE;
    msg->w = width;
    msg->h = height;
    msg->zoom = 0;
    msg->image = native_image;
    msg->position = 0.0;

    message_add(&messages_friend, (void*)msg, &f->msg);
}