Leptonica 1.85.0
Image processing and image analysis suite
Loading...
Searching...
No Matches
fpix1.c File Reference
#include <string.h>
#include "allheaders.h"
#include "pix_internal.h"

Go to the source code of this file.

Functions

static l_int32 fpixaExtendArray (FPIXA *fpixa)
 
static l_int32 fpixaExtendArrayToSize (FPIXA *fpixa, l_int32 size)
 
FPIXfpixCreate (l_int32 width, l_int32 height)
 
FPIXfpixCreateTemplate (FPIX *fpixs)
 
FPIXfpixClone (FPIX *fpix)
 
FPIXfpixCopy (FPIX *fpixs)
 
void fpixDestroy (FPIX **pfpix)
 
l_ok fpixGetDimensions (FPIX *fpix, l_int32 *pw, l_int32 *ph)
 
l_ok fpixSetDimensions (FPIX *fpix, l_int32 w, l_int32 h)
 
l_int32 fpixGetWpl (FPIX *fpix)
 
l_ok fpixSetWpl (FPIX *fpix, l_int32 wpl)
 
l_ok fpixGetResolution (FPIX *fpix, l_int32 *pxres, l_int32 *pyres)
 
l_ok fpixSetResolution (FPIX *fpix, l_int32 xres, l_int32 yres)
 
l_ok fpixCopyResolution (FPIX *fpixd, FPIX *fpixs)
 
l_float32 * fpixGetData (FPIX *fpix)
 
l_ok fpixSetData (FPIX *fpix, l_float32 *data)
 
l_ok fpixGetPixel (FPIX *fpix, l_int32 x, l_int32 y, l_float32 *pval)
 
l_ok fpixSetPixel (FPIX *fpix, l_int32 x, l_int32 y, l_float32 val)
 
FPIXAfpixaCreate (l_int32 n)
 
FPIXAfpixaCopy (FPIXA *fpixa, l_int32 copyflag)
 
void fpixaDestroy (FPIXA **pfpixa)
 
l_ok fpixaAddFPix (FPIXA *fpixa, FPIX *fpix, l_int32 copyflag)
 
l_int32 fpixaGetCount (FPIXA *fpixa)
 
FPIXfpixaGetFPix (FPIXA *fpixa, l_int32 index, l_int32 accesstype)
 
l_ok fpixaGetFPixDimensions (FPIXA *fpixa, l_int32 index, l_int32 *pw, l_int32 *ph)
 
l_float32 * fpixaGetData (FPIXA *fpixa, l_int32 index)
 
l_ok fpixaGetPixel (FPIXA *fpixa, l_int32 index, l_int32 x, l_int32 y, l_float32 *pval)
 
l_ok fpixaSetPixel (FPIXA *fpixa, l_int32 index, l_int32 x, l_int32 y, l_float32 val)
 
DPIXdpixCreate (l_int32 width, l_int32 height)
 
DPIXdpixCreateTemplate (DPIX *dpixs)
 
DPIXdpixClone (DPIX *dpix)
 
DPIXdpixCopy (DPIX *dpixs)
 
void dpixDestroy (DPIX **pdpix)
 
l_ok dpixGetDimensions (DPIX *dpix, l_int32 *pw, l_int32 *ph)
 
l_ok dpixSetDimensions (DPIX *dpix, l_int32 w, l_int32 h)
 
l_int32 dpixGetWpl (DPIX *dpix)
 
l_ok dpixSetWpl (DPIX *dpix, l_int32 wpl)
 
l_ok dpixGetResolution (DPIX *dpix, l_int32 *pxres, l_int32 *pyres)
 
l_ok dpixSetResolution (DPIX *dpix, l_int32 xres, l_int32 yres)
 
l_ok dpixCopyResolution (DPIX *dpixd, DPIX *dpixs)
 
l_float64 * dpixGetData (DPIX *dpix)
 
l_ok dpixSetData (DPIX *dpix, l_float64 *data)
 
l_ok dpixGetPixel (DPIX *dpix, l_int32 x, l_int32 y, l_float64 *pval)
 
l_ok dpixSetPixel (DPIX *dpix, l_int32 x, l_int32 y, l_float64 val)
 
FPIXfpixRead (const char *filename)
 
FPIXfpixReadStream (FILE *fp)
 
FPIXfpixReadMem (const l_uint8 *data, size_t size)
 
l_ok fpixWrite (const char *filename, FPIX *fpix)
 
l_ok fpixWriteStream (FILE *fp, FPIX *fpix)
 
