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
00059 #ifndef DKBIF_H_INCLUDED
00060 #define DKBIF_H_INCLUDED 1
00061
00062 #include <stdio.h>
00063 #include "dk.h"
00064 #include "dkstream.h"
00065 #include "dkapp.h"
00066
00067
00068
00071 typedef void *dk_bif_ptr;
00072
00075 typedef void *dk_bif_frame_ptr;
00076
00077
00078
00081 typedef unsigned dk_bif_sof_t;
00082
00083
00084
00087 typedef struct {
00088
00089 FILE *inputfile;
00090
00091 int is_jfif;
00092 dk_stream_t *os;
00093 dk_app_t *a;
00094 unsigned char vers_major;
00095 unsigned char vers_minor;
00096 unsigned char dpi_setting;
00097 unsigned char bpc;
00098 unsigned char components;
00099 unsigned char adobe_marker_found;
00100 unsigned width;
00101 unsigned height;
00102 unsigned xres;
00103 unsigned yres;
00104 dk_bif_sof_t used_sofs;
00105 unsigned long n_sofs;
00106 unsigned long n_images;
00107 } dk_bif_jfif_analyze_t;
00108
00109 #if defined(EXTERN)
00110 #undef EXTERN
00111 #endif
00112 #if DKBIF_C
00113 #define EXTERN
00114 #else
00115 #if DK_HAVE_PROTOTYPES
00116 #define EXTERN
00117 #else
00118 #define EXTERN extern
00119 #endif
00120 #endif
00121 #if defined(__cplusplus)
00122 extern "C" {
00123 #endif
00124
00125
00126
00132 EXTERN int
00133 dkbif_can_handle_name DK_PR((char *n));
00134
00135
00136
00143 EXTERN dk_bif_ptr
00144 dkbif_open DK_PR((void));
00145
00146
00147
00151 EXTERN void
00152 dkbif_close DK_PR((dk_bif_ptr i));
00153
00154
00155
00163 EXTERN int
00164 dkbif_get_type DK_PR((char *n));
00165
00166
00167
00172 EXTERN int
00173 dkbif_can_handle DK_PR((int s));
00174
00175
00176
00186 EXTERN void
00187 dkbif_set_width_height_sufficient DK_PR((dk_bif_ptr i, int f));
00188
00189
00190
00204 EXTERN int
00205 dkbif_read_header DK_PR((\
00206 dk_bif_ptr i, FILE *f, char *n, int s, char *t));
00207
00208
00209
00217 EXTERN int
00218 dkbif_read_data DK_PR((dk_bif_ptr i, FILE *f));
00219
00220
00221
00226 EXTERN unsigned long
00227 dkbif_number_of_frames DK_PR((dk_bif_ptr i));
00228
00229
00230
00239 EXTERN int
00240 dkbif_set_frame DK_PR((dk_bif_ptr i, unsigned long f));
00241
00242
00243
00252 EXTERN int
00253 dkbif_get_channels DK_PR((dk_bif_ptr i));
00254
00255
00256
00261 EXTERN unsigned long
00262 dkbif_get_width DK_PR((dk_bif_ptr i));
00263
00264
00265
00270 EXTERN unsigned long
00271 dkbif_get_height DK_PR((dk_bif_ptr i));
00272
00273
00274
00279 EXTERN int
00280 dkbif_get_must_scale DK_PR((dk_bif_ptr i));
00281
00282
00283
00291 EXTERN double
00292 dkbif_get_real_width DK_PR((dk_bif_ptr i));
00293
00294
00295
00303 EXTERN double
00304 dkbif_get_real_height DK_PR((dk_bif_ptr i));
00305
00306
00307
00312 EXTERN unsigned short
00313 dkbif_get_bits_per_component DK_PR((dk_bif_ptr i));
00314
00315
00316
00325 EXTERN int
00326 dkbif_set_bits_per_component DK_PR((dk_bif_ptr i, unsigned short b));
00327
00328
00329
00345 EXTERN int
00346 dkbif_set_mixing DK_PR((dk_bif_ptr i, int f, double r, double g, double b));
00347
00348
00349
00355 EXTERN int
00356 dkbif_set_mask_trigger_level DK_PR((dk_bif_ptr i, double l));
00357
00358
00359
00366 EXTERN unsigned short
00367 dkbif_get_red DK_PR((dk_bif_ptr i, unsigned long x, unsigned long y));
00368
00369
00370
00371
00378 EXTERN unsigned short
00379 dkbif_get_green DK_PR((dk_bif_ptr i, unsigned long x, unsigned long y));
00380
00381
00382
00389 EXTERN unsigned short
00390 dkbif_get_blue DK_PR((dk_bif_ptr i, unsigned long x, unsigned long y));
00391
00392
00393
00400 EXTERN unsigned short
00401 dkbif_get_gray DK_PR((dk_bif_ptr i, unsigned long x, unsigned long y));
00402
00403
00404
00411 EXTERN unsigned short
00412 dkbif_get_alpha DK_PR((dk_bif_ptr i, unsigned long x, unsigned long y));
00413
00414
00415
00422 EXTERN unsigned short
00423 dkbif_get_mask DK_PR((dk_bif_ptr i, unsigned long x, unsigned long y));
00424
00425
00426
00438 EXTERN void
00439 dkbif_allow_fast_ntsc DK_PR((dk_bif_ptr i, int f));
00440
00441
00442
00448 EXTERN double
00449 dkbif_get_sf_x DK_PR((dk_bif_ptr i));
00450
00451
00452
00459 EXTERN double
00460 dkbif_get_sf_y DK_PR((dk_bif_ptr i));
00461
00462
00463
00468 EXTERN char **
00469 dkbif_lic_get DK_PR((void));
00470
00471
00472
00473 #if defined(__cplusplus)
00474 }
00475 #endif
00476
00477 #if defined(EXTERN)
00478 #undef EXTERN
00479 #endif
00480
00481 #if defined(DKBIFJA_C)
00482 #define EXTERN
00483 #else
00484 #if DK_HAVE_PROTOTYPES
00485 #define EXTERN
00486 #else
00487 #define EXTERN extern
00488 #endif
00489 #endif
00490 #if defined(__cplusplus)
00491 extern "C" {
00492 #endif
00493
00494
00495
00538 EXTERN void
00539 dkbif_jfif_analyze DK_PR((dk_bif_jfif_analyze_t *a));
00540
00541
00542
00548 EXTERN int
00549 dkbif_jfif_get_sof DK_PR((dk_bif_sof_t f, int s));
00550
00551
00552
00558 EXTERN dk_bif_sof_t
00559 dkbif_jfif_set_sof DK_PR((dk_bif_sof_t f, int s));
00560
00561
00562
00567 EXTERN void
00568 dkbif_jfif_transfer DK_PR((dk_stream_t *o, FILE *i));
00569
00570
00575 EXTERN int
00576 dkbif_get_predictor DK_PR((dk_bif_ptr p));
00577
00578 #if defined(__cplusplus)
00579 }
00580 #endif
00581
00582
00584 #define DKBIF_TYPE_UNKNOWN 0
00585
00587 #define DKBIF_TYPE_PNG 1
00588
00590 #define DKBIF_TYPE_JPG 2
00591
00593 #define DKBIF_TYPE_NETPBM 3
00594
00596 #define DKBIF_TYPE_TIFF 4
00597
00598
00600 #define DKBIF_JFIF_SOF0 0x0001
00601
00603 #define DKBIF_JFIF_SOF1 0x0002
00604
00606 #define DKBIF_JFIF_SOF2 0x0004
00607
00609 #define DKBIF_JFIF_SOF3 0x0008
00610
00612 #define DKBIF_JFIF_SOF5 0x0010
00613
00615 #define DKBIF_JFIF_SOF6 0x0020
00616
00618 #define DKBIF_JFIF_SOF7 0x0040
00619
00621 #define DKBIF_JFIF_SOF8 0x0080
00622
00624 #define DKBIF_JFIF_SOF9 0x0100
00625
00627 #define DKBIF_JFIF_SOF10 0x0200
00628
00630 #define DKBIF_JFIF_SOF11 0x0400
00631
00633 #define DKBIF_JFIF_SOF13 0x0800
00634
00636 #define DKBIF_JFIF_SOF14 0x1000
00637
00639 #define DKBIF_JFIF_SOF15 0x2000
00640
00642 #define DKBIF_I_SOF0 0x00C0
00643
00645 #define DKBIF_I_SOF1 0x00C1
00646
00648 #define DKBIF_I_SOF2 0x00C2
00649
00651 #define DKBIF_I_SOF3 0x00C3
00652
00654 #define DKBIF_I_SOF5 0x00C5
00655
00657 #define DKBIF_I_SOF6 0x00C6
00658
00660 #define DKBIF_I_SOF7 0x00C7
00661
00663 #define DKBIF_I_SOF8 0x00C8
00664
00666 #define DKBIF_I_SOF9 0x00C9
00667
00669 #define DKBIF_I_SOF10 0x00CA
00670
00672 #define DKBIF_I_SOF11 0x00CB
00673
00675 #define DKBIF_I_SOF13 0x00CD
00676
00678 #define DKBIF_I_SOF14 0x00CE
00679
00681 #define DKBIF_I_SOF15 0x00CF
00682
00683
00685 #define DKBIF_PREDICTOR_UNKNOWN -1
00686
00688 #define DKBIF_PREDICTOR_NONE 0
00689
00691 #define DKBIF_PREDICTOR_BYTE_SUB 1
00692
00694 #define DKBIF_PREDICTOR_BYTE_UP 2
00695
00697 #define DKBIF_PREDICTOR_BYTE_AVG 3
00698
00700 #define DKBIF_PREDICTOR_BYTE_PAETH 4
00701
00703 #define DKBIF_PREDICTOR_PIXEL_SUB 9
00704
00705 #endif
00706