基于libjpeg库实现JPEG图片解码代码实现(代码普适性强)

本文档介绍了如何利用libjpeg库来实现JPEG图片的解码过程,基于example.c进行代码扩展。虽然没有详细讲述解码原理,但提供了具体的代码实现,适用于各种JPEG解码需求。
摘要由CSDN通过智能技术生成

准备工作同上篇一致。JPEG压缩

基于libjpeg中的example.c进行扩展编写

解码原理及实现后续会进行介绍

代码部分:

#include <afxwin.h>
#include <setjmp.h>
extern "C" {
#include "jpeglib.h"
#include "jmorecfg.h"
#include "jconfig.h"
}


struct my_error_mgr {
struct jpeg_error_mgr pub; /* "public" fields */


jmp_buf setjmp_buffer; /* for return to caller */
};


typedef struct                       /**** BMP file header structure ****/
{
unsigned int   bfSize;           /* Size of file */
unsigned short bfReserved1;      /* Reserved */
unsigned short bfReserved2;      /* ... */
unsigned int   bfOffBits;        /* Offset to bitmap data */
} BITMAPFILEHEADER1;


typedef struct                       /**** BMP file info structure ****/
{
unsigned int   biSize;           /* Size of info header */
int            biWidth;          /* Width of image */
int            biHeight;         /* Height of image */
unsigned short biPlanes;         /* Number of color planes */
unsigned short biBitCount;       /* Number of bits per pixel */
unsigned int   biCompression;    /* Type of compression to use */
unsigned int   biSizeImage;      /* Size of image data */
int            biXPelsPerMeter;  /* X pixels per meter */
int            biYPelsPerMeter;  /* Y pixels per meter */
unsigned int   biClrUsed;        /* Number of colors used */
unsigned int   biClrImportant;   /* Number of important colors */
} BITMAPINFOHEADER1;


typedef struct tagRGBQUAD1{
BYTE rgbBlue;//蓝色的亮度(值范围为0-255)  
BYTE rgbGreen;//绿色的亮度(值范围为0-255)  
BYTE rgbRed;//红色的亮度(值范围为0-255)  
BYTE rgbReserved;//保留,必须为0  
}RGBQUAD1;


typedef struct my_error_mgr * my_err
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值