l_ok fpixWriteMem (l_uint8 **pdata, size_t *psize, FPIX *fpix)
 
FPIXfpixEndianByteSwap (FPIX *fpixd, FPIX *fpixs)
 
DPIXdpixRead (const char *filename)
 
DPIXdpixReadStream (FILE *fp)
 
DPIXdpixReadMem (const l_uint8 *data, size_t size)
 
l_ok dpixWrite (const char *filename, DPIX *dpix)
 
l_ok dpixWriteStream (FILE *fp, DPIX *dpix)
 
l_ok dpixWriteMem (l_uint8 **pdata, size_t *psize, DPIX *dpix)
 
DPIXdpixEndianByteSwap (DPIX *dpixd, DPIX *dpixs)
 
l_ok fpixPrintStream (FILE *fp, FPIX *fpix, l_int32 factor)
 

Variables

static const size_t MaxPtrArraySize = 100000
 
static const size_t InitialPtrArraySize = 20
 

Detailed Description


   ---------------------------------------------------
   This file has these FPix, FPixa and DPix utilities:
        - creation and destruction
        - accessors
        - serialization and deserialization
   ---------------------------------------------------

   FPix Create/copy/destroy
         FPIX          *fpixCreate()
         FPIX          *fpixCreateTemplate()
         FPIX          *fpixClone()
         FPIX          *fpixCopy()
         void           fpixDestroy()

   FPix accessors
         l_int32        fpixGetDimensions()
         l_int32        fpixSetDimensions()
         l_int32        fpixGetWpl()
         l_int32        fpixSetWpl()
         l_int32        fpixGetResolution()
         l_int32        fpixSetResolution()
         l_int32        fpixCopyResolution()
         l_float32     *fpixGetData()
         l_int32        fpixSetData()
         l_int32        fpixGetPixel()
         l_int32        fpixSetPixel()

   FPixa Create/copy/destroy
         FPIXA         *fpixaCreate()
         FPIXA         *fpixaCopy()
         void           fpixaDestroy()

   FPixa addition
         l_int32        fpixaAddFPix()
         static l_int32 fpixaExtendArray()
         static l_int32 fpixaExtendArrayToSize()

   FPixa accessors
         l_int32        fpixaGetCount()
         FPIX          *fpixaGetFPix()
         l_int32        fpixaGetFPixDimensions()
         l_float32     *fpixaGetData()
         l_int32        fpixaGetPixel()
         l_int32        fpixaSetPixel()

   DPix Create/copy/destroy
         DPIX          *dpixCreate()
         DPIX          *dpixCreateTemplate()
         DPIX          *dpixClone()
         DPIX          *dpixCopy()
         void           dpixDestroy()

   DPix accessors
         l_int32        dpixGetDimensions()
         l_int32        dpixSetDimensions()
         l_int32        dpixGetWpl()
         l_int32        dpixSetWpl()
         l_int32        dpixGetResolution()
         l_int32        dpixSetResolution()
         l_int32        dpixCopyResolution()
         l_float64     *dpixGetData()
         l_int32        dpixSetData()
         l_int32        dpixGetPixel()
         l_int32        dpixSetPixel()

   FPix serialized I/O
         FPIX          *fpixRead()
         FPIX          *fpixReadStream()
         FPIX          *fpixReadMem()
         l_int32        fpixWrite()
         l_int32        fpixWriteStream()
         l_int32        fpixWriteMem()
         FPIX          *fpixEndianByteSwap()

   DPix serialized I/O
         DPIX          *dpixRead()
         DPIX          *dpixReadStream()
         DPIX          *dpixReadMem()
         l_int32        dpixWrite()
         l_int32        dpixWriteStream()
         l_int32        dpixWriteMem()
         DPIX          *dpixEndianByteSwap()

   Print FPix (subsampled, for debugging)
         l_int32        fpixPrintStream()

Definition in file fpix1.c.

Function Documentation

◆ dpixClone()

DPIX * dpixClone ( DPIX * dpix)

dpixClone()

Parameters
[in]dpix
Returns
same dpix ptr, or NULL on error
Notes:
     (1) See pixClone() for definition and usage.

Definition at line 1034 of file fpix1.c.

References DPix::refcount.

Referenced by dpixEndianByteSwap().

◆ dpixCopy()

DPIX * dpixCopy ( DPIX * dpixs)

dpixCopy()

Parameters
[in]dpixs
Returns
dpixd, or NULL on error

Definition at line 1050 of file fpix1.c.

References dpixCreateTemplate(), dpixGetData(), and dpixGetDimensions().

