我需要使用C编程语言将GIF图像转换为Jpeg图像。我搜索了网络,但我没有找到一个可以帮助我的例子。任何建议都表示赞赏!
编辑:我想使用像SDL这样的跨平台开源库来实现这一目标。答案 0 :(得分:5)
试用GD或ImageMagick图书馆
答案 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。