Resampling using Spline filter and weird artifacts [on hold]

I am trying to write a simple function to resample images. However I get weird artifacts when using “Spline” filter but now when using “Hermite” filter.

This is my input grayscale image:

enter image description here

Simplified, pseudocodish code:

  Func = SplineFilter;    Bmp2 = new Bitmap();   Bmp2.SetSize(350, 320);    ratioX = (Bmp.Width-1)/(Bmp2.Width -1);   ratioY = (Bmp.Height-1)/(Bmp2.Height -1);    for (y=0; y<Bmp2.Height; y++)   {   for (x=0; x<Bmp2.Width; x++)   {     xx = ratioX * x;     yy = ratioY * y;      //central point     xxx = Round(xx); //the result is integer     yyy = Round(yy); //the result is integer      diffX = xxx - xx;     diffY = yyy - yy;      p1 = Bmp.GetPixel(xxx-1,yyy-1);     p2 = Bmp.GetPixel(xxx  ,yyy-1);     p3 = Bmp.GetPixel(xxx+1,yyy-1);      p4 = Bmp.GetPixel(xxx-1,yyy  );     p5 = Bmp.GetPixel(xxx  ,yyy  );     p6 = Bmp.GetPixel(xxx+1,yyy  );      p7 = Bmp.GetPixel(xxx-1,yyy+1);     p8 = Bmp.GetPixel(xxx  ,yyy+1);     p9 = Bmp.GetPixel(xxx+1,yyy+1);       R = Func(diffX-1) * Func(diffY-1) * p1.Red +         Func(diffX  ) * Func(diffY-1) * p2.Red +         Func(diffX+1) * Func(diffY-1) * p3.Red +          Func(diffX-1) * Func(diffY  ) * p4.Red +         Func(diffX  ) * Func(diffY  ) * p5.Red +         Func(diffX+1) * Func(diffY  ) * p6.Red +          Func(diffX-1) * Func(diffY+1) * p7.Red +         Func(diffX  ) * Func(diffY+1) * p8.Red +         Func(diffX+1) * Func(diffY+1) * p9.Red;      RR = Clip(R); //result is integer. >=255 becomes 255. <=0 becomes 0. Everything else is rounded      Bmp2.SetPixel(x,y, RGBA(RR,RR,RR, 255));            }   } 

The “Spline” filter is defined in a rather standard way:

function SplineFilter(Value) {   if (Value < 0.0)   {     Value = -Value;   }   if (Value < 1.0)   {     tt = Sqr(Value);     Result = 0.5*tt*Value - tt + 2.0 / 3.0;   }    else if (Value < 2.0)   {     Value = 2.0 - Value;     Result = 1.0/6.0 * Sqr(Value) * Value;   }    else   {     Result = 0.0;   } } 

And this is how the result looks:

enter image description here

However the same function with “Hermite” filter works just fine. This is the result:

enter image description here

And here’s the code of Hermite, rather usual definition:

function HermiteFilter(Value) {   if (Value < 0.0)   {     Value = -Value;   }   if (Value < 1.0)   {     Result = (2.0 * Value - 3.0) * Sqr(Value) + 1.0   }   else   {     Result = 0.0;   } } 

The problem isn’t only with “Spline”. Some filters give similar problems to “Spline” (like “Lanczos”). However some other filters (like “Box”) work just as fine as “Hermite”. It doesn’t seem like a rounding error to me. Almost everything is done on floats. Integers are marked in code and there isn’t a lot of them.

How does the Essence Attribute limit work with artifacts?

In 2nd edition exalted you can only get an attribute past 5 dots if your essence is also past 5. How does this work with artifacts?

For Example

Crown of Thunder(Artifact 5): Once Attuned (10 motes) it increased her physical attributes by 3 dots.

If an essence 3, Solar who had strength 5 attuned to this helmet would it increase his Strength to 8 or would it be capped at 5 until his essence was raised?

Best way to Display Premium Artifacts

We are thinking to inform users about premium content before accessing some areas. Our main artifacts are in round shapes, therefore what will be the best way to visually tell users about paid/premium content. One method that i think is by giving price around the boundary of artifacts. It does not look attractive for a better user experience but it fulfills the requirement. Please suggest some visual representations. Thanks Visual Representation of paid Content

Display artifacts on fresh install with GTX 1060

Just installed 18.04.1 LTS, updated, upgraded, added in the Nvidia repo, and using the 396 driver. With all of this done, I’m getting random black line artifacts coming across the screen if I’m on a bright screen on my main monitor.

I’m using a GTX 1060, with two monitors, one connected via DVI, the other connected via HDMI. The DVI monitor is fine, it’s also an older monitor, but haven’t had any artifacts or anything on it. It only happens on my main display.

I have Windows installed on the same system (gaming), and the problem isn’t there, so I’m assuming it has something to do with software/firmware. I’m not sure where I should progress at this point. Anyone have any ideas?