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

📄 loader.h

📁 linux下开源图片codec
💻 H
字号:
#include "list.h"#ifdef USE_X11# include <X11/Intrinsic.h>#endifenum ida_extype {    EXTRA_COMMENT = 1,    EXTRA_EXIF    = 2,};struct ida_extra {    enum ida_extype   type;    unsigned char     *data;    unsigned int      size;    struct ida_extra  *next;};/* image data and metadata */struct ida_image_info {    unsigned int      width;    unsigned int      height;    unsigned int      dpi;    unsigned int      npages;    struct ida_extra  *extra;    int               thumbnail;    unsigned int      real_width;    unsigned int      real_height;};struct ida_image {    struct ida_image_info  i;    unsigned char          *data;};struct ida_rect {    int x1,y1,x2,y2;};/* load image files */struct ida_loader {    char  *magic;    int   moff;    int   mlen;    char  *name;    void* (*init)(FILE *fp, char *filename, unsigned int page,		  struct ida_image_info *i, int thumbnail);    void  (*read)(unsigned char *dst, unsigned int line, void *data);    void  (*done)(void *data);    struct list_head list;};/* filter + operations */struct ida_op {    char  *name;    void* (*init)(struct ida_image *src, struct ida_rect *rect,		  struct ida_image_info *i, void *parm);    void  (*work)(struct ida_image *src, struct ida_rect *rect,		  unsigned char *dst, int line,		  void *data);    void  (*done)(void *data);};void* op_none_init(struct ida_image *src, struct ida_rect *rect,		   struct ida_image_info *i, void *parm);void  op_none_done(void *data);void  op_free_done(void *data);#ifdef USE_X11/* save image files */struct ida_writer {    char  *label;    char  *ext[8];    int   (*write)(FILE *fp, struct ida_image *img);    int   (*conf)(Widget widget, struct ida_image *img);    struct list_head list;};#endif/* ----------------------------------------------------------------------- *//* resolution                                                              */#define res_cm_to_inch(x) ((x * 2540 + 5) / 1000)#define res_m_to_inch(x)  ((x * 2540 + 5) / 100000)#define res_inch_to_m(x)  ((x * 100000 + 5) / 2540)/* ----------------------------------------------------------------------- *//* helpers */void load_bits_lsb(unsigned char *dst, unsigned char *src, int width,		   int on, int off);void load_bits_msb(unsigned char *dst, unsigned char *src, int width,		   int on, int off);void load_gray(unsigned char *dst, unsigned char *src, int width);void load_graya(unsigned char *dst, unsigned char *src, int width);void load_rgba(unsigned char *dst, unsigned char *src, int width);int load_add_extra(struct ida_image_info *info, enum ida_extype type,		   unsigned char *data, unsigned int size);struct ida_extra* load_find_extra(struct ida_image_info *info,				  enum ida_extype type);int load_free_extras(struct ida_image_info *info);/* ----------------------------------------------------------------------- *//* other */extern int debug;extern struct ida_loader ppm_loader;extern struct ida_loader sane_loader;extern struct ida_writer ps_writer;extern struct ida_writer jpeg_writer;/* lists */#define __init __attribute__ ((constructor))#define __fini __attribute__ ((destructor))extern struct list_head loaders;extern struct list_head writers;void load_register(struct ida_loader *loader);void write_register(struct ida_writer *writer);

⌨️ 快捷键说明

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