Referenced by dpixEndianByteSwap().

◆ dpixCopyResolution()

l_ok dpixCopyResolution ( DPIX * dpixd,
DPIX * dpixs )

dpixCopyResolution()

Parameters
[in]dpixd,dpixs
Returns
0 if OK, 1 on error

Definition at line 1237 of file fpix1.c.

References dpixGetResolution(), and dpixSetResolution().

Referenced by dpixCreateTemplate().

◆ dpixCreate()

DPIX * dpixCreate ( l_int32 width,
l_int32 height )

dpixCreate()

Parameters
[in]width,height
Returns
dpix with data allocated and initialized to 0, or NULL on error
Notes:
     (1) Makes a DPix of specified size, with the data array
         allocated and initialized to 0.
     (2) The number of pixels must be less than 2^28.

Definition at line 959 of file fpix1.c.

References dpixDestroy(), dpixSetData(), dpixSetDimensions(), dpixSetWpl(), and DPix::refcount.

Referenced by dpixCreateTemplate(), and dpixReadStream().

◆ dpixCreateTemplate()

DPIX * dpixCreateTemplate ( DPIX * dpixs)

dpixCreateTemplate()

Parameters
[in]dpixs
Returns
dpixd, or NULL on error
Notes:
     (1) Makes a DPix of the same size as the input DPix, with the
         data array allocated and initialized to 0.
     (2) Copies the resolution.

Definition at line 1007 of file fpix1.c.

References dpixCopyResolution(), dpixCreate(), and dpixGetDimensions().

Referenced by dpixCopy().

◆ dpixDestroy()

void dpixDestroy ( DPIX ** pdpix)

dpixDestroy()

Parameters
[in,out]pdpixwill be set to null before returning
Returns
void
Notes:
     (1) Decrements the ref count and, if 0, destroys the dpix.
     (2) Always nulls the input ptr.

Definition at line 1085 of file fpix1.c.

References dpixGetData(), and DPix::refcount.

Referenced by dpixCreate(), dpixReadStream(), and dpixWriteStream().

◆ dpixEndianByteSwap()

DPIX * dpixEndianByteSwap ( DPIX * dpixd,
DPIX * dpixs )

dpixEndianByteSwap()

Parameters
[in]dpixd[optional] can be either NULL, or equal to dpixs
[in]dpixs
Returns
dpixd always
Notes:
     (1) On big-endian hardware, this does byte-swapping on each of
         the 4-byte words in the dpix data.  On little-endians,
         the data is unchanged.  This is used for serialization
         of dpix; the data is serialized in little-endian byte
         order because most hardware is little-endian.
     (2) The operation can be either in-place or, if dpixd == NULL,
         a new dpix is made.  If not in-place, caller must catch
         the returned pointer.

Definition at line 1888 of file fpix1.c.

References dpixClone(), dpixCopy(), dpixGetData(), and dpixGetDimensions().

Referenced by dpixReadStream(), and dpixWriteStream().

◆ dpixGetData()

l_float64 * dpixGetData ( DPIX * dpix)

dpixGetData()

Parameters
[in]dpix
Returns
ptr to dpix data, or NULL on error

Definition at line 1257 of file fpix1.c.

References DPix::data.

Referenced by dpixCopy(), dpixDestroy(), dpixEndianByteSwap(), dpixReadStream(), and dpixWriteStream().

◆ dpixGetDimensions()

l_ok dpixGetDimensions ( DPIX * dpix,
l_int32 * pw,
l_int32 * ph )

dpixGetDimensions()

Parameters
[in]dpix
[out]pw,ph[optional] each can be null
Returns
0 if OK, 1 on error

Definition at line 1119 of file fpix1.c.

References DPix::h, and DPix::w.

Referenced by dpixCopy(), dpixCreateTemplate(), dpixEndianByteSwap(), dpixGetPixel(), dpixSetPixel(), and dpixWriteStream().

◆ dpixGetPixel()

l_ok dpixGetPixel ( DPIX * dpix,
l_int32 x,
l_int32 y,
l_float64 * pval )

dpixGetPixel()

Parameters
[in]dpix
[in]x,ypixel coords
[out]pvalpixel value
Returns
0 if OK; 1 or 2 on error

Notes: (1) If the point is outside the image, this returns an error (2), with 0.0 in pval. To avoid spamming output, it fails silently.

Definition at line 1297 of file fpix1.c.

References DPix::data, and dpixGetDimensions().

◆ dpixGetResolution()

l_ok dpixGetResolution ( DPIX * dpix,
l_int32 * pxres,
l_int32 * pyres )

