alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

Java example source code file (img_globals.h)

This example Java source code file (img_globals.h) is included in the alvinalexander.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Learn more about this Java project at its project page.

Java - Java tags/keywords

image_globals_h, imgcmdata, imgcolordata, imgconvertdata, imgconvertfcn, imgcv_bytein, imgcv_cmbits, imgcv_icm, imgcv_orderbits, imgcv_randorder, imgcv_tdlrorder, num_imgcv, scalenoop, scalesuccess

The img_globals.h Java example source code

/*
 * Copyright (c) 1996, 1998, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.  Oracle designates this
 * particular file as subject to the "Classpath" exception as provided
 * by Oracle in the LICENSE file that accompanied this code.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 */

/*
 * This file provides some global definitions needed by the image
 * conversion package.
 */

#ifndef IMAGE_GLOBALS_H
#define IMAGE_GLOBALS_H


/* Image Conversion function return codes. */
#define SCALEFAILURE    -1
#define SCALENOOP       0
#define SCALESUCCESS    1

/*
 * The constants needed to choose from among the many variants of image
 * conversion functions that can be constructed with the standard header
 * files.  The types of input for the image conversion functions are
 * broken down into 5 different attributes each with 2 to 4 different
 * variants:
 *
 *      SCALING:        SCALED or UNSCALED
 *      INPUT SIZE:     BYTEIN (8-bit) or INTIN (32-bit)
 *      ALPHA:          OPAQUE or ALPHA
 *      ORDER:          TDLR or RANDOM
 *      COLORMODEL:     ICM, DCM, DCM8 (8-bits for each component) or ANY
 *
 * For each attribute, a mask is defined with the "BITS" suffix which
 * identifies which bits contain the variation information for that
 * particular attribute.  The input information should be analyzed and
 * characterized for each of the above categories and the appropriate
 * bit constants OR'd together to produce a unique constant that
 * identifies which conversion function is needed.  The reason that
 * attributes of the output space are not indicated in the masks is
 * that typically only a single output device type needs to be supported
 * at a time and so a vector of the functions specific to the necessary
 * output device can be constructed at AWT initialization time and then
 * indexed into with the constant identifier that characterizes the
 * input data, which is only known and constantly varies at run-time.
 */
#define IMGCV_UNSCALED          (0 << 0)
#define IMGCV_SCALED            (1 << 0)
#define IMGCV_SCALEBITS         (1 << 0)
#define IMGCV_BYTEIN            (0 << 1)
#define IMGCV_INTIN             (1 << 1)
#define IMGCV_INSIZEBITS        (1 << 1)
#define IMGCV_OPAQUE            (0 << 2)
#define IMGCV_ALPHA             (1 << 2)
#define IMGCV_ALPHABITS         (1 << 2)
#define IMGCV_TDLRORDER         (0 << 3)
#define IMGCV_RANDORDER         (1 << 3)
#define IMGCV_ORDERBITS         (1 << 3)
#define IMGCV_ICM               (0 << 4)
#define IMGCV_DCM               (1 << 4)
#define IMGCV_DCM8              (2 << 4)
#define IMGCV_ANYCM             (3 << 4)
#define IMGCV_CMBITS            (3 << 4)

#define NUM_IMGCV               (1 << 6)        /* total # of IMGCV variants */

/*
 * The structure which holds the image conversion data.
 */
typedef struct {
    void *outbuf;
    void *maskbuf;
    void *fserrors;
} ImgConvertData;

/*
 * The standard structure which holds information about the pixels
 * used in the output device.
 */
typedef struct {
    int grayscale;
    int bitsperpixel;
    int rOff;
    int gOff;
    int bOff;
    int rScale;
    int gScale;
    int bScale;
} ImgColorData;

/*
 * The private data member attached to a ColorModel which caches
 * the information needed to characterize and use a ColorModel
 * object on the fly.
 */
typedef struct {
    int type;
    struct methodblock *mb;
} ImgCMData;

/*
 * The standard signature of all of the image conversion functions
 * that can be produced with this package of include files.
 */

/*
 * FIXME!
 */
typedef int ImgConvertFcn(void *colormodel,
                          int srcOX, int srcOY, int srcW, int srcH,
                          void *srcpix, int srcOff, int srcBPP, int srcScan,
                          int srcTotalWidth, int srcTotalHeight,
                          int dstTotalWidth, int dstTotalHeight,
                          ImgConvertData *cvdata, ImgColorData *clrdata);

/*
 * The type of the error matrix used in the ordered dithering code.
 */
typedef unsigned char uns_ordered_dither_array[8][8];
typedef char sgn_ordered_dither_array[8][8];

/*
 * The function provided for constructing the ordered dithering error
 * matrices based on a given quantum (i.e. the amplitude of the maximum
 * error values appearing in the matrix which should be the same as the
 * distance between adjacent allocated component values in the color cube).
 */
extern void make_uns_ordered_dither_array(uns_ordered_dither_array oda,
                                          int quantum);
extern void make_sgn_ordered_dither_array(char* oda, int errmin, int errmax);

/*
 * The function provided for calculating the contents of the ImgCMData
 * structure which can be attached to ColorModels to simplify the
 * work of characterizing their data.
 */
extern ImgCMData *img_getCMData(void *cmh);

#endif /* IMAGE_GLOBALS_H */

Other Java examples (source code examples)

Here is a short list of links related to this Java img_globals.h source code file:

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.