00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00060 #ifndef DKBIF_H_INCLUDED
00061 #define DKBIF_H_INCLUDED 1
00062
00063 #include <stdio.h>
00064 #include "dk.h"
00065 #include "dkstream.h"
00066 #include "dkapp.h"
00067
00068
00069
00072 typedef void *dk_bif_ptr;
00073
00076 typedef void *dk_bif_frame_ptr;
00077
00078
00079
00082 typedef unsigned dk_bif_sof_t;
00083
00084
00085
00088 typedef struct {
00089
00090 FILE *inputfile;
00091
00092 int is_jfif;
00093 dk_stream_t *os;
00094 dk_app_t *a;
00095 unsigned char vers_major;
00096 unsigned char vers_minor;
00097 unsigned char dpi_setting;
00098 unsigned char bpc;
00099 unsigned char components;
00100 unsigned char adobe_marker_found;
00101 unsigned width;
00102 unsigned height;
00103 unsigned xres;
00104 unsigned yres;
00105 dk_bif_sof_t used_sofs;
00106 unsigned long n_sofs;
00107 unsigned long n_images;
00108 } dk_bif_jfif_analyze_t;
00109
00110 #if defined(EXTERN)
00111 #undef EXTERN
00112 #endif
00113 #if DKBIF_C
00114 #define EXTERN
00115 #else
00116 #if DK_HAVE_PROTOTYPES
00117 #define EXTERN
00118 #else
00119 #define EXTERN extern
00120 #endif
00121 #endif
00122 #if defined(__cplusplus)
00123 extern "C" {
00124 #endif
00125
00126
00127
00133 EXTERN int
00134 dkbif_can_handle_name DK_PR((char *n));
00135
00136
00137
00144 EXTERN dk_bif_ptr
00145 dkbif_open DK_PR((void));
00146
00147
00148
00152 EXTERN void
00153 dkbif_close DK_PR((dk_bif_ptr i));
00154
00155
00156
00164 EXTERN int
00165 dkbif_get_type DK_PR((char *n));
00166
00167
00168
00173 EXTERN int
00174 dkbif_can_handle DK_PR((int s));
00175
00176
00177
00187 EXTERN void
00188 dkbif_set_width_height_sufficient DK_PR((dk_bif_ptr i, int f));
00189
00190
00191
00205 EXTERN int
00206 dkbif_read_header DK_PR((\
00207 dk_bif_ptr i, FILE *f, char *n, int s, char *t));
00208
00209
00210
00218 EXTERN int
00219 dkbif_read_data DK_PR((dk_bif_ptr i, FILE *f));
00220
00221
00222
00227 EXTERN unsigned long
00228 dkbif_number_of_frames DK_PR((dk_bif_ptr i));
00229
00230
00231
00240 EXTERN int
00241 dkbif_set_frame DK_PR((dk_bif_ptr i, unsigned long f));
00242
00243
00244
00253 EXTERN int
00254 dkbif_get_channels DK_PR((dk_bif_ptr i));
00255
00256
00257
00262 EXTERN unsigned long
00263 dkbif_get_width DK_PR((dk_bif_ptr i));
00264
00265
00266
00271 EXTERN unsigned long
00272 dkbif_get_height DK_PR((dk_bif_ptr i));
00273
00274
00275
00280 EXTERN int
00281 dkbif_get_must_scale DK_PR((dk_bif_ptr i));
00282
00283
00284
00292 EXTERN double
00293 dkbif_get_real_width DK_PR((dk_bif_ptr i));
00294
00295
00296
00304 EXTERN double
00305 dkbif_get_real_height DK_PR((dk_bif_ptr i));
00306
00307
00308
00313 EXTERN unsigned short
00314 dkbif_get_bits_per_component DK_PR((dk_bif_ptr i));
00315
00316
00317
00326 EXTERN int
00327 dkbif_set_bits_per_component DK_PR((dk_bif_ptr i, unsigned short b));
00328
00329
00330
00346 EXTERN int
00347 dkbif_set_mixing DK_PR((dk_bif_ptr i, int f, double r, double g, double b));
00348
00349
00350
00356 EXTERN int
00357 dkbif_set_mask_trigger_level DK_PR((dk_bif_ptr i, double l));
00358
00359
00360
00367 EXTERN unsigned short
00368 dkbif_get_red DK_PR((dk_bif_ptr i, unsigned long x, unsigned long y));
00369
00370
00371
00372
00379 EXTERN unsigned short
00380 dkbif_get_green DK_PR((dk_bif_ptr i, unsigned long x, unsigned long y));
00381
00382
00383
00390 EXTERN unsigned short
00391 dkbif_get_blue DK_PR((dk_bif_ptr i, unsigned long x, unsigned long y));
00392
00393
00394
00401 EXTERN unsigned short
00402 dkbif_get_gray DK_PR((dk_bif_ptr i, unsigned long x, unsigned long y));
00403
00404
00405
00412 EXTERN unsigned short
00413 dkbif_get_alpha DK_PR((dk_bif_ptr i, unsigned long x, unsigned long y));
00414
00415
00416
00423 EXTERN unsigned short
00424 dkbif_get_mask DK_PR((dk_bif_ptr i, unsigned long x, unsigned long y));
00425
00426
00427
00439 EXTERN void
00440 dkbif_allow_fast_ntsc DK_PR((dk_bif_ptr i, int f));
00441
00442
00443
00449 EXTERN double
00450 dkbif_get_sf_x DK_PR((dk_bif_ptr i));
00451
00452
00453
00460 EXTERN double
00461 dkbif_get_sf_y DK_PR((dk_bif_ptr i));
00462
00463
00464
00469 EXTERN char **
00470 dkbif_lic_get DK_PR((void));
00471
00472
00473
00474 #if defined(__cplusplus)
00475 }
00476 #endif
00477
00478 #if defined(EXTERN)
00479 #undef EXTERN
00480 #endif
00481
00482 #if defined(DKBIFJA_C)
00483 #define EXTERN
00484 #else
00485 #if DK_HAVE_PROTOTYPES
00486 #define EXTERN
00487 #else
00488 #define EXTERN extern
00489 #endif
00490 #endif
00491 #if defined(__cplusplus)
00492 extern "C" {
00493 #endif
00494
00495
00496
00539 EXTERN void
00540 dkbif_jfif_analyze DK_PR((dk_bif_jfif_analyze_t *a));
00541
00542
00543
00549 EXTERN int
00550 dkbif_jfif_get_sof DK_PR((dk_bif_sof_t f, int s));
00551
00552
00553
00559 EXTERN dk_bif_sof_t
00560 dkbif_jfif_set_sof DK_PR((dk_bif_sof_t f, int s));
00561
00562
00563
00568 EXTERN void
00569 dkbif_jfif_transfer DK_PR((dk_stream_t *o, FILE *i));
00570
00571
00576 EXTERN int
00577 dkbif_get_predictor DK_PR((dk_bif_ptr p));
00578
00579 #if defined(__cplusplus)
00580 }
00581 #endif
00582
00583
00585 #define DKBIF_TYPE_UNKNOWN 0
00586
00588 #define DKBIF_TYPE_PNG 1
00589
00591 #define DKBIF_TYPE_JPG 2
00592
00594 #define DKBIF_TYPE_NETPBM 3
00595
00597 #define DKBIF_TYPE_TIFF 4
00598
00599
00601 #define DKBIF_JFIF_SOF0 0x0001
00602
00604 #define DKBIF_JFIF_SOF1 0x0002
00605
00607 #define DKBIF_JFIF_SOF2 0x0004
00608
00610 #define DKBIF_JFIF_SOF3 0x0008
00611
00613 #define DKBIF_JFIF_SOF5 0x0010
00614
00616 #define DKBIF_JFIF_SOF6 0x0020
00617
00619 #define DKBIF_JFIF_SOF7 0x0040
00620
00622 #define DKBIF_JFIF_SOF8 0x0080
00623
00625 #define DKBIF_JFIF_SOF9 0x0100
00626
00628 #define DKBIF_JFIF_SOF10 0x0200
00629
00631 #define DKBIF_JFIF_SOF11 0x0400
00632
00634 #define DKBIF_JFIF_SOF13 0x0800
00635
00637 #define DKBIF_JFIF_SOF14 0x1000
00638
00640 #define DKBIF_JFIF_SOF15 0x2000
00641
00643 #define DKBIF_I_SOF0 0x00C0
00644
00646 #define DKBIF_I_SOF1 0x00C1
00647
00649 #define DKBIF_I_SOF2 0x00C2
00650
00652 #define DKBIF_I_SOF3 0x00C3
00653
00655 #define DKBIF_I_SOF5 0x00C5
00656
00658 #define DKBIF_I_SOF6 0x00C6
00659
00661 #define DKBIF_I_SOF7 0x00C7
00662
00664 #define DKBIF_I_SOF8 0x00C8
00665
00667 #define DKBIF_I_SOF9 0x00C9
00668
00670 #define DKBIF_I_SOF10 0x00CA
00671
00673 #define DKBIF_I_SOF11 0x00CB
00674
00676 #define DKBIF_I_SOF13 0x00CD
00677
00679 #define DKBIF_I_SOF14 0x00CE
00680
00682 #define DKBIF_I_SOF15 0x00CF
00683
00684
00686 #define DKBIF_PREDICTOR_UNKNOWN -1
00687
00689 #define DKBIF_PREDICTOR_NONE 0
00690
00692 #define DKBIF_PREDICTOR_BYTE_SUB 1
00693
00695 #define DKBIF_PREDICTOR_BYTE_UP 2
00696
00698 #define DKBIF_PREDICTOR_BYTE_AVG 3
00699
00701 #define DKBIF_PREDICTOR_BYTE_PAETH 4
00702
00704 #define DKBIF_PREDICTOR_PIXEL_SUB 9
00705
00706 #endif
00707