21#ifndef LIBHEIF_HEIF_ENCODING_H
22#define LIBHEIF_HEIF_ENCODING_H
32#include <libheif/heif_image.h>
33#include <libheif/heif_context.h>
34#include <libheif/heif_brands.h>
35#include <libheif/heif_color.h>
73 const char* name_filter,
87heif_compression_format
107 heif_compression_format format,
168 int* have_minimum_maximum,
169 int* minimum,
int* maximum);
175 int* have_minimum,
int* have_maximum,
176 int* minimum,
int* maximum,
177 int* num_valid_values,
178 const int** out_integer_array);
182 const char*
const** out_stringarray);
187 const char* parameter_name,
192 const char* parameter_name,
198 const char* parameter_name,
199 int* have_minimum_maximum,
200 int* minimum,
int* maximum);
204 const char* parameter_name,
209 const char* parameter_name,
214 const char* parameter_name,
219 const char* parameter_name,
220 char* value,
int value_size);
225 const char* parameter_name,
226 const char*
const** out_stringarray);
230 const char* parameter_name,
231 int* have_minimum,
int* have_maximum,
232 int* minimum,
int* maximum,
233 int* num_valid_values,
234 const int** out_integer_array);
247 const char* parameter_name,
254 const char* parameter_name,
255 char* value_ptr,
int value_size);
260 const char* parameter_name);
351 const heif_image* image,
360 uint32_t image_width,
361 uint32_t image_height,
365 const uint16_t background_rgba[4],
377 heif_brand2 major_brand);
382 heif_brand2 compatible_brand);
416 heif_compression_format format_filter,
417 const char* name_filter,
const char * heif_encoder_parameter_get_name(const heif_encoder_parameter *)
void heif_context_add_compatible_brand(heif_context *ctx, heif_brand2 compatible_brand)
heif_error heif_encoder_parameter_get_valid_integer_range(const heif_encoder_parameter *, int *have_minimum_maximum, int *minimum, int *maximum)
heif_error heif_context_add_overlay_image(heif_context *ctx, uint32_t image_width, uint32_t image_height, uint16_t nImages, const heif_item_id *image_ids, int32_t *offsets, const uint16_t background_rgba[4], heif_image_handle **out_iovl_image_handle)
void heif_context_set_major_brand(heif_context *ctx, heif_brand2 major_brand)
struct heif_encoder_parameter heif_encoder_parameter
Definition heif_encoding.h:56
heif_error heif_encoder_get_parameter(heif_encoder *, const char *parameter_name, char *value_ptr, int value_size)
const heif_encoder_parameter *const * heif_encoder_list_parameters(heif_encoder *)
int heif_have_encoder_for_format(heif_compression_format format)
heif_error heif_encoder_parameter_integer_valid_values(heif_encoder *, const char *parameter_name, int *have_minimum, int *have_maximum, int *minimum, int *maximum, int *num_valid_values, const int **out_integer_array)
heif_error heif_context_set_primary_image(heif_context *, heif_image_handle *image_handle)
void heif_encoding_options_free(heif_encoding_options *)
int heif_get_encoder_descriptors(heif_compression_format format_filter, const char *name_filter, const heif_encoder_descriptor **out_encoders, int count)
heif_error heif_encoder_get_parameter_string(heif_encoder *, const char *parameter_name, char *value, int value_size)
struct heif_unci_image_parameters heif_unci_image_parameters
Definition heif_encoding.h:40
heif_error heif_encoder_get_parameter_integer(heif_encoder *, const char *parameter_name, int *value)
heif_error heif_context_encode_image(heif_context *, const heif_image *image, heif_encoder *encoder, const heif_encoding_options *options, heif_image_handle **out_image_handle)
heif_orientation
Definition heif_encoding.h:265
@ heif_orientation_rotate_180
Definition heif_encoding.h:268
@ heif_orientation_rotate_90_cw_then_flip_horizontally
Definition heif_encoding.h:270
@ heif_orientation_rotate_90_cw_then_flip_vertically
Definition heif_encoding.h:272
@ heif_orientation_flip_vertically
Definition heif_encoding.h:269
@ heif_orientation_rotate_270_cw
Definition heif_encoding.h:273
@ heif_orientation_flip_horizontally
Definition heif_encoding.h:267
@ heif_orientation_normal
Definition heif_encoding.h:266
@ heif_orientation_rotate_90_cw
Definition heif_encoding.h:271
heif_error heif_encoder_set_lossless(heif_encoder *, int enable)
heif_error heif_encoder_set_logging_level(heif_encoder *, int level)
const char * heif_encoder_descriptor_get_name(const heif_encoder_descriptor *)
struct heif_encoder_descriptor heif_encoder_descriptor
Definition heif_encoding.h:51
heif_error heif_encoder_parameter_get_valid_string_values(const heif_encoder_parameter *, const char *const **out_stringarray)
int heif_encoder_descriptor_supportes_lossy_compression(const heif_encoder_descriptor *)
heif_error heif_encoder_parameter_integer_valid_range(heif_encoder *, const char *parameter_name, int *have_minimum_maximum, int *minimum, int *maximum)
int heif_encoder_has_default(heif_encoder *, const char *parameter_name)
heif_error heif_encoder_set_parameter(heif_encoder *, const char *parameter_name, const char *value)
heif_encoding_options * heif_encoding_options_alloc(void)
const char * heif_encoder_descriptor_get_id_name(const heif_encoder_descriptor *)
heif_error heif_encoder_set_parameter_string(heif_encoder *, const char *parameter_name, const char *value)
void heif_context_set_unif(heif_context *ctx, int flag)
Enable the unified ID namespace ('unif' brand).
int heif_context_get_encoder_descriptors(heif_context *, heif_compression_format format_filter, const char *name_filter, const heif_encoder_descriptor **out_encoders, int count)
void heif_encoding_options_copy(heif_encoding_options *dst, const heif_encoding_options *src)
void heif_encoder_release(heif_encoder *)
Release the encoder object after use.
int heif_encoder_descriptor_supportes_lossless_compression(const heif_encoder_descriptor *)
int heif_encoder_descriptor_supports_lossy_compression(const heif_encoder_descriptor *)
heif_error heif_encoder_set_lossy_quality(heif_encoder *, int quality)
int heif_encoder_descriptor_supports_lossless_compression(const heif_encoder_descriptor *)
heif_error heif_encoder_parameter_string_valid_values(heif_encoder *, const char *parameter_name, const char *const **out_stringarray)
heif_orientation heif_orientation_concat(heif_orientation first, heif_orientation second)
heif_compression_format heif_encoder_descriptor_get_compression_format(const heif_encoder_descriptor *)
heif_error heif_encoder_set_parameter_boolean(heif_encoder *, const char *parameter_name, int value)
const char * heif_encoder_get_name(const heif_encoder *)
struct heif_encoder heif_encoder
Opaque object that represents the encoder used to code the images.
Definition heif_encoding.h:48
heif_error heif_context_get_encoder_for_format(heif_context *context, heif_compression_format format, heif_encoder **)
heif_error heif_encoder_set_parameter_integer(heif_encoder *, const char *parameter_name, int value)
heif_error heif_encoder_get_parameter_boolean(heif_encoder *, const char *parameter_name, int *value)
heif_error heif_encoder_parameter_get_valid_integer_values(const heif_encoder_parameter *, int *have_minimum, int *have_maximum, int *minimum, int *maximum, int *num_valid_values, const int **out_integer_array)
heif_error heif_context_get_encoder(heif_context *context, const heif_encoder_descriptor *, heif_encoder **out_encoder)
enum heif_encoder_parameter_type heif_encoder_parameter_get_type(const heif_encoder_parameter *)
heif_encoder_parameter_type
Definition heif_encoding.h:155
@ heif_encoder_parameter_type_boolean
Definition heif_encoding.h:157
@ heif_encoder_parameter_type_integer
Definition heif_encoding.h:156
@ heif_encoder_parameter_type_string
Definition heif_encoding.h:158
struct heif_image_handle heif_image_handle
Definition heif_library.h:90
uint32_t heif_item_id
Definition heif_library.h:92
struct heif_context heif_context
Definition heif_library.h:89
Definition heif_encoding.h:282
uint8_t prefer_uncC_short_form
Definition heif_encoding.h:318
uint8_t save_alpha_channel
Definition heif_encoding.h:287
heif_color_profile_nclx * output_nclx_profile
Definition heif_encoding.h:302
uint8_t version
Definition heif_encoding.h:283
uint8_t macOS_compatibility_workaround_no_nclx_profile
Definition heif_encoding.h:304
uint8_t macOS_compatibility_workaround
Definition heif_encoding.h:292
heif_orientation image_orientation
Definition heif_encoding.h:309
uint8_t save_two_colr_boxes_when_ICC_and_nclx_available
Definition heif_encoding.h:296
const heif_unci_image_parameters * unci_parameters
Definition heif_encoding.h:326
heif_color_conversion_options color_conversion_options
Definition heif_encoding.h:313