NAME
Image::Leptonica::Func::webpio
VERSION
version 0.04
webpio.c
webpio.c
Reading WebP
PIX *pixReadStreamWebP()
PIX *pixReadMemWebP()
Reading WebP header
l_int32 readHeaderWebP()
Writing WebP
l_int32 pixWriteWebP() [ special top level ]
l_int32 pixWriteStreamWebP()
l_int32 pixWriteMemWebP()
FUNCTIONS
pixReadMemWebP
PIX * pixReadMemWebP ( const l_uint8 *filedata, size_t filesize )
pixReadMemWebP()
Input: filedata (webp compressed data in memory)
filesize (number of bytes in data)
Return: pix (32 bpp), or null on error
Notes:
(1) When the encoded data only has 3 channels (no alpha),
WebPDecodeRGBAInto() generates a raster of 32-bit pixels, with
the alpha channel set to opaque (255).
(2) We don't need to use the gnu runtime functions like fmemopen()
for redirecting data from a stream to memory, because
the webp library has been written with memory-to-memory
functions at the lowest level (which is good!). And, in
any event, fmemopen() doesn't work with l_binaryReadStream().
pixReadStreamWebP
PIX * pixReadStreamWebP ( FILE *fp )
pixReadStreamWebP()
Input: stream corresponding to WebP image
Return: pix (32 bpp), or null on error
pixWriteMemWebP
l_int32 pixWriteMemWebP ( l_uint8 **pencdata, size_t *pencsize, PIX *pixs, l_int32 quality, l_int32 lossless )
pixWriteMemWebP()
Input: &encdata (<return> webp encoded data of pixs)
&encsize (<return> size of webp encoded data)
pixs (any depth, cmapped OK)
quality (0 - 100; default ~80)
lossless (use 1 for lossless; 0 for lossy)
Return: 0 if OK, 1 on error
Notes:
(1) Lossless and lossy encoding are entirely different in webp.
@quality applies to lossy, and is ignored for lossless.
(2) The input image is converted to RGB if necessary. If spp == 3,
we set the alpha channel to fully opaque (255), and
WebPEncodeRGBA() then removes the alpha chunk when encoding,
setting the internal header field has_alpha to 0.
pixWriteStreamWebP
l_int32 pixWriteStreamWebP ( FILE *fp, PIX *pixs, l_int32 quality, l_int32 lossless )
pixWriteStreamWebP()
Input: stream
pixs (all depths)
quality (0 - 100; default ~80)
lossless (use 1 for lossless; 0 for lossy)
Return: 0 if OK, 1 on error
Notes:
(1) See pixWriteMemWebP() for details.
(2) Use 'free', and not leptonica's 'FREE', for all heap data
that is returned from the WebP library.
pixWriteWebP
l_int32 pixWriteWebP ( const char *filename, PIX *pixs, l_int32 quality, l_int32 lossless )
pixWriteWebP()
Input: filename
pixs
quality (0 - 100; default ~80)
lossless (use 1 for lossless; 0 for lossy)
Return: 0 if OK, 1 on error
Notes:
(1) Special top-level function allowing specification of quality.
readHeaderWebP
l_int32 readHeaderWebP ( const char *filename, l_int32 *pw, l_int32 *ph, l_int32 *pspp )
readHeaderWebP()
Input: filename
&w (<return> width)
&h (<return> height)
&spp (<return> spp (3 or 4))
Return: 0 if OK, 1 on error
AUTHOR
Zakariyya Mughal <zmughal@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2014 by Zakariyya Mughal.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.