mlib_ImageReformat man page on SunOS

Man page or keyword search:  
man Server   20652 pages
apropos Keyword Search (all sections)
Output format
SunOS logo
[printable version]

mlib_ImageReformat(3MLIB) mediaLib Library Functions mlib_ImageReformat(3MLIB)

NAME
       mlib_ImageReformat - image data buffer reformat

SYNOPSIS
       cc [ flag... ] file... -lmlib [ library... ]
       #include <mlib.h>

       mlib_status mlib_ImageReformat(void **dstData, const void **srcData,
	   mlib_s32 numBands, mlib_s32 xSize, mlib_s32 ySize,
	   mlib_type dstDataType, const mlib_s32 *dstBandoffsets,
	   mlib_s32 dstScanlinestride, mlib_s32 dstPixelstride,
	   mlib_type srcDataType, const mlib_s32 *srcBandoffsets,
	   mlib_s32 srcScanlinestride, mlib_s32 srcPixelstride);

DESCRIPTION
       The mlib_ImageReformat() function copies and casts, if needed, an image
       from one buffer to another. The formats and data types of the two  buf‐
       fers may be different.

	 dstPixel[x][y][i] = (dstDataType) srcPixel[x][y][i]

       where the values of a pixel at position (x, y) and in channel i are:

	 srcPixel[x][y][i] = srcData[i][srcBandoffsets[i] +
				       srcScanlinestride*y +
				       srcPixelstride*x]

	 dstPixel[x][y][i] = dstData[i][dstBandoffsets[i] +
				       dstScanlinestride*y +
				       dstPixelstride*x]

       It is the user's responsibility to make sure that the data buffers sup‐
       plied are suitable for this operation. The srcData and dstData can have
       1, 2, 3, or 4 channels, and they must have the same number of channels.
       The  srcDataType	 and  dstDataType  can	 be   MLIB_BYTE,   MLIB_SHORT,
       MLIB_USHORT, MLIB_INT, MLIB_FLOAT, or MLIB_DOUBLE.

       The  conversions	 between  different  data  types  are  implemented  as
       described in the following table:

       Source Type   Dest. Type				   Action
       ────────────────────────────────────────────────────────────────────────────────────
       MLIB_SHORT    MLIB_BYTE	   (mlib_u8)clamp(x, 0, 255)
       MLIB_USHORT   MLIB_BYTE	   (mlib_u8)clamp(x, 0, 255)
       ────────────────────────────────────────────────────────────────────────────────────
       MLIB_INT	     MLIB_BYTE	   (mlib_u8)clamp(x, 0, 255)
       ────────────────────────────────────────────────────────────────────────────────────
       MLIB_FLOAT    MLIB_BYTE	   (mlib_u8)clamp(x, 0, 255)
       ────────────────────────────────────────────────────────────────────────────────────
       MLIB_DOUBLE   MLIB_BYTE	   (mlib_u8)clamp(x, 0, 255)
       ────────────────────────────────────────────────────────────────────────────────────

       MLIB_BYTE     MLIB_SHORT	   (mlib_s16)x
       ────────────────────────────────────────────────────────────────────────────────────
       MLIB_USHORT   MLIB_SHORT	   (mlib_s16)clamp(x, -32768, 32767)
       ────────────────────────────────────────────────────────────────────────────────────
       MLIB_INT	     MLIB_SHORT	   (mlib_s16)clamp(x, -32768, 32767)
       ────────────────────────────────────────────────────────────────────────────────────
       MLIB_FLOAT    MLIB_SHORT	   (mlib_s16)clamp(x, -32768, 32767)
       ────────────────────────────────────────────────────────────────────────────────────
       MLIB_DOUBLE   MLIB_SHORT	   (mlib_s16)clamp(x, -32768, 32767)
       ────────────────────────────────────────────────────────────────────────────────────
       MLIB_BYTE     MLIB_USHORT   (mlib_u16)x
       ────────────────────────────────────────────────────────────────────────────────────
       MLIB_SHORT    MLIB_USHORT   (mlib_u16)clamp(x, 0, 65535)
       ────────────────────────────────────────────────────────────────────────────────────
       MLIB_INT	     MLIB_USHORT   (mlib_u16)clamp(x, 0, 65535)
       ────────────────────────────────────────────────────────────────────────────────────
       MLIB_FLOAT    MLIB_USHORT   (mlib_u16)clamp(x, 0, 65535)
       ────────────────────────────────────────────────────────────────────────────────────
       MLIB_DOUBLE   MLIB_USHORT   (mlib_u16)clamp(x, 0, 65535)
       ────────────────────────────────────────────────────────────────────────────────────
       MLIB_BYTE     MLIB_INT	   (mlib_s32)x
       ────────────────────────────────────────────────────────────────────────────────────
       MLIB_SHORT    MLIB_INT	   (mlib_s32)x
       ────────────────────────────────────────────────────────────────────────────────────
       MLIB_USHORT   MLIB_INT	   (mlib_s32)x
       ────────────────────────────────────────────────────────────────────────────────────
       MLIB_FLOAT    MLIB_INT	   (mlib_s32)clamp(x, -2147483647-1, 2147483647)
       ────────────────────────────────────────────────────────────────────────────────────
       MLIB_DOUBLE   MLIB_INT	   (mlib_s32)clamp(x, -2147483647-1, 2147483647)
       ────────────────────────────────────────────────────────────────────────────────────
       MLIB_BYTE     MLIB_FLOAT	   (mlib_f32)x
       ────────────────────────────────────────────────────────────────────────────────────
       MLIB_SHORT    MLIB_FLOAT	   (mlib_f32)x
       ────────────────────────────────────────────────────────────────────────────────────
       MLIB_USHORT   MLIB_FLOAT	   (mlib_f32)x
       ────────────────────────────────────────────────────────────────────────────────────
       MLIB_INT	     MLIB_FLOAT	   (mlib_f32)x
       ────────────────────────────────────────────────────────────────────────────────────
       MLIB_DOUBLE   MLIB_FLOAT	   (mlib_f32)x
       ────────────────────────────────────────────────────────────────────────────────────
       MLIB_BYTE     MLIB_DOUBLE   (mlib_d64)x
       ────────────────────────────────────────────────────────────────────────────────────
       MLIB_SHORT    MLIB_DOUBLE   (mlib_d64)x
       ────────────────────────────────────────────────────────────────────────────────────
       MLIB_USHORT   MLIB_DOUBLE   (mlib_d64)x
       ────────────────────────────────────────────────────────────────────────────────────
       MLIB_INT	     MLIB_DOUBLE   (mlib_d64)x
       ────────────────────────────────────────────────────────────────────────────────────
       MLIB_FLOAT    MLIB_DOUBLE   (mlib_d64)x

       The actions are defined in C-style pseudo-code. All type	 casts	follow
       the  rules  of  standard	 C. clamp() can be defined as a macro: #define
       clamp(x, low, high) (((x) < (low)) ? (low) : (((x) > (high)) ? (high) :
       (x)))