dpixGetResolution()

Parameters
[in]dpix
[out]pxres,pyres[optional] x and y resolution
Returns
0 if OK, 1 on error

Definition at line 1197 of file fpix1.c.

References DPix::xres, and DPix::yres.

Referenced by dpixCopyResolution(), and dpixWriteStream().

◆ dpixGetWpl()

l_int32 dpixGetWpl ( DPIX * dpix)

dpixGetWpl()

Parameters
[in]dpix
Returns
wpl, or 0 on error

Definition at line 1162 of file fpix1.c.

References DPix::wpl.

◆ dpixRead()

DPIX * dpixRead ( const char * filename)

dpixRead()

Parameters
[in]filename
Returns
dpix, or NULL on error

Definition at line 1650 of file fpix1.c.

References dpixReadStream().

◆ dpixReadMem()

DPIX * dpixReadMem ( const l_uint8 * data,
size_t size )

dpixReadMem()

Parameters
[in]dataof serialized dpix
[in]sizeof data in bytes
Returns
dpix, or NULL on error

Definition at line 1727 of file fpix1.c.

References dpixReadStream().

◆ dpixReadStream()

DPIX * dpixReadStream ( FILE * fp)

dpixReadStream()

Parameters
[in]fpfile stream
Returns
dpix, or NULL on error

Definition at line 1676 of file fpix1.c.

References DPIX_VERSION_NUMBER, dpixCreate(), dpixDestroy(), dpixEndianByteSwap(), dpixGetData(), and dpixSetResolution().

Referenced by dpixRead(), and dpixReadMem().

◆ dpixSetData()

l_ok dpixSetData ( DPIX * dpix,
l_float64 * data )

dpixSetData()

Parameters
[in]dpix
[in]data
Returns
0 if OK, 1 on error

Definition at line 1273 of file fpix1.c.

References DPix::data.

Referenced by dpixCreate().

◆ dpixSetDimensions()

l_ok dpixSetDimensions ( DPIX * dpix,
l_int32 w,
l_int32 h )

dpixSetDimensions()

Parameters
[in]dpix
[in]w,h
Returns
0 if OK, 1 on error

Definition at line 1143 of file fpix1.c.

References DPix::h, and DPix::w.

Referenced by dpixCreate().

◆ dpixSetPixel()

l_ok dpixSetPixel ( DPIX * dpix,
l_int32 x,
l_int32 y,
l_float64 val )

dpixSetPixel()

Parameters
[in]dpix
[in]x,ypixel coords
[in]valpixel value
Returns
0 if OK; 1 or 2 on error

Notes: (1) If the point is outside the image, this returns an error (2), with 0.0 in pval. To avoid spamming output, it fails silently.

Definition at line 1332 of file fpix1.c.

References DPix::data, and dpixGetDimensions().

◆ dpixSetResolution()

l_ok dpixSetResolution ( DPIX * dpix,
l_int32 xres,
l_int32 yres )

dpixSetResolution()

Parameters
[in]dpix
[in]xres,yresx and y resolution
Returns
0 if OK, 1 on error

Definition at line 1217 of file fpix1.c.

References DPix::xres, and DPix::yres.

Referenced by dpixCopyResolution(), and dpixReadStream().

◆ dpixSetWpl()

l_ok dpixSetWpl ( DPIX * dpix,
l_int32 wpl )

dpixSetWpl()

Parameters
[in]dpix
[in]wpl
Returns
0 if OK, 1 on error

Definition at line 1178 of file fpix1.c.

References DPix::wpl.

Referenced by dpixCreate().

◆ dpixWrite()

l_ok dpixWrite ( const char * filename,
DPIX * dpix )

dpixWrite()

Parameters
[in]filename
[in]dpix
Returns
0 if OK, 1 on error

Definition at line 1753 of file fpix1.c.

References dpixWriteStream().

◆ dpixWriteMem()

l_ok dpixWriteMem ( l_uint8 ** pdata,
size_t * psize,
DPIX * dpix )

dpixWriteMem()

Parameters
[out]pdatadata of serialized dpix
[out]psizesize of returned data
[in]dpix
Returns
0 if OK, 1 on error
Notes:
     (1) Serializes a dpix in memory and puts the result in a buffer.

Definition at line 1827 of file fpix1.c.

References dpixWriteStream().

◆ dpixWriteStream()

l_ok dpixWriteStream ( FILE * fp,
DPIX * dpix )

dpixWriteStream()

