1 /* Copyright (C) 2001-2006 Artifex Software, Inc. 2 All Rights Reserved. 3 4 This software is provided AS-IS with no warranty, either express or 5 implied. 6 7 This software is distributed under license and may not be copied, modified 8 or distributed except as expressly authorized under the terms of that 9 license. Refer to licensing information at http://www.artifex.com/ 10 or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, 11 San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information. 12 */ 13 14 /* $Id: sjpeg.h 8022 2007-06-05 22:23:38Z giles $ */ 15 /* IJG entry point wrappers */ 16 /* Requires sdct.h, jpeg/jpeglib.h */ 17 18 #ifndef sjpeg_INCLUDED 19 # define sjpeg_INCLUDED 20 21 /* 22 * Each routine gs_jpeg_xxx is equivalent to the IJG entry point jpeg_xxx, 23 * except that 24 * (a) it takes a pointer to stream_DCT_state instead of just the IJG 25 * jpeg_(de)compress_data struct; 26 * (b) it catches any error exit from the IJG code and converts it into 27 * an error return value per Ghostscript custom. A negative return 28 * value is an error code, except for gs_jpeg_alloc_xxx which return 29 * NULL (indicating e_VMerror). 30 */ 31 32 /* Common to encode/decode */ 33 34 void gs_jpeg_error_setup(stream_DCT_state * st); 35 int gs_jpeg_log_error(stream_DCT_state * st); 36 JQUANT_TBL *gs_jpeg_alloc_quant_table(stream_DCT_state * st); 37 JHUFF_TBL *gs_jpeg_alloc_huff_table(stream_DCT_state * st); 38 int gs_jpeg_destroy(stream_DCT_state * st); 39 40 /* Encode */ 41 42 int gs_jpeg_create_compress(stream_DCT_state * st); 43 int gs_jpeg_set_defaults(stream_DCT_state * st); 44 int gs_jpeg_set_colorspace(stream_DCT_state * st, 45 J_COLOR_SPACE colorspace); 46 int gs_jpeg_set_linear_quality(stream_DCT_state * st, 47 int scale_factor, boolean force_baseline); 48 int gs_jpeg_set_quality(stream_DCT_state * st, 49 int quality, boolean force_baseline); 50 int gs_jpeg_start_compress(stream_DCT_state * st, 51 boolean write_all_tables); 52 int gs_jpeg_write_scanlines(stream_DCT_state * st, 53 JSAMPARRAY scanlines, int num_lines); 54 int gs_jpeg_finish_compress(stream_DCT_state * st); 55 56 /* Decode */ 57 58 int gs_jpeg_create_decompress(stream_DCT_state * st); 59 int gs_jpeg_read_header(stream_DCT_state * st, 60 boolean require_image); 61 int gs_jpeg_start_decompress(stream_DCT_state * st); 62 int gs_jpeg_read_scanlines(stream_DCT_state * st, 63 JSAMPARRAY scanlines, int max_lines); 64 int gs_jpeg_finish_decompress(stream_DCT_state * st); 65 66 #endif /* sjpeg_INCLUDED */ 67