PARAMETERS
       The function takes the following arguments:

       dstData		    The pointer to the destination image data buffer.

       srcData		    The pointer to the source image data buffer.

       numBands		    The number of channels of the image data buffers.

       xSize		    The width of the image.

       ySize		    The height of the image.

       dstDataType	    The data type of the dstData buffer.

       dstBandoffsets	    The	 initial pixel's offsets in the dstData buffer
			    in terms of destination data buffer elements.

       dstScanlinestride    The scanline stride of the dstData buffer in terms
			    of destination data buffer elements.

       dstPixelstride	    The pixel stride of the dstData buffer in terms of
			    destination data buffer elements.

       srcDataType	    The data type of the srcData buffer.

       srcBandoffsets	    The initial pixel's offsets in the srcData	buffer
			    in terms of source data buffer elements.

       srcScanlinestride    The scanline stride of the srcData buffer in terms
			    of source data buffer elements.

       srcPixelstride	    The pixel stride of the srcData buffer in terms of
			    source data buffer elements.

RETURN VALUES
       The  function  returns MLIB_SUCCESS if successful. Otherwise it returns
       MLIB_FAILURE.

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

       ┌─────────────────────────────┬─────────────────────────────┐
       │      ATTRIBUTE TYPE	     │	    ATTRIBUTE VALUE	   │
       ├─────────────────────────────┼─────────────────────────────┤
       │Interface Stability	     │Committed			   │
       ├─────────────────────────────┼─────────────────────────────┤
       │MT-Level		     │MT-Safe			   │
       └─────────────────────────────┴─────────────────────────────┘

SEE ALSO
       mlib_ImageDataTypeConvert(3MLIB), attributes(5)

SunOS 5.10			  2 Mar 2007	     mlib_ImageReformat(3MLIB)
[top]

List of man pages available for SunOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net