/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* 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.
*/
#ifndef __MLIB_IMAGEZOOM_H
#define __MLIB_IMAGEZOOM_H
#include <mlib_types.h>
#include <mlib_image_types.h>
#include <mlib_status.h>
#include <mlib_ImageCopy.h>
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/***************************************************************/
typedef struct {
/***************************************************************/
typedef struct {
void *dp;
mlib_s32 w, h;
/***************************************************************/
typedef struct mlib_work_image {
void
*src_end,
*colormap;
/***************************************************************/
/***************************************************************/
/***************************************************************/
/***************************************************************/
/***************************************************************/
/***************************************************************/
/***************************************************************/
/***************************************************************/
/***************************************************************/
/***************************************************************/
/***************************************************************/
/* Index image part */
/***************************************************************/
/* Define function and rules for computing edges */
#define MLIB_EDGE_RULES \
switch(edge) { \
\
case MLIB_EDGE_DST_FILL_ZERO: \
\
switch(mlib_ImageGetType(src)) { \
case MLIB_BYTE: \
break; \
\
case MLIB_SHORT: \
case MLIB_USHORT: \
break; \
\
case MLIB_INT: \
break; \
} \
break; \
\
case MLIB_EDGE_OP_NEAREST: \
\
switch(mlib_ImageGetType(src)) { \
case MLIB_BYTE: \
break; \
\
case MLIB_SHORT: \
case MLIB_USHORT: \
break; \
\
case MLIB_INT: \
break; \
} \
break; \
\
case MLIB_EDGE_SRC_EXTEND: \
\
switch(mlib_ImageGetType(src)) { \
case MLIB_BYTE: \
\
switch(filter) { \
case MLIB_BILINEAR: \
break; \
\
case MLIB_BICUBIC: \
break; \
\
case MLIB_BICUBIC2: \
break; \
} \
break; \
\
case MLIB_SHORT: \
switch(filter) { \
case MLIB_BILINEAR: \
break; \
\
case MLIB_BICUBIC: \
break; \
\
case MLIB_BICUBIC2: \
break; \
} \
break; \
\
case MLIB_USHORT: \
switch(filter) { \
case MLIB_BILINEAR: \
break; \
\
case MLIB_BICUBIC: \
break; \
\
case MLIB_BICUBIC2: \
break; \
} \
break; \
\
case MLIB_INT: \
switch(filter) { \
case MLIB_BILINEAR: \
break; \
\
case MLIB_BICUBIC: \
break; \
\
case MLIB_BICUBIC2: \
break; \
} \
break; \
} \
break; \
\
default: \
return MLIB_SUCCESS; \
}
/***************************************************************/
/* Float image part */
/* Double image part*/
/* Edge's */
/***************************************************************/
/***************************************************************/
const mlib_image *src,
const mlib_image *src,
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __MLIB_IMAGEZOOM_H */