加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 如何将XImage保存为PNG格式的base64字符串?

发布时间:2020-12-16 06:56:52 所属栏目:百科 来源:网络整理
导读:我正在使用Ubuntu Linux和C开发. 我将桌面图像捕获到了XImage. 如何将XImage保存为PNG格式的base64字符串? 解决方法 这是一个将XImage数据转换为jpeg图像的C函数: void write_jpeg( FILE *outfile,int width,int height,unsigned char *rgb,int quality){
我正在使用Ubuntu Linux和C开发.

我将桌面图像捕获到了XImage.

如何将XImage保存为PNG格式的base64字符串?

解决方法

这是一个将XImage数据转换为jpeg图像的C函数:

void write_jpeg( FILE *outfile,int width,int height,unsigned char *rgb,int quality)
{
    struct jpeg_compress_struct cinfo;
    struct jpeg_error_mgr jerr;
    JSAMPROW scanline[1];
    cinfo.err = jpeg_std_error(&jerr);
    jpeg_create_compress(&cinfo);
    jpeg_stdio_dest(&cinfo,outfile);
    cinfo.image_width = width;
    cinfo.image_height = height;
    cinfo.input_components = 3;
    cinfo.in_color_space = JCS_RGB;
    jpeg_set_defaults(&cinfo);
    jpeg_set_quality(&cinfo,quality,TRUE);
    jpeg_start_compress(&cinfo,TRUE);
    while (cinfo.next_scanline < (unsigned int) height)
    {
        scanline[0] = rgb + 3 * width * cinfo.next_scanline;
        jpeg_write_scanlines(&cinfo,scanline,1);
    }
    jpeg_finish_compress(&cinfo);
    jpeg_destroy_compress(&cinfo);
}

我相信你可以轻松地将其融入您的代码中.您只需使用适当的库来保存PNG文件(而不是jpeg文件).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读