Parameters
[in]fpfile stream opened for "wb"
[in]dpix
Returns
0 if OK, 1 on error

Definition at line 1782 of file fpix1.c.

References DPIX_VERSION_NUMBER, dpixDestroy(), dpixEndianByteSwap(), dpixGetData(), dpixGetDimensions(), and dpixGetResolution().

Referenced by dpixWrite(), and dpixWriteMem().

◆ fpixaAddFPix()

l_ok fpixaAddFPix ( FPIXA * fpixa,
FPIX * fpix,
l_int32 copyflag )

fpixaAddFPix()

Parameters
[in]fpixa
[in]fpixto be added
[in]copyflagL_INSERT, L_COPY, L_CLONE
Returns
0 if OK; 1 on error

Definition at line 669 of file fpix1.c.

References FPixa::fpix, fpixaExtendArray(), fpixaGetCount(), fpixClone(), fpixCopy(), fpixDestroy(), L_CLONE, L_COPY, L_INSERT, FPixa::n, and FPixa::nalloc.

Referenced by fpixaCopy().

◆ fpixaCopy()

FPIXA * fpixaCopy ( FPIXA * fpixa,
l_int32 copyflag )

fpixaCopy()

Parameters
[in]fpixa
[in]copyflagL_COPY, L_CLODE or L_COPY_CLONE
Returns
new fpixa, or NULL on error
Notes:
     copyflag may be one of
       ~ L_COPY makes a new fpixa and copies each fpix
       ~ L_CLONE gives a new ref-counted handle to the input fpixa
       ~ L_COPY_CLONE makes a new fpixa with clones of all fpix

Definition at line 588 of file fpix1.c.

References fpixaAddFPix(), fpixaCreate(), fpixaGetFPix(), L_CLONE, L_COPY, L_COPY_CLONE, L_INSERT, FPixa::n, and FPixa::refcount.

◆ fpixaCreate()

FPIXA * fpixaCreate ( l_int32 n)

fpixaCreate()

Parameters
[in]ninitial number of ptrs
Returns
fpixa, or NULL on error

Definition at line 556 of file fpix1.c.

References FPixa::fpix, InitialPtrArraySize, FPixa::n, FPixa::nalloc, and FPixa::refcount.

Referenced by fpixaCopy().

◆ fpixaDestroy()

void fpixaDestroy ( FPIXA ** pfpixa)

fpixaDestroy()

Parameters
[in,out]pfpixawill be set to null before returning
Returns
void
Notes:
     (1) Decrements the ref count and, if 0, destroys the fpixa.
     (2) Always nulls the input ptr.

Definition at line 633 of file fpix1.c.

References FPixa::fpix, fpixDestroy(), FPixa::n, and FPixa::refcount.

◆ fpixaExtendArray()

static l_int32 fpixaExtendArray ( FPIXA * fpixa)
static

fpixaExtendArray()

Parameters
[in]fpixa
Returns
0 if OK; 1 on error
Notes:
     (1) Doubles the size of the fpixa ptr array.
     (2) The max number of fpix ptrs is 100000.

Definition at line 719 of file fpix1.c.

References fpixaExtendArrayToSize(), and FPixa::nalloc.

Referenced by fpixaAddFPix().

◆ fpixaExtendArrayToSize()

static l_int32 fpixaExtendArrayToSize ( FPIXA * fpixa,
l_int32 size )
static

fpixaExtendArrayToSize()

Parameters
[in]fpixa
[in]sizenew ptr array size
Returns
0 if OK; 1 on error
Notes:
     (1) If necessary, reallocs new fpix ptr array to size.
     (2) The max number of fpix ptrs is 100K.

Definition at line 742 of file fpix1.c.

References FPixa::fpix, and FPixa::nalloc.

Referenced by fpixaExtendArray().

◆ fpixaGetCount()

l_int32 fpixaGetCount ( FPIXA * fpixa)

fpixaGetCount()

Parameters
[in]fpixa
Returns
count, or 0 if no pixa

Definition at line 778 of file fpix1.c.

References FPixa::n.

Referenced by fpixaAddFPix(), fpixaGetData(), fpixaGetPixel(), and fpixaSetPixel().

◆ fpixaGetData()

l_float32 * fpixaGetData ( FPIXA * fpixa,
l_int32 index )

fpixaGetData()

Parameters
[in]fpixa
[in]indexinto fpixa array
Returns
data not a copy, or NULL on error

Definition at line 855 of file fpix1.c.

References fpixaGetCount(), fpixaGetFPix(), fpixDestroy(), fpixGetData(), and L_CLONE.

