91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 4KB
    文件類型: .c
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-16
  • 語言: C/C++
  • 標簽: jpeg??libjpeg??c??簡單??

資源簡介

純C語言+libjpeg實現最簡單jpeg圖片解碼顯示程序

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?

#include?
#include?
#include?
#include?
#include?

#include?
#include?
#include?
#include?


void?write_lcd(char?*p_lcd?unsigned?char?*bmp_buffer
int?width?int?height?int?pixel_size?struct?fb_var_screeninfo?*vinfo);

void?usage(const?char?*name)
{
fprintf(stderr?“Usage:?%s?\n“?name);
exit(1);
}

unsigned?long?read_image_from_file(int?fd?unsigned?char?*jpg_buffer?unsigned?long?jpg_size)
{
unsigned?long?nread?=?0;
unsigned?long?total?=?0;

while(jpg_size?>?0)
{
nread?=?read(fd?jpg_buffer?jpg_size);

jpg_size?-=?nread;
jpg_buffer?+=?nread;
total?+=?nread;
}
close(fd);

return?total;
}

int?Stat(const?char?*filename?struct?stat?*file_info)
{
int?ret?=?stat(filename?file_info);

if(ret?==?-1)
{
fprintf(stderr?“[%d]:?stat?failed:?%s\n“?__LINE__?strerror(errno));
exit(1);
}

return?ret;
}

int?Open(const?char?*filename?int?mode)
{
int?fd?=?open(filename?mode);
if(fd?==?-1)
{
fprintf(stderr?“[%d]:?open?failed:?%s\n“?__LINE__?strerror(errno));
exit(1);
}

return?fd;
}

int?main(int?argc?char?**argv)
{
if(argc?!=?2)
{
usage(argv[0]);
}

struct?stat?file_info;
unsigned?char?*jpg_buffer;

//?聲明解壓縮結構體,以及錯誤管理結構體
struct?jpeg_decompress_struct?cinfo;
struct?jpeg_error_mgr?jerr;

unsigned?long?bmp_size;
unsigned?char?*bmp_buffer;

//?讀取圖片文件屬性信息,并根據其大小分配內存緩沖區
Stat(argv[1]?&file_info);
int?fd?=?Open(argv[1]?O_RDONLY);

jpg_buffer?=?(unsigned?char?*)calloc(1?file_info.st_size);
read_image_from_file(fd?jpg_buffer?file_info.st_size);


//?使用缺省的出錯處理來初始化解壓縮結構體
cinfo.err?=?jpeg_std_error(&jerr);
jpeg_create_decompress(&cinfo);

//?配置該cinfo,使其從jpg_buffer中讀取jpg_size個字節
//?這些數據必須是完整的JPEG數據

評論

共有 條評論