summaryrefslogtreecommitdiffstats
path: root/src/libs/jpegutils
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/jpegutils')
-rw-r--r--src/libs/jpegutils/jpegint.h10
-rw-r--r--src/libs/jpegutils/transupp.cpp126
-rw-r--r--src/libs/jpegutils/transupp.h14
3 files changed, 75 insertions, 75 deletions
diff --git a/src/libs/jpegutils/jpegint.h b/src/libs/jpegutils/jpegint.h
index bf01aa3e..e505632f 100644
--- a/src/libs/jpegutils/jpegint.h
+++ b/src/libs/jpegutils/jpegint.h
@@ -103,7 +103,7 @@ struct jpeg_downsampler {
JSAMPIMAGE output_buf,
JDIMENSION out_row_group_index));
- boolean need_context_rows; /* TRUE if need rows above & below */
+ boolean need_context_rows; /* true if need rows above & below */
};
/* Forward DCT (also controls coefficient quantization) */
@@ -245,7 +245,7 @@ struct jpeg_upsampler {
JDIMENSION *out_row_ctr,
JDIMENSION out_rows_avail));
- boolean need_context_rows; /* TRUE if need rows above & below */
+ boolean need_context_rows; /* true if need rows above & below */
};
/* Colorspace conversion */
@@ -512,7 +512,7 @@ struct jpeg_downsampler {
JSAMPIMAGE output_buf,
JDIMENSION out_row_group_index));
- boolean need_context_rows; /* TRUE if need rows above & below */
+ boolean need_context_rows; /* true if need rows above & below */
};
/* Forward DCT (also controls coefficient quantization) */
@@ -630,7 +630,7 @@ struct jpeg_entropy_decoder {
/* This is here to share code between baseline and progressive decoders; */
/* other modules probably should not use it */
- boolean insufficient_data; /* set TRUE after emitting warning */
+ boolean insufficient_data; /* set true after emitting warning */
};
/* Inverse DCT (also performs dequantization) */
@@ -656,7 +656,7 @@ struct jpeg_upsampler {
JDIMENSION *out_row_ctr,
JDIMENSION out_rows_avail));
- boolean need_context_rows; /* TRUE if need rows above & below */
+ boolean need_context_rows; /* true if need rows above & below */
};
/* Colorspace conversion */
diff --git a/src/libs/jpegutils/transupp.cpp b/src/libs/jpegutils/transupp.cpp
index 47a9aa8b..487dcdb2 100644
--- a/src/libs/jpegutils/transupp.cpp
+++ b/src/libs/jpegutils/transupp.cpp
@@ -108,11 +108,11 @@ do_crop (j_decompress_ptr srcinfo, j_compress_ptr dstinfo,
dst_blk_y += compptr->v_samp_factor) {
dst_buffer = (*srcinfo->mem->access_virt_barray)
((j_common_ptr) srcinfo, dst_coef_arrays[ci], dst_blk_y,
- (JDIMENSION) compptr->v_samp_factor, TRUE);
+ (JDIMENSION) compptr->v_samp_factor, true);
src_buffer = (*srcinfo->mem->access_virt_barray)
((j_common_ptr) srcinfo, src_coef_arrays[ci],
dst_blk_y + y_crop_blocks,
- (JDIMENSION) compptr->v_samp_factor, FALSE);
+ (JDIMENSION) compptr->v_samp_factor, false);
for (offset_y = 0; offset_y < compptr->v_samp_factor; offset_y++) {
jcopy_block_row(src_buffer[offset_y] + x_crop_blocks,
dst_buffer[offset_y],
@@ -154,7 +154,7 @@ do_flip_h_no_crop (j_decompress_ptr srcinfo, j_compress_ptr dstinfo,
blk_y += compptr->v_samp_factor) {
buffer = (*srcinfo->mem->access_virt_barray)
((j_common_ptr) srcinfo, src_coef_arrays[ci], blk_y,
- (JDIMENSION) compptr->v_samp_factor, TRUE);
+ (JDIMENSION) compptr->v_samp_factor, true);
for (offset_y = 0; offset_y < compptr->v_samp_factor; offset_y++) {
/* Do the mirroring */
for (blk_x = 0; blk_x * 2 < comp_width; blk_x++) {
@@ -221,11 +221,11 @@ do_flip_h (j_decompress_ptr srcinfo, j_compress_ptr dstinfo,
dst_blk_y += compptr->v_samp_factor) {
dst_buffer = (*srcinfo->mem->access_virt_barray)
((j_common_ptr) srcinfo, dst_coef_arrays[ci], dst_blk_y,
- (JDIMENSION) compptr->v_samp_factor, TRUE);
+ (JDIMENSION) compptr->v_samp_factor, true);
src_buffer = (*srcinfo->mem->access_virt_barray)
((j_common_ptr) srcinfo, src_coef_arrays[ci],
dst_blk_y + y_crop_blocks,
- (JDIMENSION) compptr->v_samp_factor, FALSE);
+ (JDIMENSION) compptr->v_samp_factor, false);
for (offset_y = 0; offset_y < compptr->v_samp_factor; offset_y++) {
dst_row_ptr = dst_buffer[offset_y];
src_row_ptr = src_buffer[offset_y];
@@ -286,20 +286,20 @@ do_flip_v (j_decompress_ptr srcinfo, j_compress_ptr dstinfo,
dst_blk_y += compptr->v_samp_factor) {
dst_buffer = (*srcinfo->mem->access_virt_barray)
((j_common_ptr) srcinfo, dst_coef_arrays[ci], dst_blk_y,
- (JDIMENSION) compptr->v_samp_factor, TRUE);
+ (JDIMENSION) compptr->v_samp_factor, true);
if (y_crop_blocks + dst_blk_y < comp_height) {
/* Row is within the mirrorable area. */
src_buffer = (*srcinfo->mem->access_virt_barray)
((j_common_ptr) srcinfo, src_coef_arrays[ci],
comp_height - y_crop_blocks - dst_blk_y -
(JDIMENSION) compptr->v_samp_factor,
- (JDIMENSION) compptr->v_samp_factor, FALSE);
+ (JDIMENSION) compptr->v_samp_factor, false);
} else {
/* Bottom-edge blocks will be copied verbatim. */
src_buffer = (*srcinfo->mem->access_virt_barray)
((j_common_ptr) srcinfo, src_coef_arrays[ci],
dst_blk_y + y_crop_blocks,
- (JDIMENSION) compptr->v_samp_factor, FALSE);
+ (JDIMENSION) compptr->v_samp_factor, false);
}
for (offset_y = 0; offset_y < compptr->v_samp_factor; offset_y++) {
if (y_crop_blocks + dst_blk_y < comp_height) {
@@ -358,14 +358,14 @@ do_transpose (j_decompress_ptr srcinfo, j_compress_ptr dstinfo,
dst_blk_y += compptr->v_samp_factor) {
dst_buffer = (*srcinfo->mem->access_virt_barray)
((j_common_ptr) srcinfo, dst_coef_arrays[ci], dst_blk_y,
- (JDIMENSION) compptr->v_samp_factor, TRUE);
+ (JDIMENSION) compptr->v_samp_factor, true);
for (offset_y = 0; offset_y < compptr->v_samp_factor; offset_y++) {
for (dst_blk_x = 0; dst_blk_x < compptr->width_in_blocks;
dst_blk_x += compptr->h_samp_factor) {
src_buffer = (*srcinfo->mem->access_virt_barray)
((j_common_ptr) srcinfo, src_coef_arrays[ci],
dst_blk_x + x_crop_blocks,
- (JDIMENSION) compptr->h_samp_factor, FALSE);
+ (JDIMENSION) compptr->h_samp_factor, false);
for (offset_x = 0; offset_x < compptr->h_samp_factor; offset_x++) {
dst_ptr = dst_buffer[offset_y][dst_blk_x + offset_x];
src_ptr = src_buffer[offset_x][dst_blk_y + offset_y + y_crop_blocks];
@@ -414,7 +414,7 @@ do_rot_90 (j_decompress_ptr srcinfo, j_compress_ptr dstinfo,
dst_blk_y += compptr->v_samp_factor) {
dst_buffer = (*srcinfo->mem->access_virt_barray)
((j_common_ptr) srcinfo, dst_coef_arrays[ci], dst_blk_y,
- (JDIMENSION) compptr->v_samp_factor, TRUE);
+ (JDIMENSION) compptr->v_samp_factor, true);
for (offset_y = 0; offset_y < compptr->v_samp_factor; offset_y++) {
for (dst_blk_x = 0; dst_blk_x < compptr->width_in_blocks;
dst_blk_x += compptr->h_samp_factor) {
@@ -424,13 +424,13 @@ do_rot_90 (j_decompress_ptr srcinfo, j_compress_ptr dstinfo,
((j_common_ptr) srcinfo, src_coef_arrays[ci],
comp_width - x_crop_blocks - dst_blk_x -
(JDIMENSION) compptr->h_samp_factor,
- (JDIMENSION) compptr->h_samp_factor, FALSE);
+ (JDIMENSION) compptr->h_samp_factor, false);
} else {
/* Edge blocks are transposed but not mirrored. */
src_buffer = (*srcinfo->mem->access_virt_barray)
((j_common_ptr) srcinfo, src_coef_arrays[ci],
dst_blk_x + x_crop_blocks,
- (JDIMENSION) compptr->h_samp_factor, FALSE);
+ (JDIMENSION) compptr->h_samp_factor, false);
}
for (offset_x = 0; offset_x < compptr->h_samp_factor; offset_x++) {
dst_ptr = dst_buffer[offset_y][dst_blk_x + offset_x];
@@ -495,14 +495,14 @@ do_rot_270 (j_decompress_ptr srcinfo, j_compress_ptr dstinfo,
dst_blk_y += compptr->v_samp_factor) {
dst_buffer = (*srcinfo->mem->access_virt_barray)
((j_common_ptr) srcinfo, dst_coef_arrays[ci], dst_blk_y,
- (JDIMENSION) compptr->v_samp_factor, TRUE);
+ (JDIMENSION) compptr->v_samp_factor, true);
for (offset_y = 0; offset_y < compptr->v_samp_factor; offset_y++) {
for (dst_blk_x = 0; dst_blk_x < compptr->width_in_blocks;
dst_blk_x += compptr->h_samp_factor) {
src_buffer = (*srcinfo->mem->access_virt_barray)
((j_common_ptr) srcinfo, src_coef_arrays[ci],
dst_blk_x + x_crop_blocks,
- (JDIMENSION) compptr->h_samp_factor, FALSE);
+ (JDIMENSION) compptr->h_samp_factor, false);
for (offset_x = 0; offset_x < compptr->h_samp_factor; offset_x++) {
dst_ptr = dst_buffer[offset_y][dst_blk_x + offset_x];
if (y_crop_blocks + dst_blk_y < comp_height) {
@@ -566,20 +566,20 @@ do_rot_180 (j_decompress_ptr srcinfo, j_compress_ptr dstinfo,
dst_blk_y += compptr->v_samp_factor) {
dst_buffer = (*srcinfo->mem->access_virt_barray)
((j_common_ptr) srcinfo, dst_coef_arrays[ci], dst_blk_y,
- (JDIMENSION) compptr->v_samp_factor, TRUE);
+ (JDIMENSION) compptr->v_samp_factor, true);
if (y_crop_blocks + dst_blk_y < comp_height) {
/* Row is within the vertically mirrorable area. */
src_buffer = (*srcinfo->mem->access_virt_barray)
((j_common_ptr) srcinfo, src_coef_arrays[ci],
comp_height - y_crop_blocks - dst_blk_y -
(JDIMENSION) compptr->v_samp_factor,
- (JDIMENSION) compptr->v_samp_factor, FALSE);
+ (JDIMENSION) compptr->v_samp_factor, false);
} else {
/* Bottom-edge rows are only mirrored horizontally. */
src_buffer = (*srcinfo->mem->access_virt_barray)
((j_common_ptr) srcinfo, src_coef_arrays[ci],
dst_blk_y + y_crop_blocks,
- (JDIMENSION) compptr->v_samp_factor, FALSE);
+ (JDIMENSION) compptr->v_samp_factor, false);
}
for (offset_y = 0; offset_y < compptr->v_samp_factor; offset_y++) {
dst_row_ptr = dst_buffer[offset_y];
@@ -677,7 +677,7 @@ do_transverse (j_decompress_ptr srcinfo, j_compress_ptr dstinfo,
dst_blk_y += compptr->v_samp_factor) {
dst_buffer = (*srcinfo->mem->access_virt_barray)
((j_common_ptr) srcinfo, dst_coef_arrays[ci], dst_blk_y,
- (JDIMENSION) compptr->v_samp_factor, TRUE);
+ (JDIMENSION) compptr->v_samp_factor, true);
for (offset_y = 0; offset_y < compptr->v_samp_factor; offset_y++) {
for (dst_blk_x = 0; dst_blk_x < compptr->width_in_blocks;
dst_blk_x += compptr->h_samp_factor) {
@@ -687,12 +687,12 @@ do_transverse (j_decompress_ptr srcinfo, j_compress_ptr dstinfo,
((j_common_ptr) srcinfo, src_coef_arrays[ci],
comp_width - x_crop_blocks - dst_blk_x -
(JDIMENSION) compptr->h_samp_factor,
- (JDIMENSION) compptr->h_samp_factor, FALSE);
+ (JDIMENSION) compptr->h_samp_factor, false);
} else {
src_buffer = (*srcinfo->mem->access_virt_barray)
((j_common_ptr) srcinfo, src_coef_arrays[ci],
dst_blk_x + x_crop_blocks,
- (JDIMENSION) compptr->h_samp_factor, FALSE);
+ (JDIMENSION) compptr->h_samp_factor, false);
}
for (offset_x = 0; offset_x < compptr->h_samp_factor; offset_x++) {
dst_ptr = dst_buffer[offset_y][dst_blk_x + offset_x];
@@ -756,7 +756,7 @@ do_transverse (j_decompress_ptr srcinfo, j_compress_ptr dstinfo,
/* Parse an unsigned integer: subroutine for jtransform_parse_crop_spec.
- * Returns TRUE if valid integer found, FALSE if not.
+ * Returns true if valid integer found, false if not.
* *strptr is advanced over the digit string, and *result is set to its value.
*/
@@ -771,14 +771,14 @@ jt_read_integer (const char ** strptr, JDIMENSION * result)
}
*result = val;
if (ptr == *strptr)
- return FALSE; /* oops, no digits */
+ return false; /* oops, no digits */
*strptr = ptr;
- return TRUE;
+ return true;
}
/* Parse a crop specification (written in X11 geometry style).
- * The routine returns TRUE if the spec string is valid, FALSE if not.
+ * The routine returns true if the spec string is valid, false if not.
*
* The crop spec string should have the format
* <width>x<height>{+-}<xoffset>{+-}<yoffset>
@@ -793,7 +793,7 @@ jt_read_integer (const char ** strptr, JDIMENSION * result)
GLOBAL(boolean)
jtransform_parse_crop_spec (jpeg_transform_info *info, const char *spec)
{
- info->crop = FALSE;
+ info->crop = false;
info->crop_width_set = JCROP_UNSET;
info->crop_height_set = JCROP_UNSET;
info->crop_xoffset_set = JCROP_UNSET;
@@ -802,14 +802,14 @@ jtransform_parse_crop_spec (jpeg_transform_info *info, const char *spec)
if (isdigit(*spec)) {
/* fetch width */
if (! jt_read_integer(&spec, &info->crop_width))
- return FALSE;
+ return false;
info->crop_width_set = JCROP_POS;
}
if (*spec == 'x' || *spec == 'X') {
/* fetch height */
spec++;
if (! jt_read_integer(&spec, &info->crop_height))
- return FALSE;
+ return false;
info->crop_height_set = JCROP_POS;
}
if (*spec == '+' || *spec == '-') {
@@ -817,20 +817,20 @@ jtransform_parse_crop_spec (jpeg_transform_info *info, const char *spec)
info->crop_xoffset_set = (*spec == '-') ? JCROP_NEG : JCROP_POS;
spec++;
if (! jt_read_integer(&spec, &info->crop_xoffset))
- return FALSE;
+ return false;
}
if (*spec == '+' || *spec == '-') {
/* fetch yoffset */
info->crop_yoffset_set = (*spec == '-') ? JCROP_NEG : JCROP_POS;
spec++;
if (! jt_read_integer(&spec, &info->crop_yoffset))
- return FALSE;
+ return false;
}
/* We had better have gotten to the end of the string. */
if (*spec != '\0')
- return FALSE;
- info->crop = TRUE;
- return TRUE;
+ return false;
+ info->crop = true;
+ return true;
}
@@ -872,8 +872,8 @@ trim_bottom_edge (jpeg_transform_info *info, JDIMENSION full_height)
* the image dimensions) and before jpeg_read_coefficients (which realizes
* the source's virtual arrays).
*
- * This function returns FALSE right away if -perfect is given
- * and transformation is not perfect. Otherwise returns TRUE.
+ * This function returns false right away if -perfect is given
+ * and transformation is not perfect. Otherwise returns true.
*/
GLOBAL(boolean)
@@ -910,14 +910,14 @@ jtransform_request_workspace (j_decompress_ptr srcinfo,
srcinfo->min_DCT_h_scaled_size,
srcinfo->min_DCT_v_scaled_size,
info->transform))
- return FALSE;
+ return false;
} else {
if (!jtransform_perfect_transform(srcinfo->output_width,
srcinfo->output_height,
srcinfo->max_h_samp_factor * srcinfo->min_DCT_h_scaled_size,
srcinfo->max_v_samp_factor * srcinfo->min_DCT_v_scaled_size,
info->transform))
- return FALSE;
+ return false;
}
}
@@ -1005,32 +1005,32 @@ jtransform_request_workspace (j_decompress_ptr srcinfo,
/* Figure out whether we need workspace arrays,
* and if so whether they are transposed relative to the source.
*/
- need_workspace = FALSE;
- transpose_it = FALSE;
+ need_workspace = false;
+ transpose_it = false;
switch (info->transform) {
case JXFORM_NONE:
if (info->x_crop_offset != 0 || info->y_crop_offset != 0)
- need_workspace = TRUE;
+ need_workspace = true;
/* No workspace needed if neither cropping nor transforming */
break;
case JXFORM_FLIP_H:
if (info->trim)
trim_right_edge(info, srcinfo->output_width);
if (info->y_crop_offset != 0)
- need_workspace = TRUE;
+ need_workspace = true;
/* do_flip_h_no_crop doesn't need a workspace array */
break;
case JXFORM_FLIP_V:
if (info->trim)
trim_bottom_edge(info, srcinfo->output_height);
/* Need workspace arrays having same dimensions as source image. */
- need_workspace = TRUE;
+ need_workspace = true;
break;
case JXFORM_TRANSPOSE:
/* transpose does NOT have to trim anything */
/* Need workspace arrays having transposed dimensions. */
- need_workspace = TRUE;
- transpose_it = TRUE;
+ need_workspace = true;
+ transpose_it = true;
break;
case JXFORM_TRANSVERSE:
if (info->trim) {
@@ -1038,15 +1038,15 @@ jtransform_request_workspace (j_decompress_ptr srcinfo,
trim_bottom_edge(info, srcinfo->output_width);
}
/* Need workspace arrays having transposed dimensions. */
- need_workspace = TRUE;
- transpose_it = TRUE;
+ need_workspace = true;
+ transpose_it = true;
break;
case JXFORM_ROT_90:
if (info->trim)
trim_right_edge(info, srcinfo->output_height);
/* Need workspace arrays having transposed dimensions. */
- need_workspace = TRUE;
- transpose_it = TRUE;
+ need_workspace = true;
+ transpose_it = true;
break;
case JXFORM_ROT_180:
if (info->trim) {
@@ -1054,14 +1054,14 @@ jtransform_request_workspace (j_decompress_ptr srcinfo,
trim_bottom_edge(info, srcinfo->output_height);
}
/* Need workspace arrays having same dimensions as source image. */
- need_workspace = TRUE;
+ need_workspace = true;
break;
case JXFORM_ROT_270:
if (info->trim)
trim_bottom_edge(info, srcinfo->output_width);
/* Need workspace arrays having transposed dimensions. */
- need_workspace = TRUE;
- transpose_it = TRUE;
+ need_workspace = true;
+ transpose_it = true;
break;
}
@@ -1094,14 +1094,14 @@ jtransform_request_workspace (j_decompress_ptr srcinfo,
width_in_blocks = width_in_iMCUs * h_samp_factor;
height_in_blocks = height_in_iMCUs * v_samp_factor;
coef_arrays[ci] = (*srcinfo->mem->request_virt_barray)
- ((j_common_ptr) srcinfo, JPOOL_IMAGE, FALSE,
+ ((j_common_ptr) srcinfo, JPOOL_IMAGE, false,
width_in_blocks, height_in_blocks, (JDIMENSION) v_samp_factor);
}
info->workspace_coef_arrays = coef_arrays;
} else
info->workspace_coef_arrays = NULL;
- return TRUE;
+ return true;
}
@@ -1166,9 +1166,9 @@ adjust_exif_parameters (JOCTET FAR * data, unsigned int length,
/* Discover byte order */
if (GETJOCTET(data[0]) == 0x49 && GETJOCTET(data[1]) == 0x49)
- is_motorola = FALSE;
+ is_motorola = false;
else if (GETJOCTET(data[0]) == 0x4D && GETJOCTET(data[1]) == 0x4D)
- is_motorola = TRUE;
+ is_motorola = true;
else
return;
@@ -1384,7 +1384,7 @@ jtransform_adjust_parameters (j_decompress_ptr srcinfo,
GETJOCTET(srcinfo->marker_list->data[4]) == 0 &&
GETJOCTET(srcinfo->marker_list->data[5]) == 0) {
/* Suppress output of JFIF marker */
- dstinfo->write_JFIF_header = FALSE;
+ dstinfo->write_JFIF_header = false;
/* Adjust Exif image parameters */
if (dstinfo->jpeg_width != srcinfo->image_width ||
dstinfo->jpeg_height != srcinfo->image_height)
@@ -1478,8 +1478,8 @@ jtransform_execute_transform (j_decompress_ptr srcinfo,
* MCU_width = cinfo.max_h_samp_factor * cinfo.block_size
* MCU_height = cinfo.max_v_samp_factor * cinfo.block_size
* Result:
- * TRUE = perfect transformation possible
- * FALSE = perfect transformation not possible
+ * true = perfect transformation possible
+ * false = perfect transformation not possible
* (may use custom action then)
*/
@@ -1488,25 +1488,25 @@ jtransform_perfect_transform(JDIMENSION image_width, JDIMENSION image_height,
int MCU_width, int MCU_height,
JXFORM_CODE transform)
{
- boolean result = TRUE; /* initialize TRUE */
+ boolean result = true; /* initialize true */
switch (transform) {
case JXFORM_FLIP_H:
case JXFORM_ROT_270:
if (image_width % (JDIMENSION) MCU_width)
- result = FALSE;
+ result = false;
break;
case JXFORM_FLIP_V:
case JXFORM_ROT_90:
if (image_height % (JDIMENSION) MCU_height)
- result = FALSE;
+ result = false;
break;
case JXFORM_TRANSVERSE:
case JXFORM_ROT_180:
if (image_width % (JDIMENSION) MCU_width)
- result = FALSE;
+ result = false;
if (image_height % (JDIMENSION) MCU_height)
- result = FALSE;
+ result = false;
break;
default:
break;
diff --git a/src/libs/jpegutils/transupp.h b/src/libs/jpegutils/transupp.h
index 7dd3fad6..3ecfda1f 100644
--- a/src/libs/jpegutils/transupp.h
+++ b/src/libs/jpegutils/transupp.h
@@ -132,12 +132,12 @@ typedef enum {
typedef struct {
/* Options: set by caller */
JXFORM_CODE transform; /* image transform operator */
- boolean perfect; /* if TRUE, fail if partial MCUs are requested */
- boolean trim; /* if TRUE, trim partial MCUs as needed */
- boolean force_grayscale; /* if TRUE, convert color image to grayscale */
- boolean crop; /* if TRUE, crop source image */
+ boolean perfect; /* if true, fail if partial MCUs are requested */
+ boolean trim; /* if true, trim partial MCUs as needed */
+ boolean force_grayscale; /* if true, convert color image to grayscale */
+ boolean crop; /* if true, crop source image */
- /* Crop parameters: application need not set these unless crop is TRUE.
+ /* Crop parameters: application need not set these unless crop is true.
* These can be filled in by jtransform_parse_crop_spec().
*/
JDIMENSION crop_width; /* Width of selected region */
@@ -318,8 +318,8 @@ typedef enum {
typedef struct {
/* Options: set by caller */
JXFORM_CODE transform; /* image transform operator */
- boolean trim; /* if TRUE, trim partial MCUs as needed */
- boolean force_grayscale; /* if TRUE, convert color image to grayscale */
+ boolean trim; /* if true, trim partial MCUs as needed */
+ boolean force_grayscale; /* if true, convert color image to grayscale */
/* Internal workspace: caller should not touch these */
int num_components; /* # of components in workspace */