◆ fpixaGetFPix()

FPIX * fpixaGetFPix ( FPIXA * fpixa,
l_int32 index,
l_int32 accesstype )

fpixaGetFPix()

Parameters
[in]fpixa
[in]indexto the index-th fpix
[in]accesstypeL_COPY or L_CLONE
Returns
fpix, or NULL on error

Definition at line 796 of file fpix1.c.

References FPixa::fpix, fpixClone(), fpixCopy(), L_CLONE, L_COPY, and FPixa::n.

Referenced by fpixaCopy(), fpixaGetData(), fpixaGetFPixDimensions(), fpixaGetPixel(), and fpixaSetPixel().

◆ fpixaGetFPixDimensions()

l_ok fpixaGetFPixDimensions ( FPIXA * fpixa,
l_int32 index,
l_int32 * pw,
l_int32 * ph )

fpixaGetFPixDimensions()

Parameters
[in]fpixa
[in]indexto the index-th box
[out]pw,ph[optional] each can be null
Returns
0 if OK, 1 on error

Definition at line 823 of file fpix1.c.

References fpixaGetFPix(), fpixDestroy(), fpixGetDimensions(), L_CLONE, and FPixa::n.

◆ fpixaGetPixel()

l_ok fpixaGetPixel ( FPIXA * fpixa,
l_int32 index,
l_int32 x,
l_int32 y,
l_float32 * pval )

fpixaGetPixel()

Parameters
[in]fpixa
[in]indexinto fpixa array
[in]x,ypixel coords
[out]pvalpixel value
Returns
0 if OK; 1 on error

Definition at line 885 of file fpix1.c.

References fpixaGetCount(), fpixaGetFPix(), fpixDestroy(), fpixGetPixel(), and L_CLONE.

◆ fpixaSetPixel()

l_ok fpixaSetPixel ( FPIXA * fpixa,
l_int32 index,
l_int32 x,
l_int32 y,
l_float32 val )

fpixaSetPixel()

Parameters
[in]fpixa
[in]indexinto fpixa array
[in]x,ypixel coords
[in]valpixel value
Returns
0 if OK; 1 on error

Definition at line 920 of file fpix1.c.

References fpixaGetCount(), fpixaGetFPix(), fpixDestroy(), fpixSetPixel(), and L_CLONE.

◆ fpixClone()

FPIX * fpixClone ( FPIX * fpix)

fpixClone()

Parameters
[in]fpix
Returns
same fpix ptr, or NULL on error
Notes:
     (1) See pixClone() for definition and usage.

Definition at line 228 of file fpix1.c.

References FPix::refcount.

Referenced by fpixaAddFPix(), fpixaGetFPix(), and fpixEndianByteSwap().

◆ fpixCopy()

FPIX * fpixCopy ( FPIX * fpixs)

fpixCopy()

Parameters
[in]fpixs
Returns
fpixd, or NULL on error

Definition at line 245 of file fpix1.c.

References fpixCreateTemplate(), fpixGetData(), and fpixGetDimensions().

Referenced by fpixaAddFPix(), fpixaGetFPix(), and fpixEndianByteSwap().

◆ fpixCopyResolution()

l_ok fpixCopyResolution ( FPIX * fpixd,
FPIX * fpixs )

fpixCopyResolution()

Parameters
[in]fpixd,fpixs
Returns
0 if OK, 1 on error

Definition at line 432 of file fpix1.c.

References fpixGetResolution(), and fpixSetResolution().

Referenced by fpixCreateTemplate().

◆ fpixCreate()

FPIX * fpixCreate ( l_int32 width,
l_int32 height )

fpixCreate()

Parameters
[in]width,height
Returns
fpixd with data allocated and initialized to 0, or NULL on error
Notes:
     (1) Makes a FPix of specified size, with the data array
         allocated and initialized to 0.
     (2) The number of pixels must be less than 2^29.

Definition at line 152 of file fpix1.c.

References fpixDestroy(), fpixSetData(), fpixSetDimensions(), fpixSetWpl(), and FPix::refcount.

Referenced by fpixCreateTemplate(), and fpixReadStream().

◆ fpixCreateTemplate()

FPIX * fpixCreateTemplate ( FPIX * fpixs)

fpixCreateTemplate()

Parameters
[in]fpixs
Returns
fpixd, or NULL on error
Notes:
     (1) Makes a FPix of the same size as the input FPix, with the
         data array allocated and initialized to 0.
     (2) Copies the resolution.

Definition at line 200 of file fpix1.c.

