spandsp  3.0.0
image_translate.c File Reference
#include <stdlib.h>
#include <inttypes.h>
#include <limits.h>
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <time.h>
#include <memory.h>
#include <string.h>
#include "spandsp/stdbool.h"
#include "floating_fudge.h"
#include <tiffio.h>
#include <assert.h>
#include "spandsp/telephony.h"
#include "spandsp/alloc.h"
#include "spandsp/fast_convert.h"
#include "spandsp/logging.h"
#include "spandsp/saturated.h"
#include "spandsp/timezone.h"
#include "spandsp/t4_rx.h"
#include "spandsp/t4_tx.h"
#include "spandsp/t81_t82_arith_coding.h"
#include "spandsp/t85.h"
#include "spandsp/t42.h"
#include "spandsp/t43.h"
#include "spandsp/t4_t6_decode.h"
#include "spandsp/t4_t6_encode.h"
#include "spandsp/image_translate.h"
#include "spandsp/private/logging.h"
#include "spandsp/private/t81_t82_arith_coding.h"
#include "spandsp/private/t85.h"
#include "spandsp/private/t42.h"
#include "spandsp/private/t43.h"
#include "spandsp/private/t4_t6_decode.h"
#include "spandsp/private/t4_t6_encode.h"
#include "spandsp/private/image_translate.h"
#include "spandsp/private/t4_rx.h"
#include "spandsp/private/t4_tx.h"

Functions

int image_translate_row (image_translate_state_t *s, uint8_t buf[], size_t len)
 Get the next row of a translated image. More...
 
int image_translate_get_output_width (image_translate_state_t *s)
 Get the width of the image being produced by an image translation context. More...
 
int image_translate_get_output_length (image_translate_state_t *s)
 Get the length of the image being produced by an image translation context. More...
 
int image_translate_set_row_read_handler (image_translate_state_t *s, t4_row_read_handler_t row_read_handler, void *row_read_user_data)
 Set the row read callback routine for an image translation context. More...
 
int image_translate_restart (image_translate_state_t *s, int input_length)
 
image_translate_state_timage_translate_init (image_translate_state_t *s, int output_format, int output_width, int output_length, int input_format, int input_width, int input_length, t4_row_read_handler_t row_read_handler, void *row_read_user_data)
 Initialise an image translation context for rescaling and squashing a gray scale or colour image to a bi-level FAX type image. More...
 
int image_translate_release (image_translate_state_t *s)
 Release the resources associated with an image translation context. More...
 
int image_translate_free (image_translate_state_t *s)
 Free the resources associated with an image translation context. More...
 

Function Documentation

◆ image_translate_free()

int image_translate_free ( image_translate_state_t s)

Free the resources associated with an image translation context.

Parameters
sThe image translation context.
Returns
0 for success, otherwise -1.

References image_translate_release().

◆ image_translate_get_output_length()

int image_translate_get_output_length ( image_translate_state_t s)

Get the length of the image being produced by an image translation context.

Parameters
sThe image translation context.
Returns
The length of the output image, in pixel.

◆ image_translate_get_output_width()

int image_translate_get_output_width ( image_translate_state_t s)

Get the width of the image being produced by an image translation context.

Parameters
sThe image translation context.
Returns
The width of the output image, in pixel.

◆ image_translate_init()

image_translate_state_t* image_translate_init ( image_translate_state_t s,
int  output_format,
int  output_width,
int  output_length,
int  input_format,
int  input_width,
int  input_length,
t4_row_read_handler_t  row_read_handler,
void *  row_read_user_data 
)

Initialise an image translation context for rescaling and squashing a gray scale or colour image to a bi-level FAX type image.

Parameters
sThe image translation context.
output_formatThe type of output image
output_widthThe width of the output image, in pixels. If this is set <= 0 the image will not be resized.
output_lengthThe length of the output image, in pixels. If this is set to <= 0 the output length will be derived automatically from the width, to maintain the geometry of the original image.
input_formatThe type of source image
input_widthThe width of the source image, in pixels.
input_lengthThe length of the source image, in pixels.
row_read_handlerA callback routine used to pull rows of pixels from the source image into the translation process.
row_read_user_dataAn opaque pointer passed to read_row_handler
Returns
A pointer to the context, or NULL if there was a problem.

◆ image_translate_release()

int image_translate_release ( image_translate_state_t s)

Release the resources associated with an image translation context.

Parameters
sThe image translation context.
Returns
0 for success, otherwise -1.

Referenced by image_translate_free().

◆ image_translate_row()

int image_translate_row ( image_translate_state_t s,
uint8_t  buf[],
size_t  len 
)

Get the next row of a translated image.

Parameters
sThe image translation context.
Returns
the length of the row buffer, in bytes

◆ image_translate_set_row_read_handler()

int image_translate_set_row_read_handler ( image_translate_state_t s,
t4_row_read_handler_t  row_read_handler,
void *  row_read_user_data 
)

Set the row read callback routine for an image translation context.

Parameters
sThe image translation context.
row_read_handlerA callback routine used to pull rows of pixels from the source image into the translation process.
row_read_user_dataAn opaque pointer passed to read_row_handler
Returns
0 for success, else -1.