'stb' Image C/C++ Header Files

Provides image-related C/C++ header files from the 'stb' single-file libraries for image loading, writing, and resizing.


stbimageheaders

Provides selected image-related stb C/C++ headers for use by R packages through LinkingTo.

Included headers:

  • stb_image.h
  • stb_image_resize2.h
  • stb_image_write.h

stb_image_resize.h is not included because upstream has moved the v1 resize header to the deprecated directory. Downstream packages should use stb_image_resize2.h.

Use from another R package

Add this to DESCRIPTION:

LinkingTo: stbimageheaders

Include the headers with package-qualified paths:

#include <stbimageheaders/stb_image.h>
#include <stbimageheaders/stb_image_resize2.h>
#include <stbimageheaders/stb_image_write.h>

In exactly one translation unit, define implementation macros before including the corresponding headers:

#define STB_IMAGE_IMPLEMENTATION
#include <stbimageheaders/stb_image.h>

#define STB_IMAGE_RESIZE_IMPLEMENTATION
#include <stbimageheaders/stb_image_resize2.h>

#define STB_IMAGE_WRITE_IMPLEMENTATION
#include <stbimageheaders/stb_image_write.h>

Do not define implementation macros in headers included by multiple translation units.

Migrating from stb_image_resize.h to stb_image_resize2.h

The v2 resize API is not a pure filename replacement. Common simple-API migrations are:

/* Old v1 API */
ok = stbir_resize_uint8(input, in_w, in_h, 0,
                        output, out_w, out_h, 0,
                        num_channels);

/* New v2 API */
out_ptr = stbir_resize_uint8_linear(input, in_w, in_h, 0,
                                    output, out_w, out_h, 0,
                                    (stbir_pixel_layout) num_channels);
ok = out_ptr != NULL;
/* Old v1 API */
ok = stbir_resize_float(input, in_w, in_h, 0,
                        output, out_w, out_h, 0,
                        num_channels);

/* New v2 API */
out_ptr = stbir_resize_float_linear(input, in_w, in_h, 0,
                                    output, out_w, out_h, 0,
                                    (stbir_pixel_layout) num_channels);
ok = out_ptr != NULL;

For four-channel data that should not be interpreted as alpha, prefer STBIR_4CHANNEL instead of (stbir_pixel_layout) 4.

License

The upstream stb headers offer a choice between the MIT license and a public-domain dedication. This R package elects the MIT license alternative. The complete upstream license text is preserved in each header.

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("stbimageheaders")

0.1.0 by Tyler Morgan-Wall, 4 months ago


https://github.com/tylermorganwall/stbimageheaders


Report a bug at https://github.com/tylermorganwall/stbimageheaders/issues


Browse source code at https://github.com/cran/stbimageheaders


Authors: Tyler Morgan-Wall [aut, cre, cph] (ORCID: , Sean Barrett [aut, cph] , Jeff Roberts [aut] , Jorge L. Rodriguez [aut]


Documentation:   PDF Manual  


MIT + file LICENSE license



Linked to by rayimage, rayvertex.


See at CRAN