References fpixCopyResolution(), fpixCreate(), and fpixGetDimensions().

Referenced by fpixCopy().

◆ fpixDestroy()

void fpixDestroy ( FPIX ** pfpix)

fpixDestroy()

Parameters
[in,out]pfpixwill be set to null before returning
Returns
void
Notes:
     (1) Decrements the ref count and, if 0, destroys the fpix.
     (2) Always nulls the input ptr.

Definition at line 280 of file fpix1.c.

References fpixGetData(), and FPix::refcount.

Referenced by fpixaAddFPix(), fpixaDestroy(), fpixaGetData(), fpixaGetFPixDimensions(), fpixaGetPixel(), fpixaSetPixel(), fpixCreate(), fpixReadStream(), and fpixWriteStream().

◆ fpixEndianByteSwap()

FPIX * fpixEndianByteSwap ( FPIX * fpixd,
FPIX * fpixs )

fpixEndianByteSwap()

Parameters
[in]fpixd[optional] can be either NULL, or equal to fpixs
[in]fpixs
Returns
fpixd always
Notes:
     (1) On big-endian hardware, this does byte-swapping on each of
         the 4-byte floats in the fpix data.  On little-endians,
         the data is unchanged.  This is used for serialization
         of fpix; the data is serialized in little-endian byte
         order because most hardware is little-endian.
     (2) The operation can be either in-place or, if fpixd == NULL,
         a new fpix is made.  If not in-place, caller must catch
         the returned pointer.

Definition at line 1599 of file fpix1.c.

References fpixClone(), fpixCopy(), fpixGetData(), and fpixGetDimensions().

Referenced by fpixReadStream(), and fpixWriteStream().

◆ fpixGetData()

l_float32 * fpixGetData ( FPIX * fpix)

fpixGetData()

Parameters
[in]fpix
Returns
ptr to fpix data, or NULL on error

Definition at line 452 of file fpix1.c.

References FPix::data.

Referenced by fpixaGetData(), fpixCopy(), fpixDestroy(), fpixEndianByteSwap(), fpixReadStream(), and fpixWriteStream().

◆ fpixGetDimensions()

l_ok fpixGetDimensions ( FPIX * fpix,
l_int32 * pw,
l_int32 * ph )

fpixGetDimensions()

Parameters
[in]fpix
[out]pw,ph[optional] each can be null
Returns
0 if OK, 1 on error

Definition at line 314 of file fpix1.c.

References FPix::h, and FPix::w.

Referenced by fpixaGetFPixDimensions(), fpixCopy(), fpixCreateTemplate(), fpixEndianByteSwap(), fpixGetPixel(), fpixPrintStream(), fpixSetPixel(), and fpixWriteStream().

◆ fpixGetPixel()

l_ok fpixGetPixel ( FPIX * fpix,
l_int32 x,
l_int32 y,
l_float32 * pval )

fpixGetPixel()

Parameters
[in]fpix
[in]x,ypixel coords
[out]pvalpixel value
Returns
0 if OK; 1 or 2 on error

Notes: (1) If the point is outside the image, this returns an error (2), with 0.0 in pval. To avoid spamming output, it fails silently.

Definition at line 492 of file fpix1.c.

References FPix::data, and fpixGetDimensions().

Referenced by fpixaGetPixel(), and fpixPrintStream().

◆ fpixGetResolution()

l_ok fpixGetResolution ( FPIX * fpix,
l_int32 * pxres,
l_int32 * pyres )

fpixGetResolution()

Parameters
[in]fpix
[out]pxres,pyres[optional] x and y resolution
Returns
0 if OK, 1 on error

Definition at line 392 of file fpix1.c.

References FPix::xres, and FPix::yres.

Referenced by fpixCopyResolution(), and fpixWriteStream().

◆ fpixGetWpl()

l_int32 fpixGetWpl ( FPIX * fpix)

fpixGetWpl()

Parameters
[in]fpix
Returns
wpl, or 0 on error

Definition at line 357 of file fpix1.c.

References FPix::wpl.

◆ fpixPrintStream()

l_ok fpixPrintStream ( FILE * fp,
FPIX * fpix,
l_int32 factor )

fpixPrintStream()

Parameters
[in]fpfile stream
[in]fpix
[in]factorfor subsampling
Returns
0 if OK, 1 on error
Notes:
     (1) Subsampled printout of fpix for debugging.

Definition at line 1946 of file fpix1.c.

References fpixGetDimensions(), and fpixGetPixel().

◆ fpixRead()

FPIX * fpixRead ( const char * filename)

fpixRead()

