Sean Barrett
1208730e1e
Merge branch 'resample' of http://github.com/bsvino/stb into resample
2014-09-11 01:15:09 -07:00
Jorge Rodriguez
46dc8f84fb
Use vertical pixel width for the ring buffer.
2014-09-10 20:12:38 -07:00
Jorge Rodriguez
953a637841
Use a carefully shaped trapezoid instead of a box filter to avoid jumps between pixel values.
2014-09-10 19:08:11 -07:00
Sean Barrett
4e580cf9ed
fix compile
2014-09-10 15:11:35 -07:00
Jorge Rodriguez
6922628106
Use an even smaller epsilon. Allow the user to avoid the epsilon business if they want to preserve their alpha values.
2014-09-10 15:03:55 -07:00
Jorge Rodriguez
c9d67446d2
Reverse allocation routines parameter order so that the context is at the back.
2014-09-09 22:57:15 -07:00
Jorge Rodriguez
17b931047c
Add the epsilon value into the alpha instead of using an if statement. It's a tiny bit faster and it can be removed afterwards.
2014-09-09 22:47:53 -07:00
Jorge Rodriguez
1d5c902e2e
These minor optimizations were probably already done by the compiler but they can't hurt.
2014-09-09 22:07:40 -07:00
Jorge Rodriguez
41e6aad693
Avoid repeated adds and ensure correct round-trip result.
2014-09-09 21:57:46 -07:00
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