Commit Graph

108 Commits

Author SHA1 Message Date
Sean Barrett
79a7719c37 stb_image: fix d1252e1bb9 for building in C 2019-02-07 07:20:58 -08:00
Sean Barrett
d1252e1bb9 Merge branch 'master' of https://github.com/ab-cpp/stb into working 2019-02-07 07:17:05 -08:00
Sean Barrett
476c1f89a2 stb_image_write: fix the previous fix (incorrectly labelled as stb_image) 2019-02-07 07:01:23 -08:00
Sean Barrett
e5d4d6fcce stb_image; optimize row computation in PR 2019-02-07 06:58:00 -08:00
Sean Barrett
b2bde485a2 Merge branch 'stbiw-fix-jpeg-flipping' of https://github.com/DanielGibson/stb into working 2019-02-07 06:48:44 -08:00
Sean Barrett
ff1eb8b8d4 Merge branch 'fix_stbi_write_hdr_core' of https://github.com/poppolopoppo/stb into working 2019-02-07 06:03:48 -08:00
Sean Barrett
f82dbd638c windows unicode: don't malloc buffers, add explicit STBI_WINDOWS_UTF8 #define 2019-02-07 05:55:03 -08:00
Andrew Beatty
eee50c079d Update to STB conventions 2019-02-07 07:30:42 -05:00
Andrew Beatty
ccc4b3716a fix compiler warnings and const error 2019-01-22 19:31:46 -05:00
Daniel Gibson
1ad30e4e77 stb_image_write.h: Fix jpg flipping for non-multiple-of-8 sizes
JPG always encodes 8x8 pixel blocks. If the input image does not have
a width or height that's a multiple of 8, the last column or row is just
used multiple times for the remaining pixels of the block.
The original code first calculated p (the index into the pixel data)
with the "imaginary" row/colum (that might be up to 7 pixels too far
into each direction) and then subtracted the necessary amount of bytes
it if row >= height or col >= width.
That was a bit cryptic (IMHO), and didn't get more readable/obvious when
vertical flipping was added - which introduced a bug, by not taking
stbi__flip_vertically_on_write into account when adjusting p for
row >= height...

The code should be more obvious (and less buggy) now.

This fixes bug #592
2018-04-09 01:24:17 +02:00
PopPoLoPoPpo
f685ee4e58 Fix overflow in stbi_write_hdr_core()
b056850ea9 left an additional multiplication by x,
leading to overflow.
2018-02-27 00:08:45 +01:00
JR
d0ae424061 Re added unicode filename support for stb_image and stb_image_write with whitespace issues fixed. 2018-02-20 21:38:00 -05:00
Sean Barrett
543ad0c112 stb_image_write: tweak handling of STB_IMAGE_WRITE_STATIC 2018-02-11 11:29:32 -08:00
Sean Barrett
aeb2b4b64d tweak handling of STBIWDEF 2018-02-11 11:19:45 -08:00
Sean Barrett
dbf0fab1c7 stb_image_write: credits 2018-02-11 11:11:39 -08:00
Sean Barrett
2886b67f7f Merge branch 'stb_image_write_png_filters_fix' of https://github.com/kosua20/stb into working 2018-02-11 11:09:07 -08:00
Sean Barrett
6382814b8c Merge branch 'image_write_variable_typos' of https://github.com/cap/stb into working 2018-02-11 11:05:58 -08:00
Sean Barrett
4eef034d52 stb_write_image: fix typos 2018-02-11 11:05:20 -08:00
Cap Petschulat
6ab920bb6a stb_image_write: fix png compression level typos 2018-02-05 15:48:17 +09:00
Simon Rodriguez
34f087ce4c stb_image_write: fix indexing error when computing PNG filters with the stbi__flip_vertically_on_write on.
The PNG filters of the pixels row N are computed using row N-1 of the final image. If the image should be flipped when saving, this corresponds to row N+1 of the initial image.
2018-02-04 20:12:20 +01:00
Sean Barrett
445473bdb5 stb_image_write: handle malloc failure in zlib 2018-01-29 08:03:56 -08:00
Sean Barrett
b969dc38f3 stb_image_write: fix for fopen_s failure case 2018-01-29 06:06:29 -08:00
Sean Barrett
094cb31ec8 stb_image: compile as C; stb_image_write: credits 2018-01-29 04:03:18 -08:00
Sean Barrett
faf08e0018 Merge branch 'stb_image_write_mscrt_errors' of https://github.com/xeekworx/stb 2018-01-29 04:01:29 -08:00
Sean Barrett
3d7b4251f9 Merge branch 'png-ext-write' of https://github.com/akx/stb
Conflicts:
	stb_image_write.h
2018-01-29 03:14:31 -08:00
Sean Barrett
b48101c971 Merge branch 'update_stbi_jpg_dcoumentation' of https://github.com/Benjins/stb 2018-01-29 02:57:46 -08:00
Sean Barrett
35a3bf41e8 Integrate ZLIB changed from Daniel Gibson, fixup credits 2018-01-29 02:55:56 -08:00
Sean Barrett
9de22e5a70 Merge branch 'stbiw-png-compr' of https://github.com/DanielGibson/stb 2018-01-29 02:53:25 -08:00
Sean Barrett
b056850ea9 stb_image_write can flip images vertically 2018-01-29 02:52:49 -08:00
John Tullos
841862a622 Fixed grammar, spelling issues in comments
issue #533
2018-01-01 18:59:06 -06:00
John Tullos
32a7d5ab68 Added STBI_MSC_SECURE_CRT to support newer MSVC compilers as optional
For issue #533
2018-01-01 18:54:26 -06:00
John Tullos
5e844ffe70 Using secure versions of CRT calls to avoid Microsoft Visual C/C++ compiler errors/warnings. 2018-01-01 18:08:30 -06:00
Aarni Koskela
2c7b00ac21 Add force_filter and compression_level parameters to (new) stbi_write_png_to_mem_ex
* `force_filter` being < 0 means the original behavior (i.e. figure out
  the best-performing filter per scanline); any other values 0 <= x <= 4 correspond
  to PNG filters (0 = none, 1 = sub, 2 = up, 3 = average, 4 = Paeth).
