Commit Graph

25 Commits

Author SHA1 Message Date
nfnt
891127d8d1 Fix alpha pre-multiplication.
The alpha pre-multiplication was applied to an aggregate value an not to the color value. This could cause wrong colors for images with an alpha channel.
Fixes #47.
2016-07-24 22:55:20 +02:00
nfnt
4d93a29130 Separate color assignment and alpha pre-multiplication. 2016-01-09 12:25:12 +01:00
nfnt
0f9f918da3 Use RGBA, RGBA64 image types as output.
These image types use premultiplied alpha values which are also used during the interpolation. If we'd use NRGBA, NRGBA64 as output, we'd have to reverse the premultiplication.
2016-01-07 21:30:54 +01:00
Eugene Zagidullin
9780a95734 Oops 2016-01-07 21:30:54 +01:00
Eugene Zagidullin
5311ab3c51 Reverse alpha premultiplication 2016-01-07 21:30:54 +01:00
minodisk
f430a41192 Fix wrong color with RGBA input 2015-05-25 18:20:03 +09:00
nfnt
c3c062672a Reverse alpha-premultiplication for image.RGBA, image.RGBA64 and generic images
types.
2015-05-12 15:19:11 +02:00
jst
daa7cf45d3 Return NRGBA images.
Resizing images with alpha channels is easier for NRGBA, NRGBA64 image types.
Support for these is added by providing the necessary resize functions.
2015-03-25 18:38:23 +01:00
jst
53e9ca890b Fix typos. 2015-03-18 20:19:43 +01:00
jst
d67851ed1f Explain optimization. 2015-03-18 19:56:53 +01:00
Charlie Vieth
d8255b0421 Optimize bound checks.
Optimizing the bound checks resulted in an overall 14% increase in
conversion performance.
2015-03-15 17:44:39 -04:00
jst
0c6a628df5 Resolve image artifacts due to wrong coefficient index lookup. 2014-09-15 11:50:59 +02:00
jst
581d15cb53 Fix parallel computation. 2014-08-20 21:12:39 +02:00
jst
e950449c49 Fix wrong boundary calculation (bug #17)
This fix doesn't currently work concurrently. This will be fixed in another commit.
2014-08-20 20:54:59 +02:00
Charlie Vieth
08b124d541 Fix bound out of range panic. 2014-08-12 16:11:25 -04:00
Charlie Vieth
eefd4737aa Optimize YCbCr image resize 2014-07-30 02:08:58 -04:00
Charlie Vieth
80b3fc2b3f Pre-calculate start offset, optimize bound check
Increased performance by 30% for RGBA and 45% for Gray images, minor
performance increase for 16-bit images.

The start offset calculated by createWeights are stored in a slice and
passed to the resize functions to prevent duplication of effort.
2014-07-29 16:53:35 -04:00
jst
016a61cd31 Optimize data-locality for a huge increase in processing speed.
This is a complete rewrite! The tight scaling loop needs data locality for optimal performance. The old version used lots of pointer redirections to access image data which was bad for data locality. By providing the complete loop for each image type, this problem is solved. Unfortunately this increases code duplication but the result should be worth it: I could measure a ~6x speed-up for certain test cases!
2014-07-19 13:19:31 +02:00
jst
314cea6612 Avoid temporaries to save some cycles. 2014-01-17 22:54:15 +01:00
jst
a32116ce4a Add documentation 2012-12-11 20:35:02 +01:00
jst
2d6edc049a Change ordering 2012-12-11 19:57:34 +01:00
jst
cfcbeb4bb2 Use replicated border in genericConverter 2012-12-10 21:26:34 +01:00
jst
dc1fcd1d24 gofmt 2012-12-10 19:52:41 +01:00
jst
378e366327 Replicate border instead of using a constant
Constant border could lead to wrong values alpha values with certain
configurations.
2012-12-10 19:27:21 +01:00
jst
3e06045c3f Speed up computation: Try to avoid Image.At() as much as possible -> specialized color access for some image types 2012-09-21 20:02:25 +02:00