⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cdjpeg.h

📁 jpeg 压缩/解压缩库,是Intel 在ijg基础上改进的libjpeg,encode/decode是ijg的速度的2倍以上。
💻 H
字号:
/* * cdjpeg.h * * Copyright (C) 1994-1997, Thomas G. Lane. * This file is part of the Independent JPEG Group's software. * For conditions of distribution and use, see the accompanying README file. * * This file contains common declarations for the sample applications * cjpeg and djpeg.  It is NOT used by the core JPEG library. */#define JPEG_CJPEG_DJPEG  /* define proper options in jconfig.h */#define JPEG_INTERNAL_OPTIONS /* cjpeg.c,djpeg.c need to see xxx_SUPPORTED */#include "jinclude.h"#include "jpeglib.h"#include "jerror.h"   /* get library error codes too */#include "cderror.h"    /* get application-specific error codes *//* * Object interface for cjpeg's source file decoding modules */typedef struct cjpeg_source_struct * cjpeg_source_ptr;struct cjpeg_source_struct {  JMETHOD(void, start_input, (j_compress_ptr cinfo,            cjpeg_source_ptr sinfo));  JMETHOD(JDIMENSION, get_pixel_rows, (j_compress_ptr cinfo,               cjpeg_source_ptr sinfo));  JMETHOD(void, finish_input, (j_compress_ptr cinfo,             cjpeg_source_ptr sinfo));  FILE *input_file;  JSAMPARRAY buffer;  JDIMENSION buffer_height;};/* * Object interface for djpeg's output file encoding modules */typedef struct djpeg_dest_struct * djpeg_dest_ptr;struct djpeg_dest_struct {  /* start_output is called after jpeg_start_decompress finishes.   * The color map will be ready at this time, if one is needed.   */  JMETHOD(void, start_output, (j_decompress_ptr cinfo,             djpeg_dest_ptr dinfo));  /* Emit the specified number of pixel rows from the buffer. */  JMETHOD(void, put_pixel_rows, (j_decompress_ptr cinfo,         djpeg_dest_ptr dinfo,         JDIMENSION rows_supplied));  /* Finish up at the end of the image. */  JMETHOD(void, finish_output, (j_decompress_ptr cinfo,        djpeg_dest_ptr dinfo));  /* Target file spec; filled in by djpeg.c after object is created. */  FILE * output_file;  /* Output pixel-row buffer.  Created by module init or start_output.   * Width is cinfo->output_width * cinfo->output_components;   * height is buffer_height.   */  JSAMPARRAY buffer;  JDIMENSION buffer_height;};/* * cjpeg/djpeg may need to perform extra passes to convert to or from * the source/destination file format.  The JPEG library does not know * about these passes, but we'd like them to be counted by the progress * monitor.  We use an expanded progress monitor object to hold the * additional pass count. */struct cdjpeg_progress_mgr {  struct jpeg_progress_mgr pub; /* fields known to JPEG library */  int completed_extra_passes; /* extra passes completed */  int total_extra_passes; /* total extra */  /* last printed percentage stored here to avoid multiple printouts */  int percent_done;};typedef struct cdjpeg_progress_mgr * cd_progress_ptr;/* Short forms of external names for systems with brain-damaged linkers. */#ifdef NEED_SHORT_EXTERNAL_NAMES#define jinit_read_bmp    jIRdBMP#define jinit_write_bmp   jIWrBMP#define jinit_read_gif    jIRdGIF#define jinit_write_gif   jIWrGIF#define jinit_read_ppm    jIRdPPM#define jinit_write_ppm   jIWrPPM#define jinit_read_rle    jIRdRLE#define jinit_write_rle   jIWrRLE#define jinit_read_targa  jIRdTarga#define jinit_write_targa jIWrTarga#define read_quant_tables RdQTables#define read_scan_script  RdScnScript#define set_quant_slots   SetQSlots#define set_sample_factors  SetSFacts#define read_color_map    RdCMap#define enable_signal_catcher EnSigCatcher#define start_progress_monitor  StProgMon#define end_progress_monitor  EnProgMon#define read_stdin    RdStdin#define write_stdout    WrStdout#endif /* NEED_SHORT_EXTERNAL_NAMES *//* Module selection routines for I/O modules. */EXTERN(cjpeg_source_ptr) jinit_read_bmp JPP((j_compress_ptr cinfo));EXTERN(djpeg_dest_ptr) jinit_write_bmp JPP((j_decompress_ptr cinfo,              boolean is_os2));EXTERN(cjpeg_source_ptr) jinit_read_gif JPP((j_compress_ptr cinfo));EXTERN(djpeg_dest_ptr) jinit_write_gif JPP((j_decompress_ptr cinfo));EXTERN(cjpeg_source_ptr) jinit_read_ppm JPP((j_compress_ptr cinfo));EXTERN(djpeg_dest_ptr) jinit_write_ppm JPP((j_decompress_ptr cinfo));EXTERN(cjpeg_source_ptr) jinit_read_rle JPP((j_compress_ptr cinfo));EXTERN(djpeg_dest_ptr) jinit_write_rle JPP((j_decompress_ptr cinfo));EXTERN(cjpeg_source_ptr) jinit_read_targa JPP((j_compress_ptr cinfo));EXTERN(djpeg_dest_ptr) jinit_write_targa JPP((j_decompress_ptr cinfo));/* cjpeg support routines (in rdswitch.c) */EXTERN(boolean) read_quant_tables JPP((j_compress_ptr cinfo, char * filename,            int scale_factor, boolean force_baseline));EXTERN(boolean) read_scan_script JPP((j_compress_ptr cinfo, char * filename));EXTERN(boolean) set_quant_slots JPP((j_compress_ptr cinfo, char *arg));EXTERN(boolean) set_sample_factors JPP((j_compress_ptr cinfo, char *arg));/* djpeg support routines (in rdcolmap.c) */EXTERN(void) read_color_map JPP((j_decompress_ptr cinfo, FILE * infile));/* common support routines (in cdjpeg.c) */EXTERN(void) enable_signal_catcher JPP((j_common_ptr cinfo));EXTERN(void) start_progress_monitor JPP((j_common_ptr cinfo,           cd_progress_ptr progress));EXTERN(void) end_progress_monitor JPP((j_common_ptr cinfo));EXTERN(boolean) keymatch JPP((char * arg, const char * keyword, int minchars));EXTERN(FILE *) read_stdin JPP((void));EXTERN(FILE *) write_stdout JPP((void));/* miscellaneous useful macros */#ifdef DONT_USE_B_MODE    /* define mode parameters for fopen() */#define READ_BINARY "r"#define WRITE_BINARY  "w"#else#ifdef VMS      /* VMS is very nonstandard */#define READ_BINARY "rb", "ctx=stm"#define WRITE_BINARY  "wb", "ctx=stm"#else       /* standard ANSI-compliant case */#define READ_BINARY "rb"#define WRITE_BINARY  "wb"#endif#endif#ifndef EXIT_FAILURE    /* define exit() codes if not provided */#define EXIT_FAILURE  1#endif#ifndef EXIT_SUCCESS#ifdef VMS#define EXIT_SUCCESS  1   /* VMS is very nonstandard */#else#define EXIT_SUCCESS  0#endif#endif#ifndef EXIT_WARNING#ifdef VMS#define EXIT_WARNING  1   /* VMS is very nonstandard */#else#define EXIT_WARNING  2#endif#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -