C - 将GIF转换为JPG

时间:2010-10-17 10:09:44

标签: c gif jpeg

我需要使用C编程语言将GIF图像转换为Jpeg图像。我搜索了网络,但我没有找到一个可以帮助我的例子。任何建议都表示赞赏!

编辑:我想使用像SDL这样的跨平台开源库来实现这一目标。

3 个答案:

答案 0 :(得分:5)

试用GDImageMagick图书馆

答案 1 :(得分:1)

我发现libafterimage非常简单易用。 在此代码段中,我还将图片缩放到最多width或最多height,同时保留方面:

#include <libAfterImage/afterimage.h>



int convert_image_to_jpeg_of_size(const char* infile, const char* outfile, const double max_width, const double max_height)
{
    ASImage*  im;
    ASVisual* asv;
    ASImage*  scaled_im;
    double    height;
    double    width;
    double    pixelzoom;
    double    proportion;

    im = file2ASImage(infile, 0xFFFFFFFF, SCREEN_GAMMA, 0, ".", NULL);

    if (!im) {

        return 1;
    }

    proportion = (double)im->width / (double)im->height;

    asv = create_asvisual(NULL, 0, 0, NULL);

    if (proportion > 1) {
            /* Oblong. */
        width = max_width;
        pixelzoom = max_width / im->width;
        height = (double)im->height * pixelzoom;
    } else {
        height = max_height;
        pixelzoom = max_height / im->height;
        width = (double)im->width * pixelzoom;
    }

    scaled_im = scale_asimage(asv, im, width, height, ASA_ASImage, 0, ASIMAGE_QUALITY_DEFAULT);

        /* writing result into the file */
    ASImage2file(scaled_im, NULL, outfile, ASIT_Jpeg, NULL);
    destroy_asimage(&scaled_im);
    destroy_asimage(&im);

    return 0;
}

答案 2 :(得分:0)

不是最容易使用的,但最快的方法几乎肯定是使用来自ffmpeg的libavcodec / libavformat。