Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

ImageConversions.h

Go to the documentation of this file.
00001 /* ---------------------------------------------------------------------------
00002     Phission : 
00003         Realtime Vision Processing System
00004     
00005     Copyright (C) 2003-2006 Philip D.S. Thoren (pthoren@cs.uml.edu)
00006     University of Massachusetts at Lowell,
00007     Laboratory for Artificial Intelligence and Robotics
00008     
00009     This file is part of Phission.
00010 
00011     Phission is free software; you can redistribute it and/or modify
00012     it under the terms of the GNU Lesser General Public License as published by
00013     the Free Software Foundation; either version 2 of the License, or
00014     (at your option) any later version.
00015 
00016     Phission is distributed in the hope that it will be useful,
00017     but WITHOUT ANY WARRANTY; without even the implied warranty of
00018     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00019     GNU Lesser General Public License for more details.
00020 
00021     You should have received a copy of the GNU Lesser General Public License
00022     along with Phission; if not, write to the Free Software
00023     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00024 
00025  ---------------------------------------------------------------------------*/
00026 #ifndef _IMAGECONVERSIONS_H
00027 #define _IMAGECONVERSIONS_H
00028 
00029 #include <phStandard.h>
00030 #include <phStdint.h>
00031 
00032 #ifdef __cplusplus
00033 extern "C" 
00034 {
00035 #endif /* __cplusplus */
00036 
00037 /* ------------------------------------------------------------------------- */
00053 /* ------------------------------------------------------------------------- */
00090 /* ------------------------------------------------------------------------- */
00098 typedef void (*ph_inplace_convert_fn)( uint32_t w, 
00099                                        uint32_t h, 
00100                                        uint8_t *data );
00106 typedef void (*ph_copy_convert_fn) (   uint32_t w, 
00107                                        uint32_t h, 
00108                                        uint8_t  *data,
00111                                        uint8_t **dst,
00115                                        uint32_t *dst_size );
00121 #define ph_iNULL (ph_inplace_convert_fn)NULL
00122 
00127 #define ph_cNULL (ph_copy_convert_fn)NULL
00128 
00129   
00130 /* ------------------------------------------------------------------------- *
00131  * Main Image Conversion:                                                    *
00132  * ------------------------------------------------------------------------- */
00138 #define phImageCONVERT_INPLACE 1
00139 
00144 #define phImageCONVERT_COPY    0
00145 
00150 #define phImageCONVERT_FAIL    phFAIL
00151 
00181 PHAPI(int) ph_image_convert(uint32_t    width,
00182                             uint32_t    height,
00183                             uint8_t    *data,
00184                             uint8_t   **dst,           /* returned */
00185                             uint32_t   *dst_size,      /* returned */
00186                             uint32_t   *dst_format,    /* returned */
00187                             uint32_t    in_format, 
00188                             uint32_t    out_format,
00189                             int32_t    *conversion_type/* returned */
00190                            );
00191    
00192 /* ------------------------------------------------------------------------- */
00193 /* Swaps the bytes around from RGB to BGR and vice versa.  3 byte depth only */
00194 /* ------------------------------------------------------------------------- */
00199 PHAPI(void) phBGR24_x_RGB24( uint32_t memsize, uint8_t *data );
00200 
00201 /* helper macros */
00203 PHAPI(void) phBGR24_to_RGB24( uint32_t w,uint32_t h,uint8_t *data );
00205 PHAPI(void) phRGB24_to_BGR24( uint32_t w,uint32_t h,uint8_t *data );
00206 
00207 /* ------------------------------------------------------------------------- */
00208 /* Swaps the bytes around from RGBA to ABGR and vice versa. 4 byte depth only*/
00209 /* ------------------------------------------------------------------------- */
00215 PHAPI(void) phABGR32_x_RGBA32   ( uint32_t memsize, uint8_t *data );
00216 
00217 /* BGRA support */
00219 PHAPI(void) phBGRA32_x_RGBA32   ( uint32_t memsize, uint8_t *data );
00221 PHAPI(void) phBGRA32_to_ABGR32  ( uint32_t memsize, uint8_t *data );
00223 PHAPI(void) phABGR32_to_BGRA32  ( uint32_t memsize, uint8_t *data );
00224 
00225 /* helper macros */
00227 PHAPI(void) phABGR32_to_RGBA32     ( uint32_t w,uint32_t h,uint8_t *data );
00229 PHAPI(void) phRGBA32_to_ABGR32     ( uint32_t w,uint32_t h,uint8_t *data );
00231 PHAPI(void) phBGRA32_to_RGBA32     ( uint32_t w,uint32_t h,uint8_t *data );
00233 PHAPI(void) phRGBA32_to_BGRA32     ( uint32_t w,uint32_t h,uint8_t *data );
00235 PHAPI(void) phBGRA32_to_ABGR32_ex  ( uint32_t w,uint32_t h,uint8_t *data );
00237 PHAPI(void) phABGR32_to_BGRA32_ex  ( uint32_t w,uint32_t h,uint8_t *data );
00243 PHAPI(void) phBGR24_to_BGRA32_ex   ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00250 PHAPI(void) phBGR24_to_BGRA32      ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00256 PHAPI(void) phBGRA32_to_BGR24_ex   ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00263 PHAPI(void) phBGRA32_to_BGR24      ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00269 PHAPI(void) phBGRA32_to_RGB24_ex   ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00276 PHAPI(void) phBGRA32_to_RGB24      ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00277 
00278     
00279 /* ------------------------------------------------------------------------- */
00317 PHAPI(void) phVECTOR_BLOCK_COPY( uint32_t   nelems, 
00318                                  uint8_t    elemsize,
00319                                  uint8_t    src_stride,
00320                                  uint8_t    dst_stride,
00321                                  uint8_t    block_size,
00322                                  uint8_t    src_index,
00323                                  uint8_t    dst_index,
00324                                  uint8_t   *src,
00325                                  uint8_t  **dst,
00326                                  uint32_t  *pdstsize );
00327 /* helper macros */
00328 PHAPI(void) phRGB24_to_RGBA32  ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00329 PHAPI(void) phBGR24_to_ABGR32  ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00330 PHAPI(void) phRGBA32_to_RGB24  ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00331 PHAPI(void) phABGR32_to_BGR24  ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00332 PHAPI(void) phGREY8_to_RGB24   ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00333 PHAPI(void) phGREY8_to_BGR24   ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00334 PHAPI(void) phGREY8_to_RGBA32  ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00335 PHAPI(void) phGREY8_to_ABGR32  ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00336 PHAPI(void) phYUV9_to_GREY8    ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00337 
00338 /* These allow the use of preallocated data, must provide the alloc'd size */            
00339 PHAPI(void) phRGB24_to_RGBA32_ex( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00340 PHAPI(void) phBGR24_to_ABGR32_ex( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00341 PHAPI(void) phRGBA32_to_RGB24_ex( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00342 PHAPI(void) phABGR32_to_BGR24_ex( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00343 PHAPI(void) phGREY8_to_RGB24_ex ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00344 PHAPI(void) phGREY8_to_BGR24_ex ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00345 PHAPI(void) phGREY8_to_RGBA32_ex( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00346 PHAPI(void) phGREY8_to_ABGR32_ex( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00347 PHAPI(void) phGREY8_to_BGRA32_ex( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00348 PHAPI(void) phYUV9_to_GREY8_ex  ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00349             
00350 /* ------------------------------------------------------------------------- */
00367 PHAPI(void) phGREY8_to_YUV9_ex( uint32_t    w, 
00368                                 uint32_t    h,
00369                                 uint8_t    *src,
00370                                 uint8_t   **dst,
00371                                 uint32_t   *pdstsize  );
00372 
00373 PHAPI(void) phGREY8_to_YUV9( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00374             
00375 /* ------------------------------------------------------------------------- */
00376 /* composed helper macros */
00377 PHAPI(void) phABGR32_to_RGB24( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00378 PHAPI(void) phRGBA32_to_BGR24( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00379 PHAPI(void) phBGR24_to_RGBA32( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00380 PHAPI(void) phRGB24_to_ABGR32( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00381 PHAPI(void) phRGB24_to_BGRA32( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00382 
00383 /* These allow the use of preallocated data, must provide the alloc'd size */            
00384 PHAPI(void) phABGR32_to_RGB24_ex( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00385 PHAPI(void) phRGBA32_to_BGR24_ex( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00386 PHAPI(void) phBGR24_to_RGBA32_ex( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00387 PHAPI(void) phRGB24_to_ABGR32_ex( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00388 PHAPI(void) phRGB24_to_BGRA32_ex( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00389 
00390 /* ------------------------------------------------------------------------- */
00391 /* Converts RGB, RGBA, BGR, ABGR to grey scale using the luminance equation  */
00392 /* ------------------------------------------------------------------------- */
00417 PHAPI(void) phRGBX_XBGR_to_GREY8_AVERAGE(   uint32_t    nelems,
00418                                             uint8_t     d,
00419                                             uint8_t     order,
00420                                             uint8_t     offset,
00421                                             uint8_t    *src,
00422                                             uint8_t   **dst,
00423                                             uint32_t   *pdstsize  );
00424 
00449 PHAPI(void) phRGBX_XBGR_to_GREY8_LUMINANCE( uint32_t    nelems, 
00450                                             uint8_t     d,
00451                                             uint8_t     order,
00452                                             uint8_t     offset,
00453                                             uint8_t    *src,
00454                                             uint8_t   **dst,
00455                                             uint32_t   *pdstsize  );
00456 /* helper macros */
00457 PHAPI(void) phRGB24_to_GREY8 ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00458 PHAPI(void) phRGBA32_to_GREY8( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00459 PHAPI(void) phBGR24_to_GREY8 ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00460 PHAPI(void) phABGR32_to_GREY8( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00461 PHAPI(void) phBGRA32_to_GREY8( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00462 
00463 /* These allow the use of preallocated data, must provide the alloc'd size */            
00464 PHAPI(void) phRGB24_to_GREY8_ex ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00465 PHAPI(void) phRGBA32_to_GREY8_ex( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00466 PHAPI(void) phBGR24_to_GREY8_ex ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00467 PHAPI(void) phABGR32_to_GREY8_ex( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00468 PHAPI(void) phBGRA32_to_GREY8_ex( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00469                 
00470 /* ------------------------------------------------------------------------- */
00498 PHAPI(void) phRGBX_XBGR_to_YUV9(uint32_t    width,
00499                                 uint32_t    height,
00500                                 uint8_t     d,
00501                                 uint8_t     order, 
00502                                 uint8_t     offset,
00503                                 uint8_t    *src,
00504                                 uint8_t   **dst,
00505                                 uint32_t   *pdstsize  );
00506 
00507 /* helper macros */
00508 PHAPI(void) phRGB24_to_YUV9 ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00509 PHAPI(void) phRGBA32_to_YUV9( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00510 PHAPI(void) phBGR24_to_YUV9 ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00511 PHAPI(void) phABGR32_to_YUV9( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00512 PHAPI(void) phBGRA32_to_YUV9( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00513 
00514 /* These allow the use of preallocated data, must provide the alloc'd size */            
00515 PHAPI(void) phRGB24_to_YUV9_ex ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00516 PHAPI(void) phRGBA32_to_YUV9_ex( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00517 PHAPI(void) phBGR24_to_YUV9_ex ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00518 PHAPI(void) phABGR32_to_YUV9_ex( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00519 PHAPI(void) phBGRA32_to_YUV9_ex( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00520 
00521 /* ------------------------------------------------------------------------- */
00522 /* Modified from John R. Watson's CYUVImage::convertToRGB32.                 */
00523 /* ------------------------------------------------------------------------- */
00563 PHAPI(void) phYUV9_to_RGBX_XBGR(uint32_t    width,
00564                                 uint32_t    height,
00565                                 uint8_t     d,
00566                                 uint8_t     order,
00567                                 uint8_t     offset,
00568                                 uint8_t    *src,
00569                                 uint8_t   **dst,
00570                                 uint32_t   *pdstsize  );
00571 
00572 /* Helper Macros */
00573 PHAPI(void) phYUV9_to_RGB24 ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00574 PHAPI(void) phYUV9_to_RGBA32( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00575 PHAPI(void) phYUV9_to_BGR24 ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00576 PHAPI(void) phYUV9_to_ABGR32( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00577 PHAPI(void) phYUV9_to_BGRA32( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00578 
00579 /* These allow the use of preallocated data, must provide the alloc'd size */            
00580 PHAPI(void) phYUV9_to_RGB24_ex ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00581 PHAPI(void) phYUV9_to_RGBA32_ex( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00582 PHAPI(void) phYUV9_to_BGR24_ex ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00583 PHAPI(void) phYUV9_to_ABGR32_ex( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00584 PHAPI(void) phYUV9_to_BGRA32_ex( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00585 
00586 /* ------------------------------------------------------------------------- */
00620 PHAPI(void) phRGBX_XBGR_to_HSVX(uint32_t    nelems,
00621                                 uint8_t     id,
00622                                 uint8_t     od,
00623                                 uint8_t     order,
00624                                 uint8_t     offset,
00625                                 uint8_t    *src,
00626                                 uint8_t   **dst,
00627                                 uint32_t   *pdstsize  );
00628 
00629 PHAPI(void) phRGB24_to_HSV24 ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00630 PHAPI(void) phRGBA32_to_HSV24( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00631 PHAPI(void) phBGR24_to_HSV24 ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00632 PHAPI(void) phABGR32_to_HSV24( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00633 PHAPI(void) phBGRA32_to_HSV24( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00634 
00635 /* These allow the use of preallocated data, must provide the alloc'd size */            
00636 PHAPI(void) phRGB24_to_HSV24_ex ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00637 PHAPI(void) phRGBA32_to_HSV24_ex( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00638 PHAPI(void) phBGR24_to_HSV24_ex ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00639 PHAPI(void) phABGR32_to_HSV24_ex( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00640 PHAPI(void) phBGRA32_to_HSV24_ex( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00641 
00642 /* ------------------------------------------------------------------------- */
00664 PHAPI(void) phHSVX_to_RGBX_XBGR(uint32_t    nelems,
00665                                 uint8_t     id,
00666                                 uint8_t     od,
00667                                 uint8_t     order,
00668                                 uint8_t     offset,
00669                                 uint8_t    *src,
00670                                 uint8_t   **dst,
00671                                 uint32_t   *pdstsize  );
00672             
00673 PHAPI(void) phHSV24_to_RGB24 ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00674 PHAPI(void) phHSV24_to_RGBA32( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00675 PHAPI(void) phHSV24_to_BGR24 ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00676 PHAPI(void) phHSV24_to_ABGR32( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00677 PHAPI(void) phHSV24_to_BGRA32( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00678 
00679 /* These allow the use of preallocated data, must provide the alloc'd size */            
00680 PHAPI(void) phHSV24_to_RGB24_ex ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00681 PHAPI(void) phHSV24_to_RGBA32_ex( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00682 PHAPI(void) phHSV24_to_BGR24_ex ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00683 PHAPI(void) phHSV24_to_ABGR32_ex( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00684 PHAPI(void) phHSV24_to_BGRA32_ex( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00685 
00686 /* ------------------------------------------------------------------------- */
00728 PHAPI(void) phRGBX_XBGR_to_SCTX(uint32_t    nelems,
00729                                 uint8_t     id,
00730                                 uint8_t     od,
00731                                 uint8_t     order,
00732                                 uint8_t     offset,
00733                                 uint8_t    *src,
00734                                 uint8_t   **dst,
00735                                 uint32_t   *pdstsize );
00736 /* inplace */
00737 PHAPI(void) phRGB24_to_SCT24 ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00738 PHAPI(void) phRGBA32_to_SCT24( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00739 PHAPI(void) phBGR24_to_SCT24 ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00740 PHAPI(void) phABGR32_to_SCT24( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00741 PHAPI(void) phBGRA32_to_SCT24( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00742 
00743 /* These allow the use of preallocated data, must provide the alloc'd size */            
00744 PHAPI(void) phRGB24_to_SCT24_ex ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00745 PHAPI(void) phRGBA32_to_SCT24_ex( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00746 PHAPI(void) phBGR24_to_SCT24_ex ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00747 PHAPI(void) phABGR32_to_SCT24_ex( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00748 PHAPI(void) phBGRA32_to_SCT24_ex( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00749 
00750 /* ------------------------------------------------------------------------- */
00781 PHAPI(void) phSCTX_to_RGBX_XBGR(uint32_t    nelems,
00782                                 uint8_t     id,
00783                                 uint8_t     od,
00784                                 uint8_t     order,
00785                                 uint8_t     offset,
00786                                 uint8_t    *src,
00787                                 uint8_t   **dst,
00788                                 uint32_t   *pdstsize);
00789 
00790 PHAPI(void) phSCT24_to_RGB24 ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00791 PHAPI(void) phSCT24_to_RGBA32( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00792 PHAPI(void) phSCT24_to_BGR24 ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00793 PHAPI(void) phSCT24_to_ABGR32( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00794 PHAPI(void) phSCT24_to_BGRA32( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst );
00795 
00796 /* These allow the use of preallocated data, must provide the alloc'd size */            
00797 PHAPI(void) phSCT24_to_RGB24_ex ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00798 PHAPI(void) phSCT24_to_RGBA32_ex( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00799 PHAPI(void) phSCT24_to_BGR24_ex ( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00800 PHAPI(void) phSCT24_to_ABGR32_ex( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00801 PHAPI(void) phSCT24_to_BGRA32_ex( uint32_t w,uint32_t h,uint8_t *src,uint8_t **dst,uint32_t *pdstsize );
00802 
00803 /* ------------------------------------------------------------------------- */
00804 #ifdef __cplusplus
00805 };
00806 #endif /* __cplusplus */
00807 
00808 /* End the Doxygen group definition */ /* end \addtogroup ImageConversionUtilityFunctions */ /* end \addtogroup Image */
00811     
00812 #endif /* _IMAGECONVERSIONS_H */




Copyright (C) 2002 - 2007 Philip D.S. Thoren ( pthoren@users.sourceforge.net )
University Of Massachusetts at Lowell
Robotics Lab
SourceForge.net Logo

Generated on Sat Jun 16 02:44:01 2007 for phission by  doxygen 1.4.4