打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
用libjpeg库生成jpeg文件(灰度)
    用libjpeg库生成jpeg文件(灰度)

jpeg代码,buffer是传入的位图,每个点一个字节的亮度,顺序排列


C代码
int mkjpeg(int width,int height,char *buffer,char *filename)
{
struct jpeg_compress_struct jcs;
struct jpeg_error_mgr jem;
FILE *fp;
JSAMPROW row_pointer[1]; // 一行位图
int row_stride; // 每一行的字节数

jcs.err = jpeg_std_error(&jem);
jpeg_create_compress(&jcs);

fp = fopen(filename,"wb");
if (f==NULL)
{
return FALSE;
}
jpeg_stdio_dest(&jcs, fp);

jcs.image_width = width; // 位图的宽和高,单位为像素
jcs.image_height = height;
jcs.input_components = 1; // 在此为1,表示灰度图, 如果是彩色位图,则为3
jcs.in_color_space = JCS_GRAYSCALE;//JCS_GRAYSCALE表示灰度图,JCS_RGB表示彩色图像

jpeg_set_defaults(&jcs);
jpeg_set_quality (&jcs, 80, TRUE);

jpeg_start_compress(&jcs, TRUE);

while (jcs.next_scanline < jcs.image_height)
{
row_pointer[0] = buffer[jcs.next_scanline * width];
jpeg_write_scanlines(&jcs, row_pointer, 1);
}

jpeg_finish_compress(&jcs);

jpeg_destroy_compress(&jcs);
fclose(fp);

return TRUE;
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
jpeglib使用指南
framebuffer显示JPEG图片
快速压缩jpeg
惊艳 ! 睡美人,美爆了!
libjpeg学习4:libjpeg
如何使用jpeglib库压缩yuv422?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服