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 |
|
1.4.4