* `compression_level` being < 0 equals `compression_level` 8 (the previous value).
  The higher this is, the better the compression should be (though it will use
  more memory).

These new parameters are not (yet) exposed for the higher-level API functions.
2017-08-07 14:52:53 +03:00
Benji Smith
923c9c3deb Correct function signature in stbi_write_jpg usage documentation. 2017-07-31 22:22:56 -07:00
Sean Barrett
961923b5a3 fix documentation 2017-07-24 03:32:20 -07:00
Sean Barrett
555efbedfc Update version numbers 2017-07-23 14:09:39 -07:00
Fabian Giesen
931662ae6e stb_image_write: Warning fix. 2017-07-22 16:04:07 -07:00
Daniel Gibson
be21113512 stb_image_write.h: Allow setting custom zlib compress function for PNG
The builtin stbi_zlib_compress does not compress as well as zlib or
miniz (which is not too surprising as it's <200 LOC), thus PNGs created
by stb_image_write are about 20-50% bigger than PNGs compressed with
libpng.
This change lets the user supply a custom deflate/zlib-style compress
function, which improves compression a lot. This was requested in #113.

Example for zlib:

#include <zlib.h>
unsigned char* compress_for_stbiw(unsigned char *data, int data_len,
                                  int *out_len, int quality)
{
  uLongf bufSize = compressBound(data_len);
  // note that buf will be free'd by stb_image_write.h
  // with STBIW_FREE() (plain free() by default)
  unsigned char* buf = malloc(bufSize);
  if(buf == NULL)  return NULL;
  if(compress2(buf, &bufSize, data, data_len, quality) != Z_OK)
  {
    free(buf);
    return NULL;
  }
  *out_len = bufSize;

  return buf;
}
#define STBIW_ZLIB_COMPRESS compress_for_stbiw
#define STB_IMAGE_WRITE_IMPLEMENTATION
#include "stb_image_write.h"
// ...
2017-07-04 19:34:31 +02:00
Daniel Gibson
e6bbecd3a9 stb_image_write.h: Set PNG compress lvl via stbi_write_png_level
This allows the user to change the deflate/zlib compress level used for
PNG compression by changing a global variable.
2017-07-04 18:07:33 +02:00
Daniel Gibson
f0baa0c287 stb_image_write.h: Fix compilation in C++11 mode
clang says:
error: non-constant-expression cannot be narrowed from type 'int'
      to 'unsigned char' in initializer list [-Wc++11-narrowing]

so I explicitly cast affected stuff to unsigned char.
2017-07-04 16:55:50 +02:00
Daniel Gibson
e5144a3996 stb_image_write.h: Consistently use STBIWDEF for stbi_write_*
Some functions were missing that in the definition, others weren't,
all had it in the declarations.

Added mention of JPG and HDR formats at the top of the file
2017-03-11 18:59:44 +01:00
Daniel Gibson
721c788fdb stb_image_write: JPEG writer based on jo_jpeg.cpp
jo_jpeg.cpp is a Public Domain JPEG writer written by Jon Olick in 2012
http://www.jonolick.com/code.html

My changes to jo_jpeg:
* port to plain C89 (+ // comments, as supported by MSVC6)
* support for 2 comp input (Greyscale+Alpha, Alpha is ignored)
* use stbi__write_context abstraction instead of stdio for writing
* adjust names to stbiw-style
2017-03-11 18:59:44 +01:00
Sean Barrett
47685c5f84 remove deprecated old-precision jpg path from stb_image.h
tweak license reference wording
2017-03-03 08:19:09 -08:00
Sean Barrett
51a5368dee Merge branch 'master' of https://github.com/pboettch/stb into working 2017-03-03 08:02:39 -08:00
Sean Barrett
96620a3a54 update version numbers 2017-01-16 00:51:24 -08:00
Sean Barrett
48710234f2 credits; 1/2/4-bit png fix; easy font spacing; NO_STDIO in image_write 2017-01-15 23:57:53 -08:00
PopPoLoPoPpo
19d03764b5 Fix #ifndef STBI_WRITE_NO_STDIO scioe for stbi_write_hdr()
stbi_write_hdr_to_func() should still be available even without STBI_WRITE_NO_STDIO,
just like other formats.
2017-01-03 02:45:16 +01:00
Patrick Boettcher
734576e6be image-write: fix monochrome bitmap writing from 8-bit-buffers
Now writing out monochrome bitmaps from 8-bit arrays works
as it does when using PNG.

Bitmaps need 3 bytes per pixel.
2016-06-15 10:36:39 +02:00
Sean Barrett
6e4154737c update version numbers, documentation, and contributors 2016-04-02 04:51:26 -07:00
Sean Barrett
097a70ae38 Merge branch 'master' of https://github.com/tulrich/stb 2016-04-02 02:56:39 -07:00