Commit Graph

276 Commits

Author SHA1 Message Date
Jorge Rodriguez f2102d906f Use the info structure to keep track of our memory block sizes to reduce duplicated code and cut down on errors. 2014-09-09 20:58:19 -07:00
Jorge Rodriguez 969ff7c850 Make sure calculate_memory matches with the allocations. Fix some errant asserts. 2014-09-09 20:51:29 -07:00
Jorge Rodriguez 8355ea1184 Use height, not width, for correct progress report. 2014-09-09 18:41:28 -07:00
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.
2014-09-09 18:38:05 -07:00
Jorge Rodriguez d510d70b6a Report downsample progress by when we empty the ring buffer, it's more accurate that way. 2014-09-09 16:35:00 -07:00
Jorge Rodriguez 084baed15c Replace premul test with better premul test that doesn't require visual inspection. 2014-09-09 16:30:06 -07:00
Jorge Rodriguez 497eab8339 Normalize downsample coefficients. 2014-09-09 15:22:29 -07:00
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. 2014-09-09 14:10:14 -07:00
Jorge Rodriguez ca241daefa Use rounding to try to preserve the original value. Fix test case. 2014-09-09 12:16:23 -07:00
Jorge Rodriguez 145690788c Use input_h + pixel_margin * 2 to prevent progress report from ever going above 1. Always report a 0 before and a 1 at the end of each resize. 2014-09-09 10:58:01 -07:00
Jorge Rodriguez 118f28557e Tests to ensure images of a solid color stay the same solid color after resampling. 2014-09-07 16:47:02 -07:00
Jorge Rodriguez e6c47ec657 Fix kernel lookup for downsampling. 2014-09-07 12:57:53 -07:00
Jorge Rodriguez 8cc6a3abfc If there's no context we're using the simple API functions - fall back to malloc and free. 2014-09-07 10:02:51 -07:00
Sean Barrett 36db03f390 tighten bounds on filter normalization test 2014-09-07 05:31:40 -07:00
Sean Barrett 7f8ac35e42 check whether filter kernels are normalized 2014-09-07 05:29:43 -07:00
Sean Barrett 7da729bfce restore correct definition of box 2014-09-07 04:07:07 -07:00
Sean Barrett 08ca345839 Merge branch 'resample2' into resample 2014-09-07 03:36:16 -07:00
Sean Barrett cd1fbacbb6 rename NEAREST to BOX
write test for BOX
2014-09-07 03:19:18 -07:00
Jorge Rodriguez 586e84087c Correctly specify alpha channels. 2014-09-06 21:50:28 -07:00
Jorge Rodriguez 38ce5494bc Clarify some comments. Make stbir__resize_arbitrary an internal function. Update test cases to use actual API functions. 2014-09-06 20:17:19 -07:00
Sean Barrett 41555b5d53 update test cases to work on things other than barbara.png 2014-09-06 14:58:32 -07:00
Jorge Rodriguez fb059fcece Progress report. 2014-09-06 10:57:21 -07:00
Jorge Rodriguez 75bdd2da83 Fix malloc context and whitespace. 2014-09-06 08:48:46 -07:00
Jorge Rodriguez ce7aed0fb7 Merge pull request #3 from nothings/resample
Resample
2014-09-05 16:52:49 -07:00
Sean Barrett 952c26e626 inline stbir__encode_pixel into stbir__encode_scanline 2014-09-01 19:29:28 -07:00
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)
2014-09-01 16:52:04 -07:00
Sean Barrett 24c540e1b0 rename alpha gamma flag 2014-08-31 10:00:54 -07:00
Sean Barrett 07c35180f7 tweak new API 2014-08-31 09:45:29 -07:00
Sean Barrett 84520de6c4 finish STBI_EDGE_ZERO, untested 2014-08-31 09:32:17 -07:00
Sean Barrett 9a1d34843e STBIR_EDGE_ZERO 2014-08-31 09:10:49 -07:00
Sean Barrett 732fec68ee tweak new API, get it partly working 2014-08-31 08:55:41 -07:00
Sean Barrett 664d8961f5 new API partially in-use 2014-08-31 08:34:05 -07:00
Sean Barrett bbd4e2ee9a new API "finished" but untested 2014-08-31 07:32:10 -07:00
Sean Barrett 2549d8156e in-progress refactoring 2014-08-31 07:23:34 -07:00
Sean Barrett 034674c142 Merge branch 'resample2' into resample
Conflicts:
	stb_image_resize.h
2014-08-31 07:23:22 -07:00
Sean Barrett 1bd9770e75 separate filter for horizontal and vertical 2014-08-31 06:47:45 -07:00
Sean Barrett c1b876768e in progress new API 2014-08-31 06:31:50 -07:00
Jorge Rodriguez b75eff36f8 Merge pull request #1 from nothings/resample
stb_resample updates
2014-08-18 11:29:19 -07:00
Sean Barrett 5dfa79fb31 stride doesn't have to be multiples of pixels 2014-08-18 10:18:59 -07:00
Sean Barrett 32b626859d remove most per-pixel switches, beginnings of removing encode_pixel switch 2014-08-18 10:02:00 -07:00
Sean Barrett 5eb0236d9d reverse default behavior of linear/gamma for alpha 2014-08-18 09:33:01 -07:00
Sean Barrett b9bb05b81c minor cleanups 2014-08-18 09:14:11 -07:00
Sean Barrett 6ef563d089 rename to stb_image_resize.h 2014-08-18 09:12:59 -07:00
Sean Barrett eb0781fda0 add comments describing the purpose of the s,t-rectangle tests 2014-08-18 09:01:33 -07:00
Sean Barrett 9ba3dc1fc5 make resample tests work in VC6 2014-08-18 08:56:44 -07:00
Jorge Rodriguez fc09a5d198 Don't saturate floats. 2014-08-12 14:15:05 -07:00
Jorge Rodriguez c9caec1123 Refactoring to reduce duplicated code. 2014-08-12 13:50:17 -07:00
Jorge Rodriguez 1353909477 Allow user to force the alpha channel to be handled as a linear value even if the color channels are sRGB. 2014-08-12 13:37:06 -07:00
Jorge Rodriguez bbc340d481 Support different edge behavior on vertical and horizontal axis. 2014-08-12 12:22:38 -07:00
Jorge Rodriguez 6ae729d61a Four new tests of subpixel stuff. 2014-08-12 12:15:12 -07:00