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

Java example source code file (mlib_ImageZoom.h)

This example Java source code file (mlib_ImageZoom.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

format, func_prot, func_prot_bc, func_prot_wo_s_func, getelemstruct, mlib_bicubic2, mlib_bilinear, mlib_byte, mlib_int, mlib_prec, mlib_shift, mlib_short, mlib_ushort, name

The mlib_ImageZoom.h Java example source code

/*
 * Copyright (c) 2003, 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.
 */

#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 void (*mlib_pack_func)(void *, void *, mlib_s32, void *);

/***************************************************************/
typedef struct {
  mlib_s32  width, height,
            srcX, srcY,
            dstX, dstY;
  void      *sp, *dp;
} mlib_clipping;

/***************************************************************/
typedef struct {
  void     *dp;
  mlib_s32 w, h;
  mlib_s32 dlb;
} mlib_edge_box;

/***************************************************************/
typedef struct mlib_work_image {
  mlib_clipping
                *nearest,        /* nearest neighbor state of image */
                *current;        /* current state of image*/
  mlib_s32
                channels,        /* channels in image */
                src_stride, dst_stride,
                width, height,   /* vertical and horizontal size src image */
                DX, DY,
                color;
  void
                *sp, *dp,
                *src_end,
                *buffer_dp,
                *colormap;
  mlib_d64
                zoomx, zoomy;
  mlib_d64
                rzoomx, rzoomy;
  mlib_d64
                xstart, ystart;
  mlib_s32      tshift;           /* shift for size of data type */
  mlib_s32      filter;
  mlib_u8       *filter1, *filter3, *filter4;
  mlib_s32      alpha;
  mlib_edge_box edges[4];
  mlib_edge_box edges_blend[4];
  mlib_s32      chan_d;
  mlib_s32      alp_ind;
  mlib_s32      sline_size;
  mlib_s32      y_max;
} mlib_work_image;

/***************************************************************/
#define GetElemSubStruct(struct, par)          (param->struct->par)
#define GetElemStruct(x)                       (param->x)

/***************************************************************/
#define SetElemSubStruct(struct, par, val)     (param->struct->par = val)
#define SetElemStruct(x, val)                  (param->x = val)

/***************************************************************/

#define VARIABLE_EDGE(FORMAT)                           \
  mlib_edge_box *edges = param->edges;                  \
  mlib_s32 i, j, ch;                                    \
  mlib_s32 channels = param->channels;                  \
  mlib_s32 w1 = edges[0].w;                             \
  mlib_s32 w2 = edges[1].w;                             \
  mlib_s32 w3 = edges[2].w;                             \
  mlib_s32 h1 = edges[0].h;                             \
  mlib_s32 h2 = edges[1].h;                             \
  mlib_s32 h3 = edges[3].h;                             \
  mlib_s32 stride_dp0 = edges[0].dlb;                   \
  mlib_s32 stride_dp1 = edges[1].dlb;                   \
  mlib_s32 stride_dp2 = edges[2].dlb;                   \
  mlib_s32 stride_dp3 = edges[3].dlb;                   \
  mlib_s32 dst_stride = GetElemStruct(dst_stride);      \
  FORMAT *dp0 = edges[0].dp;                            \
  FORMAT *dp1 = edges[1].dp;                            \
  FORMAT *dp2 = edges[2].dp;                            \
  FORMAT *dp3 = edges[3].dp

/***************************************************************/

#define  MLIB_SHIFT                     16
#define  MLIB_PREC                      (1 << MLIB_SHIFT)
#define  MLIB_MASK                      (MLIB_PREC - 1)
#define  MLIB_SCALE                     (1.0 / MLIB_PREC)
#define  MLIB_SIGN_SHIFT                31

/***************************************************************/
#define  MLIB_SCALE_BC_U8               (1.0 / (1 << 28))
#define  MLIB_SCALE_BC_S16              (1.0 / (1 << 30))

/***************************************************************/
typedef mlib_status (*mlib_zoom_fun_type)(mlib_work_image *param);

typedef mlib_status (*mlib_zoom_fun2type)(mlib_work_image *param,
                                          const mlib_f32  *flt_table);

/***************************************************************/
mlib_status mlib_ImageZoom_BIT_1_Nearest(mlib_work_image *param,
                                         mlib_s32        s_bitoff,
                                         mlib_s32        d_bitoff);

mlib_status mlib_ImageZoom_BitToGray_1_Nearest(mlib_work_image *param,
                                               mlib_s32        s_bitoff,
                                               const mlib_s32  *ghigh,
                                               const mlib_s32  *glow);

mlib_status mlib_ImageZoom_U8_1_Nearest(mlib_work_image *param);
mlib_status mlib_ImageZoom_U8_2_Nearest(mlib_work_image *param);
mlib_status mlib_ImageZoom_U8_3_Nearest(mlib_work_image *param);
mlib_status mlib_ImageZoom_U8_4_Nearest(mlib_work_image *param);
mlib_status mlib_ImageZoom_S16_1_Nearest(mlib_work_image *param);
mlib_status mlib_ImageZoom_S16_2_Nearest(mlib_work_image *param);
mlib_status mlib_ImageZoom_S16_3_Nearest(mlib_work_image *param);
mlib_status mlib_ImageZoom_S16_4_Nearest(mlib_work_image *param);
mlib_status mlib_ImageZoom_S32_1_Nearest(mlib_work_image *param);
mlib_status mlib_ImageZoom_S32_2_Nearest(mlib_work_image *param);
mlib_status mlib_ImageZoom_S32_3_Nearest(mlib_work_image *param);
mlib_status mlib_ImageZoom_S32_4_Nearest(mlib_work_image *param);

mlib_status mlib_ImageZoom_S32_1_Bilinear(mlib_work_image *param);
mlib_status mlib_ImageZoom_S32_2_Bilinear(mlib_work_image *param);
mlib_status mlib_ImageZoom_S32_3_Bilinear(mlib_work_image *param);
mlib_status mlib_ImageZoom_S32_4_Bilinear(mlib_work_image *param);

mlib_status mlib_ImageZoom_S32_1_1_Bilinear(mlib_work_image *param);
mlib_status mlib_ImageZoom_S32_2_1_Bilinear(mlib_work_image *param);
mlib_status mlib_ImageZoom_S32_3_1_Bilinear(mlib_work_image *param);
mlib_status mlib_ImageZoom_S32_4_1_Bilinear(mlib_work_image *param);

mlib_status mlib_ImageZoom_S32_1_Bicubic(mlib_work_image *param);
mlib_status mlib_ImageZoom_S32_2_Bicubic(mlib_work_image *param);
mlib_status mlib_ImageZoom_S32_3_Bicubic(mlib_work_image *param);
mlib_status mlib_ImageZoom_S32_4_Bicubic(mlib_work_image *param);

/***************************************************************/
#define FUNC_PROT(NAME)                                         \
  mlib_status NAME##_1(mlib_work_image *param);                 \
  mlib_status NAME##_2(mlib_work_image *param);                 \
  mlib_status NAME##_3(mlib_work_image *param);                 \
  mlib_status NAME##_4(mlib_work_image *param);                 \
  mlib_status NAME##_1s(mlib_work_image *param);                \
  mlib_status NAME##_2s(mlib_work_image *param);                \
  mlib_status NAME##_3s(mlib_work_image *param);                \
  mlib_status NAME##_4s(mlib_work_image *param)

/***************************************************************/
#define FUNC_PROT_WO_S_FUNC(NAME)                               \
  mlib_status NAME##_1(mlib_work_image *param);                 \
  mlib_status NAME##_2(mlib_work_image *param);                 \
  mlib_status NAME##_3(mlib_work_image *param);                 \
  mlib_status NAME##_4(mlib_work_image *param)

/***************************************************************/
#define FUNC_PROT_BC(NAME)                                                  \
  mlib_status NAME##_1(mlib_work_image *param,  const mlib_f32 *flt_table); \
  mlib_status NAME##_2(mlib_work_image *param,  const mlib_f32 *flt_table); \
  mlib_status NAME##_3(mlib_work_image *param,  const mlib_f32 *flt_table); \
  mlib_status NAME##_4(mlib_work_image *param,  const mlib_f32 *flt_table); \
  mlib_status NAME##_1s(mlib_work_image *param, const mlib_f32 *flt_table); \
  mlib_status NAME##_2s(mlib_work_image *param, const mlib_f32 *flt_table); \
  mlib_status NAME##_3s(mlib_work_image *param, const mlib_f32 *flt_table); \
  mlib_status NAME##_4s(mlib_work_image *param, const mlib_f32 *flt_table)

FUNC_PROT(mlib_c_ImageZoomBilinear_U8);
FUNC_PROT(mlib_c_ImageZoomBilinear_S16);
FUNC_PROT(mlib_c_ImageZoomBilinear_U16);

FUNC_PROT_BC(mlib_c_ImageZoomBicubic_U8);
FUNC_PROT_BC(mlib_c_ImageZoomBicubic_S16);
FUNC_PROT_BC(mlib_c_ImageZoomBicubic_U16);

FUNC_PROT(mlib_v_ImageZoomBilinear_U8);
FUNC_PROT(mlib_v_ImageZoomBilinear_S16);
FUNC_PROT(mlib_v_ImageZoomBilinear_U16);

FUNC_PROT(mlib_v_ImageZoomBicubic_U8);
FUNC_PROT(mlib_v_ImageZoomBicubic_S16);
FUNC_PROT(mlib_v_ImageZoomBicubic_U16);

FUNC_PROT(mlib_ImageZoomBilinear_S32);
FUNC_PROT(mlib_ImageZoomBicubic_S32);

FUNC_PROT(mlib_ImageZoomBilinear_F32);
FUNC_PROT_WO_S_FUNC(mlib_ImageZoomBicubic_F32);

FUNC_PROT(mlib_ImageZoomBilinear_D64);
FUNC_PROT_WO_S_FUNC(mlib_ImageZoomBicubic_D64);

/***************************************************************/
/* Index image part */
mlib_status mlib_c_ImageZoomIndex_U8_U8_3_Bilinear(mlib_work_image *param);
mlib_status mlib_c_ImageZoomIndex_U8_S16_3_Bilinear(mlib_work_image *param);
mlib_status mlib_c_ImageZoomIndex_S16_U8_3_Bilinear(mlib_work_image *param);
mlib_status mlib_c_ImageZoomIndex_S16_S16_3_Bilinear(mlib_work_image *param);

mlib_status mlib_c_ImageZoomIndex_U8_U8_4_Bilinear(mlib_work_image *param);
mlib_status mlib_c_ImageZoomIndex_U8_S16_4_Bilinear(mlib_work_image *param);
mlib_status mlib_c_ImageZoomIndex_S16_U8_4_Bilinear(mlib_work_image *param);
mlib_status mlib_c_ImageZoomIndex_S16_S16_4_Bilinear(mlib_work_image *param);

mlib_status mlib_c_ImageZoomIndex_U8_U8_3_Bicubic(mlib_work_image *param);
mlib_status mlib_c_ImageZoomIndex_U8_S16_3_Bicubic(mlib_work_image *param);
mlib_status mlib_c_ImageZoomIndex_S16_U8_3_Bicubic(mlib_work_image *param);
mlib_status mlib_c_ImageZoomIndex_S16_S16_3_Bicubic(mlib_work_image *param);

mlib_status mlib_c_ImageZoomIndex_U8_U8_4_Bicubic(mlib_work_image *param);
mlib_status mlib_c_ImageZoomIndex_U8_S16_4_Bicubic(mlib_work_image *param);
mlib_status mlib_c_ImageZoomIndex_S16_U8_4_Bicubic(mlib_work_image *param);
mlib_status mlib_c_ImageZoomIndex_S16_S16_4_Bicubic(mlib_work_image *param);

mlib_status mlib_c_ImageZoomIndex_U8_U8_3_Bicubic2(mlib_work_image *param);
mlib_status mlib_c_ImageZoomIndex_U8_S16_3_Bicubic2(mlib_work_image *param);
mlib_status mlib_c_ImageZoomIndex_S16_U8_3_Bicubic2(mlib_work_image *param);
mlib_status mlib_c_ImageZoomIndex_S16_S16_3_Bicubic2(mlib_work_image *param);

mlib_status mlib_c_ImageZoomIndex_U8_U8_4_Bicubic2(mlib_work_image *param);
mlib_status mlib_c_ImageZoomIndex_U8_S16_4_Bicubic2(mlib_work_image *param);
mlib_status mlib_c_ImageZoomIndex_S16_U8_4_Bicubic2(mlib_work_image *param);
mlib_status mlib_c_ImageZoomIndex_S16_S16_4_Bicubic2(mlib_work_image *param);

mlib_status mlib_v_ImageZoomIndex_U8_U8_Bilinear(mlib_work_image *param);
mlib_status mlib_v_ImageZoomIndex_U8_S16_Bilinear(mlib_work_image *param);
mlib_status mlib_v_ImageZoomIndex_S16_U8_Bilinear(mlib_work_image *param);
mlib_status mlib_v_ImageZoomIndex_S16_S16_Bilinear(mlib_work_image *param);

mlib_status mlib_v_ImageZoomIndex_U8_U8_Bicubic(mlib_work_image *param);
mlib_status mlib_v_ImageZoomIndex_U8_S16_Bicubic(mlib_work_image *param);
mlib_status mlib_v_ImageZoomIndex_S16_U8_Bicubic(mlib_work_image *param);
mlib_status mlib_v_ImageZoomIndex_S16_S16_Bicubic(mlib_work_image *param);

/***************************************************************/
/*  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:                                 \
          mlib_ImageZoomZeroEdge_U8(param);             \
          break;                                        \
                                                        \
        case MLIB_SHORT:                                \
        case MLIB_USHORT:                               \
          mlib_ImageZoomZeroEdge_S16(param);            \
          break;                                        \
                                                        \
        case MLIB_INT:                                  \
          mlib_ImageZoomZeroEdge_S32(param);            \
          break;                                        \
      }                                                 \
      break;                                            \
                                                        \
    case MLIB_EDGE_OP_NEAREST:                          \
                                                        \
      switch(mlib_ImageGetType(src)) {                  \
        case MLIB_BYTE:                                 \
          mlib_ImageZoomUpNearest_U8(param);            \
          break;                                        \
                                                        \
        case MLIB_SHORT:                                \
        case MLIB_USHORT:                               \
          mlib_ImageZoomUpNearest_S16(param);           \
          break;                                        \
                                                        \
        case MLIB_INT:                                  \
          mlib_ImageZoomUpNearest_S32(param);           \
          break;                                        \
      }                                                 \
      break;                                            \
                                                        \
    case MLIB_EDGE_SRC_EXTEND:                          \
                                                        \
      switch(mlib_ImageGetType(src)) {                  \
        case MLIB_BYTE:                                 \
                                                        \
          switch(filter) {                              \
            case MLIB_BILINEAR:                         \
              mlib_ImageZoomExtend_U8_Bilinear(param);  \
              break;                                    \
                                                        \
            case MLIB_BICUBIC:                          \
              mlib_ImageZoomExtend_U8_Bicubic(param);   \
              break;                                    \
                                                        \
            case MLIB_BICUBIC2:                         \
              mlib_ImageZoomExtend_U8_Bicubic2(param);  \
              break;                                    \
          }                                             \
        break;                                          \
                                                        \
        case MLIB_SHORT:                                \
          switch(filter) {                              \
            case MLIB_BILINEAR:                         \
              mlib_ImageZoomExtend_S16_Bilinear(param); \
              break;                                    \
                                                        \
            case MLIB_BICUBIC:                          \
              mlib_ImageZoomExtend_S16_Bicubic(param);  \
              break;                                    \
                                                        \
            case MLIB_BICUBIC2:                         \
              mlib_ImageZoomExtend_S16_Bicubic2(param); \
              break;                                    \
          }                                             \
        break;                                          \
                                                        \
        case MLIB_USHORT:                               \
          switch(filter) {                              \
            case MLIB_BILINEAR:                         \
              mlib_ImageZoomExtend_U16_Bilinear(param); \
              break;                                    \
                                                        \
            case MLIB_BICUBIC:                          \
              mlib_ImageZoomExtend_U16_Bicubic(param);  \
              break;                                    \
                                                        \
            case MLIB_BICUBIC2:                         \
              mlib_ImageZoomExtend_U16_Bicubic2(param); \
              break;                                    \
          }                                             \
        break;                                          \
                                                        \
        case MLIB_INT:                                  \
          switch(filter) {                              \
            case MLIB_BILINEAR:                         \
              mlib_ImageZoomExtend_S32_Bilinear(param); \
              break;                                    \
                                                        \
            case MLIB_BICUBIC:                          \
              mlib_ImageZoomExtend_S32_Bicubic(param);  \
              break;                                    \
                                                        \
            case MLIB_BICUBIC2:                         \
              mlib_ImageZoomExtend_S32_Bicubic2(param); \
              break;                                    \
          }                                             \
        break;                                          \
      }                                                 \
    break;                                              \
                                                        \
    default:                                            \
      return MLIB_SUCCESS;                              \
  }

/***************************************************************/

void mlib_ImageZoomZeroEdge_U8(mlib_work_image *param);
void mlib_ImageZoomZeroEdge_S16(mlib_work_image *param);
void mlib_ImageZoomZeroEdge_S32(mlib_work_image *param);

void mlib_ImageZoomUpNearest_U8(mlib_work_image *param);
void mlib_ImageZoomUpNearest_S16(mlib_work_image *param);
void mlib_ImageZoomUpNearest_S32(mlib_work_image *param);

void mlib_ImageZoomExtend_U8_Bilinear(mlib_work_image *param);
void mlib_ImageZoomExtend_S16_Bilinear(mlib_work_image *param);
void mlib_ImageZoomExtend_U16_Bilinear(mlib_work_image *param);
void mlib_ImageZoomExtend_S32_Bilinear(mlib_work_image *param);

void mlib_ImageZoomExtend_U8_Bicubic(mlib_work_image *param);
void mlib_ImageZoomExtend_S16_Bicubic(mlib_work_image *param);
void mlib_ImageZoomExtend_U16_Bicubic(mlib_work_image *param);
void mlib_ImageZoomExtend_S32_Bicubic(mlib_work_image *param);

void mlib_ImageZoomExtend_U8_Bicubic2(mlib_work_image *param);
void mlib_ImageZoomExtend_S16_Bicubic2(mlib_work_image *param);
void mlib_ImageZoomExtend_U16_Bicubic2(mlib_work_image *param);
void mlib_ImageZoomExtend_S32_Bicubic2(mlib_work_image *param);

void mlib_ImageZoomIndexExtend_U8_Bilinear(mlib_work_image *param);
void mlib_ImageZoomIndexExtend_S16_Bilinear(mlib_work_image *param);

void mlib_ImageZoomIndexExtend_U8_Bicubic(mlib_work_image *param);
void mlib_ImageZoomIndexExtend_S16_Bicubic(mlib_work_image *param);
void mlib_ImageZoomIndexExtend_U8_Bicubic2(mlib_work_image *param);
void mlib_ImageZoomIndexExtend_S16_Bicubic2(mlib_work_image *param);

/* Float image part */
mlib_status mlib_ImageZoom_F32_1_Nearest(mlib_work_image *param);
mlib_status mlib_ImageZoom_F32_1_Bilinear(mlib_work_image *param);
mlib_status mlib_ImageZoom_F32_1_Bicubic(mlib_work_image *param);
mlib_status mlib_ImageZoom_F32_1_Bicubic2(mlib_work_image *param);

mlib_status mlib_ImageZoom_F32_2_Nearest(mlib_work_image *param);
mlib_status mlib_ImageZoom_F32_2_Bilinear(mlib_work_image *param);
mlib_status mlib_ImageZoom_F32_2_Bicubic(mlib_work_image *param);
mlib_status mlib_ImageZoom_F32_2_Bicubic2(mlib_work_image *param);

mlib_status mlib_ImageZoom_F32_3_Nearest(mlib_work_image *param);
mlib_status mlib_ImageZoom_F32_3_Bilinear(mlib_work_image *param);
mlib_status mlib_ImageZoom_F32_3_Bicubic(mlib_work_image *param);
mlib_status mlib_ImageZoom_F32_3_Bicubic2(mlib_work_image *param);

mlib_status mlib_ImageZoom_F32_4_Nearest(mlib_work_image *param);
mlib_status mlib_ImageZoom_F32_4_Bilinear(mlib_work_image *param);
mlib_status mlib_ImageZoom_F32_4_Bicubic(mlib_work_image *param);
mlib_status mlib_ImageZoom_F32_4_Bicubic2(mlib_work_image *param);

/* Double image part*/
mlib_status mlib_ImageZoom_D64_1_Nearest(mlib_work_image *param);
mlib_status mlib_ImageZoom_D64_1_Bilinear(mlib_work_image *param);
mlib_status mlib_ImageZoom_D64_1_Bicubic(mlib_work_image *param);
mlib_status mlib_ImageZoom_D64_1_Bicubic2(mlib_work_image *param);

mlib_status mlib_ImageZoom_D64_2_Nearest(mlib_work_image *param);
mlib_status mlib_ImageZoom_D64_2_Bilinear(mlib_work_image *param);
mlib_status mlib_ImageZoom_D64_2_Bicubic(mlib_work_image *param);
mlib_status mlib_ImageZoom_D64_2_Bicubic2(mlib_work_image *param);

mlib_status mlib_ImageZoom_D64_3_Nearest(mlib_work_image *param);
mlib_status mlib_ImageZoom_D64_3_Bilinear(mlib_work_image *param);
mlib_status mlib_ImageZoom_D64_3_Bicubic(mlib_work_image *param);
mlib_status mlib_ImageZoom_D64_3_Bicubic2(mlib_work_image *param);

mlib_status mlib_ImageZoom_D64_4_Nearest(mlib_work_image *param);
mlib_status mlib_ImageZoom_D64_4_Bilinear(mlib_work_image *param);
mlib_status mlib_ImageZoom_D64_4_Bicubic(mlib_work_image *param);
mlib_status mlib_ImageZoom_D64_4_Bicubic2(mlib_work_image *param);

/* Edge's */
void mlib_ImageZoomZeroEdge_F32(mlib_work_image *param);
void mlib_ImageZoomZeroEdge_D64(mlib_work_image *param);

void mlib_ImageZoomUpNearest_F32(mlib_work_image *param);
void mlib_ImageZoomUpNearest_D64(mlib_work_image *param);

void mlib_ImageZoomExtend_F32_Bilinear(mlib_work_image *param);
void mlib_ImageZoomExtend_D64_Bilinear(mlib_work_image *param);

void mlib_ImageZoomExtend_F32_Bicubic(mlib_work_image *param);
void mlib_ImageZoomExtend_D64_Bicubic(mlib_work_image *param);

void mlib_ImageZoomExtend_F32_Bicubic2(mlib_work_image *param);
void mlib_ImageZoomExtend_D64_Bicubic2(mlib_work_image *param);

/***************************************************************/

typedef mlib_status (*mlib_zoomblend_fun_type)(mlib_work_image *param, mlib_s32 alp_ind);
typedef mlib_status (*mlib_zoomblend_bc_type)(mlib_work_image *param,
                                              const mlib_f32  *flt_table,
                                              mlib_s32 alp);

mlib_status mlib_ImageZoom_U8_33_Nearest(mlib_work_image *param, mlib_s32 alp_ind);
mlib_status mlib_ImageZoom_U8_43_Nearest(mlib_work_image *param, mlib_s32 alp_ind);
mlib_status mlib_ImageZoom_U8_34_Nearest(mlib_work_image *param, mlib_s32 alp_ind);
mlib_status mlib_ImageZoom_U8_44_Nearest(mlib_work_image *param, mlib_s32 alp_ind);

mlib_status mlib_c_ImageZoomBilinear_U8_3to34(mlib_work_image *param);
mlib_status mlib_c_ImageZoomBilinear_U8_4to34(mlib_work_image *param);

mlib_status mlib_c_ImageZoomBilinear_U8_33(mlib_work_image *param, mlib_s32 alp_ind);
mlib_status mlib_c_ImageZoomBilinear_U8_43(mlib_work_image *param, mlib_s32 alp_ind);
mlib_status mlib_c_ImageZoomBilinear_U8_34(mlib_work_image *param, mlib_s32 alp_ind);
mlib_status mlib_c_ImageZoomBilinear_U8_44(mlib_work_image *param, mlib_s32 alp_ind);

mlib_status mlib_c_ImageZoomBicubic_U8_33(mlib_work_image *param,
                                          const mlib_f32  *flt_table,
                                          mlib_s32 alp);
mlib_status mlib_c_ImageZoomBicubic_U8_43(mlib_work_image *param,
                                          const mlib_f32  *flt_table,
                                          mlib_s32 alp);
mlib_status mlib_c_ImageZoomBicubic_U8_34(mlib_work_image *param,
                                          const mlib_f32  *flt_table,
                                          mlib_s32 alp);
mlib_status mlib_c_ImageZoomBicubic_U8_44(mlib_work_image *param,
                                          const mlib_f32  *flt_table,
                                          mlib_s32 alp);

/***************************************************************/

mlib_status mlib_ZoomBlendEdge(mlib_image *dst,
                               const mlib_image *src,
                               mlib_work_image *param,
                               mlib_filter filter,
                               mlib_edge   edge,
                               mlib_s32    alp_ind);

mlib_status mlib_ImageZoomClipping(mlib_image       *dst,
                                   const mlib_image *src,
                                   mlib_d64         zoomx,
                                   mlib_d64         zoomy,
                                   mlib_d64         tx,
                                   mlib_d64         ty,
                                   mlib_filter      filter,
                                   mlib_edge        edge,
                                   mlib_work_image  *param);

#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __MLIB_IMAGEZOOM_H */

Other Java examples (source code examples)

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

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

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2024 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.