Jorge Rodriguez
41e6aad693
Avoid repeated adds and ensure correct round-trip result.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
969ff7c850
Make sure calculate_memory matches with the allocations. Fix some errant asserts.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
4b69c0637e
If alpha is zero then sneakily replace it with a very small nonzero so that the color data is preserved.
...
Pre-process n1 so that we don't have to do it later on. Can't do n0 since it's used to find the coefficient index.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
084baed15c
Replace premul test with better premul test that doesn't require visual inspection.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
497eab8339
Normalize downsample coefficients.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
43fbc1d5e3
Rearrange the algebra on two of the filters to avoid repeating decimals which cause precision loss. Use int32 to test filters because it's more accurate.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
ca241daefa
Use rounding to try to preserve the original value. Fix test case.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
118f28557e
Tests to ensure images of a solid color stay the same solid color after resampling.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
e6c47ec657
Fix kernel lookup for downsampling.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
8cc6a3abfc
If there's no context we're using the simple API functions - fall back to malloc and free.
ago%!(EXTRA string=11 years)
Sean Barrett
36db03f390
tighten bounds on filter normalization test
ago%!(EXTRA string=11 years)
Sean Barrett
7f8ac35e42
check whether filter kernels are normalized
ago%!(EXTRA string=11 years)
Sean Barrett
7da729bfce
restore correct definition of box
ago%!(EXTRA string=11 years)
Sean Barrett
cd1fbacbb6
rename NEAREST to BOX
...
write test for BOX
ago%!(EXTRA string=11 years)
Jorge Rodriguez
586e84087c
Correctly specify alpha channels.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
38ce5494bc
Clarify some comments. Make stbir__resize_arbitrary an internal function. Update test cases to use actual API functions.
ago%!(EXTRA string=11 years)
Sean Barrett
41555b5d53
update test cases to work on things other than barbara.png
ago%!(EXTRA string=11 years)
Jorge Rodriguez
fb059fcece
Progress report.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
75bdd2da83
Fix malloc context and whitespace.
ago%!(EXTRA string=11 years)
Sean Barrett
aee30095c7
refactor internal interfaces to avoid passing things multiple times;
...
finish prepping 'stbir__info' even before calculate_memory;
get rid of 'noinfo' functions since now calculate_memory doesn't need 'em;
add new binary-searched sRGB function (untested)
ago%!(EXTRA string=11 years)
Sean Barrett
732fec68ee
tweak new API, get it partly working
ago%!(EXTRA string=11 years)
Sean Barrett
664d8961f5
new API partially in-use
ago%!(EXTRA string=11 years)
Sean Barrett
2549d8156e
in-progress refactoring
ago%!(EXTRA string=11 years)
Sean Barrett
6ef563d089
rename to stb_image_resize.h
ago%!(EXTRA string=11 years)
Sean Barrett
eb0781fda0
add comments describing the purpose of the s,t-rectangle tests
ago%!(EXTRA string=11 years)
Sean Barrett
9ba3dc1fc5
make resample tests work in VC6
ago%!(EXTRA string=11 years)
Jorge Rodriguez
1353909477
Allow user to force the alpha channel to be handled as a linear value even if the color channels are sRGB.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
bbc340d481
Support different edge behavior on vertical and horizontal axis.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
6ae729d61a
Four new tests of subpixel stuff.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
45fa6ec900
Update test cases for premul channel -1 meaning don't do any premul handling, fix another no-more-advanced.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
e75ed1d381
Update test cases for no more advanced API.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
d75488b0e8
Do the multiply inline, it should be a tad faster and not corrupt our data.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
13acfca829
I had the whole premultiply thing backwards.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
21c7c8f5d9
Another stab at the api, offering classes of functions for different common tasks.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
8063ea0952
Specify a channel as having premultiplied alpha and use it to un-premultiply all other channels before resampling.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
daf325dc03
Sub pixel source area test cases. No problems.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
aae1c7ca41
ZOOM AND ENHANCE!
ago%!(EXTRA string=11 years)
Jorge Rodriguez
35cb95b803
Allow for specifying a sub-region of the source image to use. Downsampling only, currently.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
fdc979e48b
Some minor ports for Linux. No idea how it worked at all in Windows with STB_RESIZE_IMPLEMENTATION instead of STB_RESAMPLE_IMPLEMENTATION.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
c5de2f3298
Test channels.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
985ac75251
When doing a perfect po2 nearest neighbor downsample don't allow -0.5 and 0.5 to both contribute to a texel or you'll get a double tap.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
c2449acc3e
Tests for edge behavior
ago%!(EXTRA string=11 years)
Jorge Rodriguez
59cb71ea18
Fix float conversion.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
6625259959
Try to keep integer precision by briefly casting to double while decoding and encoding.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
11897fbf96
More fixing shorts.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
1fcbe0daaf
Fix shorts. Add test cases for shorts.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
7ead9a748d
Fix. Ring buffers are a height value.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
043fa28c11
Same deal with height.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
ebe0473d8b
Add a test suite to do a bunch of different resizes to find problems. One problem found was an incorrect calculation of texel support how many margin texels needed when downsampling. When downsampling we need to spread out the support of each contributing texel, so to compensate you need more margin texels.
ago%!(EXTRA string=11 years)
Jorge Rodriguez
68f93b72d5
Update documentation and add helper functions.
ago%!(EXTRA string=11 years)