Parameters
[in]filename
Returns
fpix, or NULL on error

Definition at line 1361 of file fpix1.c.

References fpixReadStream().

◆ fpixReadMem()

FPIX * fpixReadMem ( const l_uint8 * data,
size_t size )

fpixReadMem()

Parameters
[in]dataof serialized fpix
[in]sizeof data in bytes
Returns
fpix, or NULL on error

Definition at line 1438 of file fpix1.c.

References fpixReadStream().

◆ fpixReadStream()

FPIX * fpixReadStream ( FILE * fp)

fpixReadStream()

Parameters
[in]fpfile stream
Returns
fpix, or NULL on error

Definition at line 1387 of file fpix1.c.

References FPIX_VERSION_NUMBER, fpixCreate(), fpixDestroy(), fpixEndianByteSwap(), fpixGetData(), and fpixSetResolution().

Referenced by fpixRead(), and fpixReadMem().

◆ fpixSetData()

l_ok fpixSetData ( FPIX * fpix,
l_float32 * data )

fpixSetData()

Parameters
[in]fpix
[in]data
Returns
0 if OK, 1 on error

Definition at line 468 of file fpix1.c.

References FPix::data.

Referenced by fpixCreate().

◆ fpixSetDimensions()

l_ok fpixSetDimensions ( FPIX * fpix,
l_int32 w,
l_int32 h )

fpixSetDimensions()

Parameters
[in]fpix
[in]w,h
Returns
0 if OK, 1 on error

Definition at line 338 of file fpix1.c.

References FPix::h, and FPix::w.

Referenced by fpixCreate().

◆ fpixSetPixel()

l_ok fpixSetPixel ( FPIX * fpix,
l_int32 x,
l_int32 y,
l_float32 val )

fpixSetPixel()

Parameters
[in]fpix
[in]x,ypixel coords
[in]valpixel value
Returns
0 if OK; 1 or 2 on error

Notes: (1) If the point is outside the image, this returns an error (2), with 0.0 in pval. To avoid spamming output, it fails silently.

Definition at line 527 of file fpix1.c.

References FPix::data, and fpixGetDimensions().

Referenced by fpixaSetPixel().

◆ fpixSetResolution()

l_ok fpixSetResolution ( FPIX * fpix,
l_int32 xres,
l_int32 yres )

fpixSetResolution()

Parameters
[in]fpix
[in]xres,yresx and y resolution
Returns
0 if OK, 1 on error

Definition at line 412 of file fpix1.c.

References FPix::xres, and FPix::yres.

Referenced by fpixCopyResolution(), and fpixReadStream().

◆ fpixSetWpl()

l_ok fpixSetWpl ( FPIX * fpix,
l_int32 wpl )

fpixSetWpl()

Parameters
[in]fpix
[in]wpl
Returns
0 if OK, 1 on error

Definition at line 373 of file fpix1.c.

References FPix::wpl.

Referenced by fpixCreate().

◆ fpixWrite()

l_ok fpixWrite ( const char * filename,
FPIX * fpix )

fpixWrite()

Parameters
[in]filename
[in]fpix
Returns
0 if OK, 1 on error

Definition at line 1464 of file fpix1.c.

References fpixWriteStream().

◆ fpixWriteMem()

l_ok fpixWriteMem ( l_uint8 ** pdata,
size_t * psize,
FPIX * fpix )

fpixWriteMem()

Parameters
[out]pdatadata of serialized fpix
[out]psizesize of returned data
[in]fpix
Returns
0 if OK, 1 on error
Notes:
     (1) Serializes a fpix in memory and puts the result in a buffer.

Definition at line 1538 of file fpix1.c.

References fpixWriteStream().

◆ fpixWriteStream()

l_ok fpixWriteStream ( FILE * fp,
FPIX * fpix )

fpixWriteStream()

Parameters
[in]fpfile stream opened for "wb"
[in]fpix
Returns
0 if OK, 1 on error

Definition at line 1493 of file fpix1.c.

References FPIX_VERSION_NUMBER, fpixDestroy(), fpixEndianByteSwap(), fpixGetData(), fpixGetDimensions(), and fpixGetResolution().

Referenced by fpixWrite(), and fpixWriteMem().

Variable Documentation

◆ InitialPtrArraySize

const size_t InitialPtrArraySize = 20
static

n'importe quoi

Definition at line 129 of file fpix1.c.

Referenced by fpixaCreate().

◆ MaxPtrArraySize

const size_t MaxPtrArraySize = 100000
static

Definition at line 128 of file fpix1.c.