| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- /* stbiw-0.92 - public domain - http://nothings.org/stb/stb_image_write.h
- writes out PNG/BMP/TGA images to C stdio - Sean Barrett 2010
- no warranty implied; use at your own risk
- Before including,
- #define STB_IMAGE_WRITE_IMPLEMENTATION
- in the file that you want to have the implementation.
- ABOUT:
- This header file is a library for writing images to C stdio. It could be
- adapted to write to memory or a general streaming interface; let me know.
- The PNG output is not optimal; it is 20-50% larger than the file
- written by a decent optimizing implementation. This library is designed
- for source code compactness and simplicitly, not optimal image file size
- or run-time performance.
- USAGE:
- There are three functions, one for each image file format:
- int stbi_write_png(char const *filename, int w, int h, int comp, const void *data, int stride_in_bytes);
- int stbi_write_bmp(char const *filename, int w, int h, int comp, const void *data);
- int stbi_write_tga(char const *filename, int w, int h, int comp, const void *data);
- Each function returns 0 on failure and non-0 on success.
-
- The functions create an image file defined by the parameters. The image
- is a rectangle of pixels stored from left-to-right, top-to-bottom.
- Each pixel contains 'comp' channels of data stored interleaved with 8-bits
- per channel, in the following order: 1=Y, 2=YA, 3=RGB, 4=RGBA. (Y is
- monochrome color.) The rectangle is 'w' pixels wide and 'h' pixels tall.
- The *data pointer points to the first byte of the top-left-most pixel.
- For PNG, "stride_in_bytes" is the distance in bytes from the first byte of
- a row of pixels to the first byte of the next row of pixels.
- PNG creates output files with the same number of components as the input.
- The BMP and TGA formats expand Y to RGB in the file format. BMP does not
- output alpha.
-
- PNG supports writing rectangles of data even when the bytes storing rows of
- data are not consecutive in memory (e.g. sub-rectangles of a larger image),
- by supplying the stride between the beginning of adjacent rows. The other
- formats do not. (Thus you cannot write a native-format BMP through the BMP
- writer, both because it is in BGR order and because it may have padding
- at the end of the line.)
- */
- #ifndef INCLUDE_STB_IMAGE_WRITE_H
- #define INCLUDE_STB_IMAGE_WRITE_H
- #ifdef __cplusplus
- extern "C" {
- #endif
- extern int stbi_write_png(char const *filename, int w, int h, int comp, const void *data, int stride_in_bytes);
- extern int stbi_write_bmp(char const *filename, int w, int h, int comp, const void *data);
- extern int stbi_write_tga(char const *filename, int w, int h, int comp, const void *data);
- #ifdef __cplusplus
- }
- #endif
- #endif//INCLUDE_STB_IMAGE_WRITE_H
|