57 Commits (41e6aad693d1e23dcb06a3a09dc82cf0897c2582)

Author SHA1 Message Date
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. 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 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; 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)