public void BlendLineShallow(sPixel col, OutputMatrix output) { _AlphaBlend(1, 4, output.Reference(_SCALE - 1, 0), col); _AlphaBlend(1, 4, output.Reference(_SCALE - 2, 2), col); _AlphaBlend(3, 4, output.Reference(_SCALE - 1, 1), col); output.Reference(_SCALE - 1, 2).SetPixel(col); }
private int PixelMix(Dictionary <int, int> argbs) { if (argbs.Count == 0) { throw new System.Exception(); } int _argb = 0; sPixel[] pix = new sPixel[argbs.Count]; int index = 0; foreach (KeyValuePair <int, int> entry in argbs) { int myColor = entry.Key; byte b = (byte)(myColor & 0xFF); byte g = (byte)((myColor >> 8) & 0xFF); byte r = (byte)((myColor >> 16) & 0xFF); byte a = (byte)((myColor >> 24) & 0xFF); pix[index] = sPixel.FromRGBA(r, g, b, a); index++; } sPixel finalPix = alphaWeightedAverage(pix); return(finalPix.Color.ToArgb()); }
public void BlendLineSteep(sPixel col, OutputMatrix output) { _AlphaBlend(1, 4, output.Reference(0, _SCALE - 1), col); _AlphaBlend(1, 4, output.Reference(2, _SCALE - 2), col); _AlphaBlend(3, 4, output.Reference(1, _SCALE - 1), col); output.Reference(2, _SCALE - 1).SetPixel(col); }
public void BlendCorner(sPixel col, OutputMatrix output) { //model a round corner _AlphaBlend(45, 100, output.Reference(2, 2), col); //exact: 0.4545939598 //alphaBlend(14, 1000, out.ref(2, 1), col); //0.01413008627 -> negligable //alphaBlend(14, 1000, out.ref(1, 2), col); //0.01413008627 }
public void BlendCorner(sPixel col, OutputMatrix output) { //model a round corner _AlphaBlend(68, 100, output.Reference(3, 3), col); //exact: 0.6848532563 _AlphaBlend(9, 100, output.Reference(3, 2), col); //0.08677704501 _AlphaBlend(9, 100, output.Reference(2, 3), col); //0.08677704501 }
private static void _AlphaBlend128W(ref sPixel dst, sPixel src, bool blend) { if (blend) { dst = sPixel.Interpolate(dst, src); } }
private static void _Up2_3X(ref sPixel n5, ref sPixel n7, ref sPixel n2, out sPixel n8, sPixel pixel, bool blend) { _AlphaBlend192W(ref n5, pixel, blend); _AlphaBlend64W(ref n7, pixel, blend); _AlphaBlend64W(ref n2, pixel, blend); n8 = pixel; }
private static double _DistYCbCr(sPixel pix1, sPixel pix2, double lumaWeight) { //http://en.wikipedia.org/wiki/YCbCr#ITU-R_BT.601_conversion //YCbCr conversion is a matrix multiplication => take advantage of linearity by subtracting first! var rDiff = pix1.Red - pix2.Red; var gDiff = pix1.Green - pix2.Green; var bDiff = pix1.Blue - pix2.Blue; const double kB = 0.0722; //ITU-R BT.709 conversion const double kR = 0.2126; // const double kG = 1 - kB - kR; const double scaleB = 0.5 / (1 - kB); const double scaleR = 0.5 / (1 - kR); var y = kR * rDiff + kG * gDiff + kB * bDiff; //[!], analog YCbCr! var cB = scaleB * (bDiff - y); var cR = scaleR * (rDiff - y); // Skip division by 255. // Also skip square root here by pre-squaring the // config option equalColorTolerance. //return Math.sqrt(square(lumaWeight * y) + square(c_b) + square(c_r)); return(_Square(lumaWeight * y) + _Square(cB) + _Square(cR)); }
public void BlendLineSteepAndShallow(sPixel col, OutputMatrix output) { _AlphaBlend(1, 4, output.Reference(2, 0), col); _AlphaBlend(1, 4, output.Reference(0, 2), col); _AlphaBlend(3, 4, output.Reference(2, 1), col); _AlphaBlend(3, 4, output.Reference(1, 2), col); output.Reference(2, 2).SetPixel(col); }
private static void _LeftUp2_3X(ref sPixel n7, out sPixel n5, ref sPixel n6, ref sPixel n2, out sPixel n8, sPixel pixel, bool blend) { _AlphaBlend192W(ref n7, pixel, blend); _AlphaBlend64W(ref n6, pixel, blend); n5 = n7; n2 = n6; n8 = pixel; }
private static void _LeftUp2(out sPixel n15, out sPixel n14, out sPixel n11, ref sPixel n13, ref sPixel n12, out sPixel n10, out sPixel n7, out sPixel n3, sPixel pixel, bool blend) { _AlphaBlend192W(ref n13, pixel, blend); _AlphaBlend64W(ref n12, pixel, blend); n15 = n14 = n11 = pixel; n10 = n3 = n12; n7 = n13; }
private static void _Left2(out sPixel n15, out sPixel n14, ref sPixel n11, ref sPixel n13, ref sPixel n12, ref sPixel n10, sPixel pixel, bool blend) { _AlphaBlend192W(ref n11, pixel, blend); _AlphaBlend192W(ref n13, pixel, blend); _AlphaBlend64W(ref n10, pixel, blend); _AlphaBlend64W(ref n12, pixel, blend); n14 = pixel; n15 = pixel; }
private static void _Up2(out sPixel n15, ref sPixel n14, out sPixel n11, ref sPixel n3, ref sPixel n7, ref sPixel n10, sPixel pixel, bool blend) { _AlphaBlend192W(ref n14, pixel, blend); _AlphaBlend192W(ref n7, pixel, blend); _AlphaBlend64W(ref n10, pixel, blend); _AlphaBlend64W(ref n3, pixel, blend); n11 = pixel; n15 = pixel; }
private int GBCColor(int normalColor) { byte b = (byte)(normalColor & 0xFF); byte g = (byte)((normalColor >> 8) & 0xFF); byte r = (byte)((normalColor >> 16) & 0xFF); byte a = (byte)((normalColor >> 24) & 0xFF); // reduce to 5-bit values if (reduceColors.Value == true) { b /= 8; g /= 8; r /= 8; b = scale_channel_with_curve(b); g = scale_channel_with_curve(g); r = scale_channel_with_curve(r); } sPixel scaledPixel = sPixel.FromRGBA(r, g, b, a); Color gameboyizedColor; if (style.GetSelected() == "Pokefan531") { gameboyizedColor = GBCShader(scaledPixel.Color); } else if (style.GetSelected() == "Sameboy") { // GB_COLOR_CORRECTION_EMULATE_HARDWARE int new_b = b; int new_g = Math.Min((g * 3 + b) / 4, 255); int new_r = r; //GB_COLOR_CORRECTION_PRESERVE_BRIGHTNESS if (reduceColors.Value == true) { int old_max = Math.Max(r, Math.Max(g, b)); int new_max = Math.Max(new_r, Math.Max(new_g, new_b)); int old_min = Math.Min(r, Math.Min(g, b)); int new_min = Math.Min(new_r, Math.Min(new_g, new_b)); new_b = PreserveBrightness(new_b, old_max, new_max, old_min, new_min); new_g = PreserveBrightness(new_g, old_max, new_max, old_min, new_min); new_r = PreserveBrightness(new_r, old_max, new_max, old_min, new_min); } sPixel correctedPixel = sPixel.FromRGBA(new_r, new_g, new_b, a); gameboyizedColor = correctedPixel.Color; } else { gameboyizedColor = scaledPixel.Color; } return(SimulateGreyness(gameboyizedColor).ToArgb()); }
public void BlendCorner(sPixel col, OutputMatrix output) { //model a round corner _AlphaBlend(86, 100, output.Reference(4, 4), col); //exact: 0.8631434088 _AlphaBlend(23, 100, output.Reference(4, 3), col); //0.2306749731 _AlphaBlend(23, 100, output.Reference(3, 4), col); //0.2306749731 //alphaBlend(8, 1000, out.ref(4, 2), col); //0.008384061834 -> negligable //alphaBlend(8, 1000, out.ref(2, 4), col); //0.008384061834 }
public void BlendLineDiagonal(sPixel col, OutputMatrix output) { _AlphaBlend(1, 8, output.Reference(_SCALE - 1, _SCALE / 2), col); _AlphaBlend(1, 8, output.Reference(_SCALE - 2, _SCALE / 2 + 1), col); _AlphaBlend(1, 8, output.Reference(_SCALE - 3, _SCALE / 2 + 2), col); _AlphaBlend(7, 8, output.Reference(4, 3), col); _AlphaBlend(7, 8, output.Reference(3, 4), col); output.Reference(4, 4).SetPixel(col); }
public void BlendCorner(sPixel col, OutputMatrix output) { //model a round corner _AlphaBlend(97, 100, output.Reference(5, 5), col); //exact: 0.9711013910 _AlphaBlend(42, 100, output.Reference(4, 5), col); //0.4236372243 _AlphaBlend(42, 100, output.Reference(5, 4), col); //0.4236372243 _AlphaBlend(6, 100, output.Reference(5, 3), col); //0.05652034508 _AlphaBlend(6, 100, output.Reference(3, 5), col); //0.05652034508 }
private static void _FillBlock(sPixel[] trg, int trgi, int pitch, sPixel col, int blockSize) { for (var y = 0; y < blockSize; ++y, trgi += pitch) { for (var x = 0; x < blockSize; ++x) { trg[trgi + x] = col; } } }
public void BlendLineSteepAndShallow(sPixel col, OutputMatrix output) { _AlphaBlend(3, 4, output.Reference(3, 1), col); _AlphaBlend(3, 4, output.Reference(1, 3), col); _AlphaBlend(1, 4, output.Reference(3, 0), col); _AlphaBlend(1, 4, output.Reference(0, 3), col); _AlphaBlend(1, 3, output.Reference(2, 2), col); //[!] fixes 1/4 used in xBR output.Reference(3, 3).SetPixel(col); output.Reference(3, 2).SetPixel(col); output.Reference(2, 3).SetPixel(col); }
private static void _Kernel3X(sPixel pe, sPixel pi, sPixel ph, sPixel pf, sPixel pg, sPixel pc, sPixel pd, sPixel pb, sPixel f4, sPixel i4, sPixel h5, sPixel i5, ref sPixel n2, ref sPixel n5, ref sPixel n6, ref sPixel n7, ref sPixel n8, bool blend, bool useOriginalImplementation) { var ex = (pe != ph && pe != pf); if (!ex) { return; } var e = (_YuvDifference(pe, pc) + _YuvDifference(pe, pg) + _YuvDifference(pi, h5) + _YuvDifference(pi, f4)) + (_YuvDifference(ph, pf) << 2); var i = (_YuvDifference(ph, pd) + _YuvDifference(ph, i5) + _YuvDifference(pf, i4) + _YuvDifference(pf, pb)) + (_YuvDifference(pe, pi) << 2); bool state; if (useOriginalImplementation) { state = ((e < i) && (!_IsEqual(pf, pb) && !_IsEqual(ph, pd) || _IsEqual(pe, pi) && (!_IsEqual(pf, i4) && !_IsEqual(ph, i5)) || _IsEqual(pe, pg) || _IsEqual(pe, pc))); } else { state = ((e < i) && (!_IsEqual(pf, pb) && !_IsEqual(pf, pc) || !_IsEqual(ph, pd) && !_IsEqual(ph, pg) || _IsEqual(pe, pi) && (!_IsEqual(pf, f4) && !_IsEqual(pf, i4) || !_IsEqual(ph, h5) && !_IsEqual(ph, i5)) || _IsEqual(pe, pg) || _IsEqual(pe, pc))); } if (state) { var ke = _YuvDifference(pf, pg); var ki = _YuvDifference(ph, pc); var ex2 = (pe != pc && pb != pc); var ex3 = (pe != pg && pd != pg); var px = (_YuvDifference(pe, pf) <= _YuvDifference(pe, ph)) ? pf : ph; if (((ke << 1) <= ki) && ex3 && (ke >= (ki << 1)) && ex2) { _LeftUp2_3X(ref n7, out n5, ref n6, ref n2, out n8, px, blend); } else if (((ke << 1) <= ki) && ex3) { _Left2_3X(ref n7, ref n5, ref n6, out n8, px, blend); } else if ((ke >= (ki << 1)) && ex2) { _Up2_3X(ref n5, ref n7, ref n2, out n8, px, blend); } else { _Dia_3X(ref n8, ref n5, ref n7, px, blend); } } else if (e <= i) { _AlphaBlend128W(ref n8, ((_YuvDifference(pe, pf) <= _YuvDifference(pe, ph)) ? pf : ph), blend); } }
public void BlendLineSteepAndShallow(sPixel col, OutputMatrix output) { _AlphaBlend(1, 4, output.Reference(0, _SCALE - 1), col); _AlphaBlend(1, 4, output.Reference(2, _SCALE - 2), col); _AlphaBlend(3, 4, output.Reference(1, _SCALE - 1), col); _AlphaBlend(1, 4, output.Reference(_SCALE - 1, 0), col); _AlphaBlend(1, 4, output.Reference(_SCALE - 2, 2), col); _AlphaBlend(3, 4, output.Reference(_SCALE - 1, 1), col); output.Reference(2, _SCALE - 1).SetPixel(col); output.Reference(3, _SCALE - 1).SetPixel(col); output.Reference(_SCALE - 1, 2).SetPixel(col); output.Reference(_SCALE - 1, 3).SetPixel(col); output.Reference(4, _SCALE - 1).SetPixel(col); _AlphaBlend(2, 3, output.Reference(3, 3), col); }
private static void _Kernel2Xv5(sPixel pe, sPixel pi, sPixel ph, sPixel pf, sPixel pg, sPixel pc, sPixel pd, sPixel pb, sPixel f4, sPixel i4, sPixel h5, sPixel i5, ref sPixel n1, ref sPixel n2, ref sPixel n3, bool blend) { var ex = pe != ph && pe != pf; if (!ex) { return; } var e = _YuvDifference(pe, pc) + _YuvDifference(pe, pg) + _YuvDifference(pi, h5) + _YuvDifference(pi, f4) + (_YuvDifference(ph, pf) << 2); var i = _YuvDifference(ph, pd) + _YuvDifference(ph, i5) + _YuvDifference(pf, i4) + _YuvDifference(pf, pb) + (_YuvDifference(pe, pi) << 2); var px = _YuvDifference(pe, pf) <= _YuvDifference(pe, ph) ? pf : ph; if (e < i && (!_IsEqual(pf, pb) && !_IsEqual(ph, pd) || _IsEqual(pe, pi) && !_IsEqual(pf, i4) && !_IsEqual(ph, i5) || _IsEqual(pe, pg) || _IsEqual(pe, pc))) { var ke = _YuvDifference(pf, pg); var ki = _YuvDifference(ph, pc); var ex2 = pe != pc && pb != pc; var ex3 = pe != pg && pd != pg; if (ke << 1 <= ki && ex3 || ke >= ki << 1 && ex2) { if (ke << 1 <= ki && ex3) { _Left2_2X(ref n3, ref n2, px, blend); } if (ke >= ki << 1 && ex2) { _Up2_2X(ref n3, ref n1, px, blend); } } else { _Dia_2X(ref n3, px, blend); } } else if (e <= i) { _AlphaBlend64W(ref n3, px, blend); } }
private static sPixel _Unmix(sPixel c1, sPixel c2) { /* A variant of an unsharp mask, without the blur part. */ var ra = c1.Red; var ga = c1.Green; var ba = c1.Blue; var rb = c2.Red; var gb = c2.Green; var bb = c2.Blue; var r = (_ClampToByteRange(ra + (ra - rb)) + rb) >> 1; var g = (_ClampToByteRange(ga + (ga - gb)) + gb) >> 1; var b = (_ClampToByteRange(ba + (ba - bb)) + bb) >> 1; return(sPixel.FromRGBA(r, g, b, (c1.Alpha + c2.Alpha) >> 1)); }
// used for 2xSaI, Super Eagle, Super 2xSaI // using thresholds when comparing (Hawkynt) private static int _Conc2D(sPixel c00, sPixel c01, sPixel c10, sPixel c11) { var result = 0; var acAreAlike = c00.IsLike(c10); var x = acAreAlike ? 1 : 0; var y = (c01.IsLike(c10) && !(acAreAlike)) ? 1 : 0; var adAreAlike = c00.IsLike(c11); x += adAreAlike ? 1 : 0; y += (c01.IsLike(c11) && !(adAreAlike)) ? 1 : 0; if (x <= 1) result++; if (y <= 1) result--; return (result); }
private static void _Kernel4Xv2(sPixel pe, sPixel pi, sPixel ph, sPixel pf, sPixel pg, sPixel pc, sPixel pd, sPixel pb, sPixel f4, sPixel i4, sPixel h5, sPixel i5, ref sPixel n15, ref sPixel n14, ref sPixel n11, ref sPixel n3, ref sPixel n7, ref sPixel n10, ref sPixel n13, ref sPixel n12, bool blend) { var ex = (pe != ph && pe != pf); if (!ex) { return; } var e = (_YuvDifference(pe, pc) + _YuvDifference(pe, pg) + _YuvDifference(pi, h5) + _YuvDifference(pi, f4)) + (_YuvDifference(ph, pf) << 2); var i = (_YuvDifference(ph, pd) + _YuvDifference(ph, i5) + _YuvDifference(pf, i4) + _YuvDifference(pf, pb)) + (_YuvDifference(pe, pi) << 2); var px = (_YuvDifference(pe, pf) <= _YuvDifference(pe, ph)) ? pf : ph; if ((e < i) && (!_IsEqual(pf, pb) && !_IsEqual(ph, pd) || _IsEqual(pe, pi) && (!_IsEqual(pf, i4) && !_IsEqual(ph, i5)) || _IsEqual(pe, pg) || _IsEqual(pe, pc))) { var ke = _YuvDifference(pf, pg); var ki = _YuvDifference(ph, pc); var ex2 = (pe != pc && pb != pc); var ex3 = (pe != pg && pd != pg); if (((ke << 1) <= ki) && ex3 || (ke >= (ki << 1)) && ex2) { if (((ke << 1) <= ki) && ex3) { _Left2(out n15, out n14, ref n11, ref n13, ref n12, ref n10, px, blend); } if ((ke >= (ki << 1)) && ex2) { _Up2(out n15, ref n14, out n11, ref n3, ref n7, ref n10, px, blend); } } else { _Dia(out n15, ref n14, ref n11, px, blend); } } else if (e <= i) { _AlphaBlend128W(ref n15, px, blend); } }
private static double _DistYCbCr(sPixel pix1, sPixel pix2, double lumaWeight) { //http://en.wikipedia.org/wiki/YCbCr#ITU-R_BT.601_conversion //YCbCr conversion is a matrix multiplication => take advantage of linearity by subtracting first! var rDiff = pix1.Red - pix2.Red; var gDiff = pix1.Green - pix2.Green; var bDiff = pix1.Blue - pix2.Blue; const double kB = 0.0722; //ITU-R BT.709 conversion const double kR = 0.2126; // const double kG = 1 - kB - kR; const double scaleB = 0.5 / (1 - kB); const double scaleR = 0.5 / (1 - kR); var y = kR * rDiff + kG * gDiff + kB * bDiff; //[!], analog YCbCr! var cB = scaleB * (bDiff - y); var cR = scaleR * (rDiff - y); // Skip division by 255. // Also skip square root here by pre-squaring the // config option equalColorTolerance. //return Math.sqrt(square(lumaWeight * y) + square(c_b) + square(c_r)); return _Square(lumaWeight * y) + _Square(cB) + _Square(cR); }
// used for 2xSaI, Super Eagle, Super 2xSaI // using thresholds when comparing (Hawkynt) private static int _Conc2D(sPixel c00, sPixel c01, sPixel c10, sPixel c11) { var result = 0; var acAreAlike = c00.IsLike(c10); var x = acAreAlike ? 1 : 0; var y = (c01.IsLike(c10) && !(acAreAlike)) ? 1 : 0; var adAreAlike = c00.IsLike(c11); x += adAreAlike ? 1 : 0; y += (c01.IsLike(c11) && !(adAreAlike)) ? 1 : 0; if (x <= 1) { result++; } if (y <= 1) { result--; } return(result); }
public void BlendLineShallow(sPixel col, OutputMatrix output) { _AlphaBlend(1, 4, output.Reference(_SCALE - 1, 0), col); _AlphaBlend(1, 4, output.Reference(_SCALE - 2, 2), col); _AlphaBlend(1, 4, output.Reference(_SCALE - 3, 4), col); _AlphaBlend(3, 4, output.Reference(_SCALE - 1, 1), col); _AlphaBlend(3, 4, output.Reference(_SCALE - 2, 3), col); output.Reference(_SCALE - 1, 2).SetPixel(col); output.Reference(_SCALE - 1, 3).SetPixel(col); output.Reference(_SCALE - 1, 4).SetPixel(col); output.Reference(_SCALE - 2, 4).SetPixel(col); }
public void BlendLineSteep(sPixel col, OutputMatrix output) { _AlphaBlend(1, 4, output.Reference(0, _SCALE - 1), col); _AlphaBlend(1, 4, output.Reference(2, _SCALE - 2), col); _AlphaBlend(1, 4, output.Reference(4, _SCALE - 3), col); _AlphaBlend(3, 4, output.Reference(1, _SCALE - 1), col); _AlphaBlend(3, 4, output.Reference(3, _SCALE - 2), col); output.Reference(2, _SCALE - 1).SetPixel(col); output.Reference(3, _SCALE - 1).SetPixel(col); output.Reference(4, _SCALE - 1).SetPixel(col); output.Reference(4, _SCALE - 2).SetPixel(col); }
private static void _Dia_2X(ref sPixel n3, sPixel pixel, bool blend) { _AlphaBlend128W(ref n3, pixel, blend); }
private static void _Left2_2X(ref sPixel n3, ref sPixel n2, sPixel pixel, bool blend) { _AlphaBlend192W(ref n3, pixel, blend); _AlphaBlend64W(ref n2, pixel, blend); }
private static void _Kernel4Xv2(sPixel pe, sPixel pi, sPixel ph, sPixel pf, sPixel pg, sPixel pc, sPixel pd, sPixel pb, sPixel f4, sPixel i4, sPixel h5, sPixel i5, ref sPixel n15, ref sPixel n14, ref sPixel n11, ref sPixel n3, ref sPixel n7, ref sPixel n10, ref sPixel n13, ref sPixel n12, bool blend) { var ex = (pe != ph && pe != pf); if (!ex) return; var e = (_YuvDifference(pe, pc) + _YuvDifference(pe, pg) + _YuvDifference(pi, h5) + _YuvDifference(pi, f4)) + (_YuvDifference(ph, pf) << 2); var i = (_YuvDifference(ph, pd) + _YuvDifference(ph, i5) + _YuvDifference(pf, i4) + _YuvDifference(pf, pb)) + (_YuvDifference(pe, pi) << 2); var px = (_YuvDifference(pe, pf) <= _YuvDifference(pe, ph)) ? pf : ph; if ((e < i) && (!_IsEqual(pf, pb) && !_IsEqual(ph, pd) || _IsEqual(pe, pi) && (!_IsEqual(pf, i4) && !_IsEqual(ph, i5)) || _IsEqual(pe, pg) || _IsEqual(pe, pc))) { var ke = _YuvDifference(pf, pg); var ki = _YuvDifference(ph, pc); var ex2 = (pe != pc && pb != pc); var ex3 = (pe != pg && pd != pg); if (((ke << 1) <= ki) && ex3 || (ke >= (ki << 1)) && ex2) { if (((ke << 1) <= ki) && ex3) _Left2(out n15, out n14, ref n11, ref n13, ref n12, ref n10, px, blend); if ((ke >= (ki << 1)) && ex2) _Up2(out n15, ref n14, out n11, ref n3, ref n7, ref n10, px, blend); } else _Dia(out n15, ref n14, ref n11, px, blend); } else if (e <= i) { _AlphaBlend128W(ref n15, px, blend); } }
private static void _AlphaBlend128W(ref sPixel dst, sPixel src, bool blend) { if (blend) dst = sPixel.Interpolate(dst, src); }
private static bool _IsEqual(sPixel a, sPixel b) { return (a.IsLike(b)); }
public static void Hq4xKernel(byte pattern, sPixel c0, sPixel c1, sPixel c2, sPixel c3, sPixel c4, sPixel c5, sPixel c6, sPixel c7, sPixel c8, PixelWorker<sPixel> worker) { sPixel e01, e02, e03, e10, e11, e12, e13, e20, e21, e22, e23, e30, e31, e32, e33; var e00 = e01 = e02 = e03 = e10 = e11 = e12 = e13 = e20 = e21 = e22 = e23 = e30 = e31 = e32 = e33 = c4; switch (pattern) { #region HQ4x PATTERNS case 0: case 1: case 4: case 5: case 32: case 33: case 36: case 37: case 128: case 129: case 132: case 133: case 160: case 161: case 164: case 165: { e00 = sPixel.Interpolate(c4, c1, c3, 2, 1, 1); e01 = sPixel.Interpolate(c4, c1, c3, 5, 2, 1); e02 = sPixel.Interpolate(c4, c1, c5, 5, 2, 1); e03 = sPixel.Interpolate(c4, c1, c5, 2, 1, 1); e10 = sPixel.Interpolate(c4, c3, c1, 5, 2, 1); e11 = sPixel.Interpolate(c4, c1, c3, 6, 1, 1); e12 = sPixel.Interpolate(c4, c1, c5, 6, 1, 1); e13 = sPixel.Interpolate(c4, c5, c1, 5, 2, 1); e20 = sPixel.Interpolate(c4, c3, c7, 5, 2, 1); e21 = sPixel.Interpolate(c4, c3, c7, 6, 1, 1); e22 = sPixel.Interpolate(c4, c5, c7, 6, 1, 1); e23 = sPixel.Interpolate(c4, c5, c7, 5, 2, 1); e30 = sPixel.Interpolate(c4, c3, c7, 2, 1, 1); e31 = sPixel.Interpolate(c4, c7, c3, 5, 2, 1); e32 = sPixel.Interpolate(c4, c7, c5, 5, 2, 1); e33 = sPixel.Interpolate(c4, c5, c7, 2, 1, 1); } break; case 2: case 34: case 130: case 162: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e10 = sPixel.Interpolate(c4, c3, c0, 5, 2, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c5, c2, 5, 2, 1); e20 = sPixel.Interpolate(c4, c3, c7, 5, 2, 1); e21 = sPixel.Interpolate(c4, c3, c7, 6, 1, 1); e22 = sPixel.Interpolate(c4, c5, c7, 6, 1, 1); e23 = sPixel.Interpolate(c4, c5, c7, 5, 2, 1); e30 = sPixel.Interpolate(c4, c3, c7, 2, 1, 1); e31 = sPixel.Interpolate(c4, c7, c3, 5, 2, 1); e32 = sPixel.Interpolate(c4, c7, c5, 5, 2, 1); e33 = sPixel.Interpolate(c4, c5, c7, 2, 1, 1); } break; case 3: case 35: case 131: case 163: { e00 = sPixel.Interpolate(c4, c3, 5, 3); e01 = sPixel.Interpolate(c4, c3, 7, 1); e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e10 = sPixel.Interpolate(c4, c3, 5, 3); e11 = sPixel.Interpolate(c4, c3, 7, 1); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c5, c2, 5, 2, 1); e20 = sPixel.Interpolate(c4, c3, c7, 5, 2, 1); e21 = sPixel.Interpolate(c4, c3, c7, 6, 1, 1); e22 = sPixel.Interpolate(c4, c5, c7, 6, 1, 1); e23 = sPixel.Interpolate(c4, c5, c7, 5, 2, 1); e30 = sPixel.Interpolate(c4, c3, c7, 2, 1, 1); e31 = sPixel.Interpolate(c4, c7, c3, 5, 2, 1); e32 = sPixel.Interpolate(c4, c7, c5, 5, 2, 1); e33 = sPixel.Interpolate(c4, c5, c7, 2, 1, 1); } break; case 6: case 38: case 134: case 166: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e02 = sPixel.Interpolate(c4, c5, 7, 1); e03 = sPixel.Interpolate(c4, c5, 5, 3); e10 = sPixel.Interpolate(c4, c3, c0, 5, 2, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = sPixel.Interpolate(c4, c5, 7, 1); e13 = sPixel.Interpolate(c4, c5, 5, 3); e20 = sPixel.Interpolate(c4, c3, c7, 5, 2, 1); e21 = sPixel.Interpolate(c4, c3, c7, 6, 1, 1); e22 = sPixel.Interpolate(c4, c5, c7, 6, 1, 1); e23 = sPixel.Interpolate(c4, c5, c7, 5, 2, 1); e30 = sPixel.Interpolate(c4, c3, c7, 2, 1, 1); e31 = sPixel.Interpolate(c4, c7, c3, 5, 2, 1); e32 = sPixel.Interpolate(c4, c7, c5, 5, 2, 1); e33 = sPixel.Interpolate(c4, c5, c7, 2, 1, 1); } break; case 7: case 39: case 135: case 167: { e00 = sPixel.Interpolate(c4, c3, 5, 3); e01 = sPixel.Interpolate(c4, c3, 7, 1); e02 = sPixel.Interpolate(c4, c5, 7, 1); e03 = sPixel.Interpolate(c4, c5, 5, 3); e10 = sPixel.Interpolate(c4, c3, 5, 3); e11 = sPixel.Interpolate(c4, c3, 7, 1); e12 = sPixel.Interpolate(c4, c5, 7, 1); e13 = sPixel.Interpolate(c4, c5, 5, 3); e20 = sPixel.Interpolate(c4, c3, c7, 5, 2, 1); e21 = sPixel.Interpolate(c4, c3, c7, 6, 1, 1); e22 = sPixel.Interpolate(c4, c5, c7, 6, 1, 1); e23 = sPixel.Interpolate(c4, c5, c7, 5, 2, 1); e30 = sPixel.Interpolate(c4, c3, c7, 2, 1, 1); e31 = sPixel.Interpolate(c4, c7, c3, 5, 2, 1); e32 = sPixel.Interpolate(c4, c7, c5, 5, 2, 1); e33 = sPixel.Interpolate(c4, c5, c7, 2, 1, 1); } break; case 8: case 12: case 136: case 140: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c1, c0, 5, 2, 1); e02 = sPixel.Interpolate(c4, c1, c5, 5, 2, 1); e03 = sPixel.Interpolate(c4, c1, c5, 2, 1, 1); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = sPixel.Interpolate(c4, c1, c5, 6, 1, 1); e13 = sPixel.Interpolate(c4, c5, c1, 5, 2, 1); e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = sPixel.Interpolate(c4, c5, c7, 6, 1, 1); e23 = sPixel.Interpolate(c4, c5, c7, 5, 2, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c7, c6, 5, 2, 1); e32 = sPixel.Interpolate(c4, c7, c5, 5, 2, 1); e33 = sPixel.Interpolate(c4, c5, c7, 2, 1, 1); } break; case 9: case 13: case 137: case 141: { e00 = sPixel.Interpolate(c4, c1, 5, 3); e01 = sPixel.Interpolate(c4, c1, 5, 3); e02 = sPixel.Interpolate(c4, c1, c5, 5, 2, 1); e03 = sPixel.Interpolate(c4, c1, c5, 2, 1, 1); e10 = sPixel.Interpolate(c4, c1, 7, 1); e11 = sPixel.Interpolate(c4, c1, 7, 1); e12 = sPixel.Interpolate(c4, c1, c5, 6, 1, 1); e13 = sPixel.Interpolate(c4, c5, c1, 5, 2, 1); e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = sPixel.Interpolate(c4, c5, c7, 6, 1, 1); e23 = sPixel.Interpolate(c4, c5, c7, 5, 2, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c7, c6, 5, 2, 1); e32 = sPixel.Interpolate(c4, c7, c5, 5, 2, 1); e33 = sPixel.Interpolate(c4, c5, c7, 2, 1, 1); } break; case 10: case 138: { e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c5, c2, 5, 2, 1); e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = sPixel.Interpolate(c4, c5, c7, 6, 1, 1); e23 = sPixel.Interpolate(c4, c5, c7, 5, 2, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c7, c6, 5, 2, 1); e32 = sPixel.Interpolate(c4, c7, c5, 5, 2, 1); e33 = sPixel.Interpolate(c4, c5, c7, 2, 1, 1); if (c1.IsNotLike(c3)) { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); } else { e00 = sPixel.Interpolate(c1, c3, 1, 1); e01 = sPixel.Interpolate(c1, c4, 1, 1); e10 = sPixel.Interpolate(c3, c4, 1, 1); e11 = c4; } } break; case 11: case 139: { e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e11 = c4; e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c5, c2, 5, 2, 1); e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = sPixel.Interpolate(c4, c5, c7, 6, 1, 1); e23 = sPixel.Interpolate(c4, c5, c7, 5, 2, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c7, c6, 5, 2, 1); e32 = sPixel.Interpolate(c4, c7, c5, 5, 2, 1); e33 = sPixel.Interpolate(c4, c5, c7, 2, 1, 1); if (c1.IsNotLike(c3)) { e00 = c4; e01 = c4; e10 = c4; } else { e00 = sPixel.Interpolate(c1, c3, 1, 1); e01 = sPixel.Interpolate(c1, c4, 1, 1); e10 = sPixel.Interpolate(c3, c4, 1, 1); } } break; case 14: case 142: { e12 = sPixel.Interpolate(c4, c5, 7, 1); e13 = sPixel.Interpolate(c4, c5, 5, 3); e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = sPixel.Interpolate(c4, c5, c7, 6, 1, 1); e23 = sPixel.Interpolate(c4, c5, c7, 5, 2, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c7, c6, 5, 2, 1); e32 = sPixel.Interpolate(c4, c7, c5, 5, 2, 1); e33 = sPixel.Interpolate(c4, c5, c7, 2, 1, 1); if (c1.IsNotLike(c3)) { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e02 = sPixel.Interpolate(c4, c5, 7, 1); e03 = sPixel.Interpolate(c4, c5, 5, 3); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); } else { e00 = sPixel.Interpolate(c1, c3, 1, 1); e01 = sPixel.Interpolate(c1, c3, 5, 3); e02 = sPixel.Interpolate(c1, c4, 3, 1); e03 = sPixel.Interpolate(c4, c1, 3, 1); e10 = sPixel.Interpolate(c3, c1, c4, 2, 1, 1); e11 = sPixel.Interpolate(c4, c1, c3, 6, 1, 1); } } break; case 15: case 143: { e12 = sPixel.Interpolate(c4, c5, 7, 1); e13 = sPixel.Interpolate(c4, c5, 5, 3); e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = sPixel.Interpolate(c4, c5, c7, 6, 1, 1); e23 = sPixel.Interpolate(c4, c5, c7, 5, 2, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c7, c6, 5, 2, 1); e32 = sPixel.Interpolate(c4, c7, c5, 5, 2, 1); e33 = sPixel.Interpolate(c4, c5, c7, 2, 1, 1); if (c1.IsNotLike(c3)) { e00 = c4; e01 = c4; e02 = sPixel.Interpolate(c4, c5, 7, 1); e03 = sPixel.Interpolate(c4, c5, 5, 3); e10 = c4; e11 = c4; } else { e00 = sPixel.Interpolate(c1, c3, 1, 1); e01 = sPixel.Interpolate(c1, c3, 5, 3); e02 = sPixel.Interpolate(c1, c4, 3, 1); e03 = sPixel.Interpolate(c4, c1, 3, 1); e10 = sPixel.Interpolate(c3, c1, c4, 2, 1, 1); e11 = sPixel.Interpolate(c4, c1, c3, 6, 1, 1); } } break; case 16: case 17: case 48: case 49: { e00 = sPixel.Interpolate(c4, c1, c3, 2, 1, 1); e01 = sPixel.Interpolate(c4, c1, c3, 5, 2, 1); e02 = sPixel.Interpolate(c4, c1, c2, 5, 2, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e10 = sPixel.Interpolate(c4, c3, c1, 5, 2, 1); e11 = sPixel.Interpolate(c4, c1, c3, 6, 1, 1); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); e20 = sPixel.Interpolate(c4, c3, c7, 5, 2, 1); e21 = sPixel.Interpolate(c4, c3, c7, 6, 1, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e30 = sPixel.Interpolate(c4, c3, c7, 2, 1, 1); e31 = sPixel.Interpolate(c4, c7, c3, 5, 2, 1); e32 = sPixel.Interpolate(c4, c7, c8, 5, 2, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); } break; case 18: case 50: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e10 = sPixel.Interpolate(c4, c3, c0, 5, 2, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e20 = sPixel.Interpolate(c4, c3, c7, 5, 2, 1); e21 = sPixel.Interpolate(c4, c3, c7, 6, 1, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e30 = sPixel.Interpolate(c4, c3, c7, 2, 1, 1); e31 = sPixel.Interpolate(c4, c7, c3, 5, 2, 1); e32 = sPixel.Interpolate(c4, c7, c8, 5, 2, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); if (c1.IsNotLike(c5)) { e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); } else { e02 = sPixel.Interpolate(c1, c4, 1, 1); e03 = sPixel.Interpolate(c1, c5, 1, 1); e12 = c4; e13 = sPixel.Interpolate(c4, c5, 1, 1); } } break; case 19: case 51: { e10 = sPixel.Interpolate(c4, c3, 5, 3); e11 = sPixel.Interpolate(c4, c3, 7, 1); e20 = sPixel.Interpolate(c4, c3, c7, 5, 2, 1); e21 = sPixel.Interpolate(c4, c3, c7, 6, 1, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e30 = sPixel.Interpolate(c4, c3, c7, 2, 1, 1); e31 = sPixel.Interpolate(c4, c7, c3, 5, 2, 1); e32 = sPixel.Interpolate(c4, c7, c8, 5, 2, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); if (c1.IsNotLike(c5)) { e00 = sPixel.Interpolate(c4, c3, 5, 3); e01 = sPixel.Interpolate(c4, c3, 7, 1); e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); } else { e00 = sPixel.Interpolate(c4, c1, 3, 1); e01 = sPixel.Interpolate(c1, c4, 3, 1); e02 = sPixel.Interpolate(c1, c5, 5, 3); e03 = sPixel.Interpolate(c1, c5, 1, 1); e12 = sPixel.Interpolate(c4, c1, c5, 6, 1, 1); e13 = sPixel.Interpolate(c5, c1, c4, 2, 1, 1); } } break; case 20: case 21: case 52: case 53: { e00 = sPixel.Interpolate(c4, c1, c3, 2, 1, 1); e01 = sPixel.Interpolate(c4, c1, c3, 5, 2, 1); e02 = sPixel.Interpolate(c4, c1, 5, 3); e03 = sPixel.Interpolate(c4, c1, 5, 3); e10 = sPixel.Interpolate(c4, c3, c1, 5, 2, 1); e11 = sPixel.Interpolate(c4, c1, c3, 6, 1, 1); e12 = sPixel.Interpolate(c4, c1, 7, 1); e13 = sPixel.Interpolate(c4, c1, 7, 1); e20 = sPixel.Interpolate(c4, c3, c7, 5, 2, 1); e21 = sPixel.Interpolate(c4, c3, c7, 6, 1, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e30 = sPixel.Interpolate(c4, c3, c7, 2, 1, 1); e31 = sPixel.Interpolate(c4, c7, c3, 5, 2, 1); e32 = sPixel.Interpolate(c4, c7, c8, 5, 2, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); } break; case 22: case 54: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e10 = sPixel.Interpolate(c4, c3, c0, 5, 2, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = c4; e20 = sPixel.Interpolate(c4, c3, c7, 5, 2, 1); e21 = sPixel.Interpolate(c4, c3, c7, 6, 1, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e30 = sPixel.Interpolate(c4, c3, c7, 2, 1, 1); e31 = sPixel.Interpolate(c4, c7, c3, 5, 2, 1); e32 = sPixel.Interpolate(c4, c7, c8, 5, 2, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); if (c1.IsNotLike(c5)) { e02 = c4; e03 = c4; e13 = c4; } else { e02 = sPixel.Interpolate(c1, c4, 1, 1); e03 = sPixel.Interpolate(c1, c5, 1, 1); e13 = sPixel.Interpolate(c4, c5, 1, 1); } } break; case 23: case 55: { e10 = sPixel.Interpolate(c4, c3, 5, 3); e11 = sPixel.Interpolate(c4, c3, 7, 1); e20 = sPixel.Interpolate(c4, c3, c7, 5, 2, 1); e21 = sPixel.Interpolate(c4, c3, c7, 6, 1, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e30 = sPixel.Interpolate(c4, c3, c7, 2, 1, 1); e31 = sPixel.Interpolate(c4, c7, c3, 5, 2, 1); e32 = sPixel.Interpolate(c4, c7, c8, 5, 2, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); if (c1.IsNotLike(c5)) { e00 = sPixel.Interpolate(c4, c3, 5, 3); e01 = sPixel.Interpolate(c4, c3, 7, 1); e02 = c4; e03 = c4; e12 = c4; e13 = c4; } else { e00 = sPixel.Interpolate(c4, c1, 3, 1); e01 = sPixel.Interpolate(c1, c4, 3, 1); e02 = sPixel.Interpolate(c1, c5, 5, 3); e03 = sPixel.Interpolate(c1, c5, 1, 1); e12 = sPixel.Interpolate(c4, c1, c5, 6, 1, 1); e13 = sPixel.Interpolate(c5, c1, c4, 2, 1, 1); } } break; case 24: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c1, c0, 5, 2, 1); e02 = sPixel.Interpolate(c4, c1, c2, 5, 2, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c7, c6, 5, 2, 1); e32 = sPixel.Interpolate(c4, c7, c8, 5, 2, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); } break; case 25: { e00 = sPixel.Interpolate(c4, c1, 5, 3); e01 = sPixel.Interpolate(c4, c1, 5, 3); e02 = sPixel.Interpolate(c4, c1, c2, 5, 2, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e10 = sPixel.Interpolate(c4, c1, 7, 1); e11 = sPixel.Interpolate(c4, c1, 7, 1); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c7, c6, 5, 2, 1); e32 = sPixel.Interpolate(c4, c7, c8, 5, 2, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); } break; case 26: case 31: { e11 = c4; e12 = c4; e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c7, c6, 5, 2, 1); e32 = sPixel.Interpolate(c4, c7, c8, 5, 2, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); if (c1.IsNotLike(c3)) { e00 = c4; e01 = c4; e10 = c4; } else { e00 = sPixel.Interpolate(c1, c3, 1, 1); e01 = sPixel.Interpolate(c1, c4, 1, 1); e10 = sPixel.Interpolate(c3, c4, 1, 1); } if (c1.IsNotLike(c5)) { e02 = c4; e03 = c4; e13 = c4; } else { e02 = sPixel.Interpolate(c1, c4, 1, 1); e03 = sPixel.Interpolate(c1, c5, 1, 1); e13 = sPixel.Interpolate(c4, c5, 1, 1); } } break; case 27: { e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e11 = c4; e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c7, c6, 5, 2, 1); e32 = sPixel.Interpolate(c4, c7, c8, 5, 2, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); if (c1.IsNotLike(c3)) { e00 = c4; e01 = c4; e10 = c4; } else { e00 = sPixel.Interpolate(c1, c3, 1, 1); e01 = sPixel.Interpolate(c1, c4, 1, 1); e10 = sPixel.Interpolate(c3, c4, 1, 1); } } break; case 28: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c1, c0, 5, 2, 1); e02 = sPixel.Interpolate(c4, c1, 5, 3); e03 = sPixel.Interpolate(c4, c1, 5, 3); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = sPixel.Interpolate(c4, c1, 7, 1); e13 = sPixel.Interpolate(c4, c1, 7, 1); e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c7, c6, 5, 2, 1); e32 = sPixel.Interpolate(c4, c7, c8, 5, 2, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); } break; case 29: { e00 = sPixel.Interpolate(c4, c1, 5, 3); e01 = sPixel.Interpolate(c4, c1, 5, 3); e02 = sPixel.Interpolate(c4, c1, 5, 3); e03 = sPixel.Interpolate(c4, c1, 5, 3); e10 = sPixel.Interpolate(c4, c1, 7, 1); e11 = sPixel.Interpolate(c4, c1, 7, 1); e12 = sPixel.Interpolate(c4, c1, 7, 1); e13 = sPixel.Interpolate(c4, c1, 7, 1); e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c7, c6, 5, 2, 1); e32 = sPixel.Interpolate(c4, c7, c8, 5, 2, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); } break; case 30: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = c4; e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c7, c6, 5, 2, 1); e32 = sPixel.Interpolate(c4, c7, c8, 5, 2, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); if (c1.IsNotLike(c5)) { e02 = c4; e03 = c4; e13 = c4; } else { e02 = sPixel.Interpolate(c1, c4, 1, 1); e03 = sPixel.Interpolate(c1, c5, 1, 1); e13 = sPixel.Interpolate(c4, c5, 1, 1); } } break; case 40: case 44: case 168: case 172: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c1, c0, 5, 2, 1); e02 = sPixel.Interpolate(c4, c1, c5, 5, 2, 1); e03 = sPixel.Interpolate(c4, c1, c5, 2, 1, 1); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = sPixel.Interpolate(c4, c1, c5, 6, 1, 1); e13 = sPixel.Interpolate(c4, c5, c1, 5, 2, 1); e20 = sPixel.Interpolate(c4, c7, 7, 1); e21 = sPixel.Interpolate(c4, c7, 7, 1); e22 = sPixel.Interpolate(c4, c5, c7, 6, 1, 1); e23 = sPixel.Interpolate(c4, c5, c7, 5, 2, 1); e30 = sPixel.Interpolate(c4, c7, 5, 3); e31 = sPixel.Interpolate(c4, c7, 5, 3); e32 = sPixel.Interpolate(c4, c7, c5, 5, 2, 1); e33 = sPixel.Interpolate(c4, c5, c7, 2, 1, 1); } break; case 41: case 45: case 169: case 173: { e00 = sPixel.Interpolate(c4, c1, 5, 3); e01 = sPixel.Interpolate(c4, c1, 5, 3); e02 = sPixel.Interpolate(c4, c1, c5, 5, 2, 1); e03 = sPixel.Interpolate(c4, c1, c5, 2, 1, 1); e10 = sPixel.Interpolate(c4, c1, 7, 1); e11 = sPixel.Interpolate(c4, c1, 7, 1); e12 = sPixel.Interpolate(c4, c1, c5, 6, 1, 1); e13 = sPixel.Interpolate(c4, c5, c1, 5, 2, 1); e20 = sPixel.Interpolate(c4, c7, 7, 1); e21 = sPixel.Interpolate(c4, c7, 7, 1); e22 = sPixel.Interpolate(c4, c5, c7, 6, 1, 1); e23 = sPixel.Interpolate(c4, c5, c7, 5, 2, 1); e30 = sPixel.Interpolate(c4, c7, 5, 3); e31 = sPixel.Interpolate(c4, c7, 5, 3); e32 = sPixel.Interpolate(c4, c7, c5, 5, 2, 1); e33 = sPixel.Interpolate(c4, c5, c7, 2, 1, 1); } break; case 42: case 170: { e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c5, c2, 5, 2, 1); e21 = sPixel.Interpolate(c4, c7, 7, 1); e22 = sPixel.Interpolate(c4, c5, c7, 6, 1, 1); e23 = sPixel.Interpolate(c4, c5, c7, 5, 2, 1); e31 = sPixel.Interpolate(c4, c7, 5, 3); e32 = sPixel.Interpolate(c4, c7, c5, 5, 2, 1); e33 = sPixel.Interpolate(c4, c5, c7, 2, 1, 1); if (c1.IsNotLike(c3)) { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e20 = sPixel.Interpolate(c4, c7, 7, 1); e30 = sPixel.Interpolate(c4, c7, 5, 3); } else { e00 = sPixel.Interpolate(c1, c3, 1, 1); e01 = sPixel.Interpolate(c1, c3, c4, 2, 1, 1); e10 = sPixel.Interpolate(c3, c1, 5, 3); e11 = sPixel.Interpolate(c4, c1, c3, 6, 1, 1); e20 = sPixel.Interpolate(c3, c4, 3, 1); e30 = sPixel.Interpolate(c4, c3, 3, 1); } } break; case 43: case 171: { e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c5, c2, 5, 2, 1); e21 = sPixel.Interpolate(c4, c7, 7, 1); e22 = sPixel.Interpolate(c4, c5, c7, 6, 1, 1); e23 = sPixel.Interpolate(c4, c5, c7, 5, 2, 1); e31 = sPixel.Interpolate(c4, c7, 5, 3); e32 = sPixel.Interpolate(c4, c7, c5, 5, 2, 1); e33 = sPixel.Interpolate(c4, c5, c7, 2, 1, 1); if (c1.IsNotLike(c3)) { e00 = c4; e01 = c4; e10 = c4; e11 = c4; e20 = sPixel.Interpolate(c4, c7, 7, 1); e30 = sPixel.Interpolate(c4, c7, 5, 3); } else { e00 = sPixel.Interpolate(c1, c3, 1, 1); e01 = sPixel.Interpolate(c1, c3, c4, 2, 1, 1); e10 = sPixel.Interpolate(c3, c1, 5, 3); e11 = sPixel.Interpolate(c4, c1, c3, 6, 1, 1); e20 = sPixel.Interpolate(c3, c4, 3, 1); e30 = sPixel.Interpolate(c4, c3, 3, 1); } } break; case 46: case 174: { e02 = sPixel.Interpolate(c4, c5, 7, 1); e03 = sPixel.Interpolate(c4, c5, 5, 3); e12 = sPixel.Interpolate(c4, c5, 7, 1); e13 = sPixel.Interpolate(c4, c5, 5, 3); e20 = sPixel.Interpolate(c4, c7, 7, 1); e21 = sPixel.Interpolate(c4, c7, 7, 1); e22 = sPixel.Interpolate(c4, c5, c7, 6, 1, 1); e23 = sPixel.Interpolate(c4, c5, c7, 5, 2, 1); e30 = sPixel.Interpolate(c4, c7, 5, 3); e31 = sPixel.Interpolate(c4, c7, 5, 3); e32 = sPixel.Interpolate(c4, c7, c5, 5, 2, 1); e33 = sPixel.Interpolate(c4, c5, c7, 2, 1, 1); if (c1.IsNotLike(c3)) { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); } else { e00 = sPixel.Interpolate(c4, c1, c3, 2, 1, 1); e01 = sPixel.Interpolate(c4, c1, 3, 1); e10 = sPixel.Interpolate(c4, c3, 3, 1); e11 = c4; } } break; case 47: case 175: { e01 = c4; e02 = sPixel.Interpolate(c4, c5, 7, 1); e03 = sPixel.Interpolate(c4, c5, 5, 3); e10 = c4; e11 = c4; e12 = sPixel.Interpolate(c4, c5, 7, 1); e13 = sPixel.Interpolate(c4, c5, 5, 3); e20 = sPixel.Interpolate(c4, c7, 7, 1); e21 = sPixel.Interpolate(c4, c7, 7, 1); e22 = sPixel.Interpolate(c4, c5, c7, 6, 1, 1); e23 = sPixel.Interpolate(c4, c5, c7, 5, 2, 1); e30 = sPixel.Interpolate(c4, c7, 5, 3); e31 = sPixel.Interpolate(c4, c7, 5, 3); e32 = sPixel.Interpolate(c4, c7, c5, 5, 2, 1); e33 = sPixel.Interpolate(c4, c5, c7, 2, 1, 1); e00 = (c1.IsNotLike(c3)) ? (c4) : (sPixel.Interpolate(c4, c1, c3, 2, 1, 1)); } break; case 56: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c1, c0, 5, 2, 1); e02 = sPixel.Interpolate(c4, c1, c2, 5, 2, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); e20 = sPixel.Interpolate(c4, c7, 7, 1); e21 = sPixel.Interpolate(c4, c7, 7, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e30 = sPixel.Interpolate(c4, c7, 5, 3); e31 = sPixel.Interpolate(c4, c7, 5, 3); e32 = sPixel.Interpolate(c4, c7, c8, 5, 2, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); } break; case 57: { e00 = sPixel.Interpolate(c4, c1, 5, 3); e01 = sPixel.Interpolate(c4, c1, 5, 3); e02 = sPixel.Interpolate(c4, c1, c2, 5, 2, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e10 = sPixel.Interpolate(c4, c1, 7, 1); e11 = sPixel.Interpolate(c4, c1, 7, 1); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); e20 = sPixel.Interpolate(c4, c7, 7, 1); e21 = sPixel.Interpolate(c4, c7, 7, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e30 = sPixel.Interpolate(c4, c7, 5, 3); e31 = sPixel.Interpolate(c4, c7, 5, 3); e32 = sPixel.Interpolate(c4, c7, c8, 5, 2, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); } break; case 58: { e20 = sPixel.Interpolate(c4, c7, 7, 1); e21 = sPixel.Interpolate(c4, c7, 7, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e30 = sPixel.Interpolate(c4, c7, 5, 3); e31 = sPixel.Interpolate(c4, c7, 5, 3); e32 = sPixel.Interpolate(c4, c7, c8, 5, 2, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); if (c1.IsNotLike(c3)) { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); } else { e00 = sPixel.Interpolate(c4, c1, c3, 2, 1, 1); e01 = sPixel.Interpolate(c4, c1, 3, 1); e10 = sPixel.Interpolate(c4, c3, 3, 1); e11 = c4; } if (c1.IsNotLike(c5)) { e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); } else { e02 = sPixel.Interpolate(c4, c1, 3, 1); e03 = sPixel.Interpolate(c4, c1, c5, 2, 1, 1); e12 = c4; e13 = sPixel.Interpolate(c4, c5, 3, 1); } } break; case 59: { e11 = c4; e20 = sPixel.Interpolate(c4, c7, 7, 1); e21 = sPixel.Interpolate(c4, c7, 7, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e30 = sPixel.Interpolate(c4, c7, 5, 3); e31 = sPixel.Interpolate(c4, c7, 5, 3); e32 = sPixel.Interpolate(c4, c7, c8, 5, 2, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); if (c1.IsNotLike(c3)) { e00 = c4; e01 = c4; e10 = c4; } else { e00 = sPixel.Interpolate(c1, c3, 1, 1); e01 = sPixel.Interpolate(c1, c4, 1, 1); e10 = sPixel.Interpolate(c3, c4, 1, 1); } if (c1.IsNotLike(c5)) { e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); } else { e02 = sPixel.Interpolate(c4, c1, 3, 1); e03 = sPixel.Interpolate(c4, c1, c5, 2, 1, 1); e12 = c4; e13 = sPixel.Interpolate(c4, c5, 3, 1); } } break; case 60: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c1, c0, 5, 2, 1); e02 = sPixel.Interpolate(c4, c1, 5, 3); e03 = sPixel.Interpolate(c4, c1, 5, 3); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = sPixel.Interpolate(c4, c1, 7, 1); e13 = sPixel.Interpolate(c4, c1, 7, 1); e20 = sPixel.Interpolate(c4, c7, 7, 1); e21 = sPixel.Interpolate(c4, c7, 7, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e30 = sPixel.Interpolate(c4, c7, 5, 3); e31 = sPixel.Interpolate(c4, c7, 5, 3); e32 = sPixel.Interpolate(c4, c7, c8, 5, 2, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); } break; case 61: { e00 = sPixel.Interpolate(c4, c1, 5, 3); e01 = sPixel.Interpolate(c4, c1, 5, 3); e02 = sPixel.Interpolate(c4, c1, 5, 3); e03 = sPixel.Interpolate(c4, c1, 5, 3); e10 = sPixel.Interpolate(c4, c1, 7, 1); e11 = sPixel.Interpolate(c4, c1, 7, 1); e12 = sPixel.Interpolate(c4, c1, 7, 1); e13 = sPixel.Interpolate(c4, c1, 7, 1); e20 = sPixel.Interpolate(c4, c7, 7, 1); e21 = sPixel.Interpolate(c4, c7, 7, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e30 = sPixel.Interpolate(c4, c7, 5, 3); e31 = sPixel.Interpolate(c4, c7, 5, 3); e32 = sPixel.Interpolate(c4, c7, c8, 5, 2, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); } break; case 62: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = c4; e20 = sPixel.Interpolate(c4, c7, 7, 1); e21 = sPixel.Interpolate(c4, c7, 7, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e30 = sPixel.Interpolate(c4, c7, 5, 3); e31 = sPixel.Interpolate(c4, c7, 5, 3); e32 = sPixel.Interpolate(c4, c7, c8, 5, 2, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); if (c1.IsNotLike(c5)) { e02 = c4; e03 = c4; e13 = c4; } else { e02 = sPixel.Interpolate(c1, c4, 1, 1); e03 = sPixel.Interpolate(c1, c5, 1, 1); e13 = sPixel.Interpolate(c4, c5, 1, 1); } } break; case 63: { e01 = c4; e10 = c4; e11 = c4; e12 = c4; e20 = sPixel.Interpolate(c4, c7, 7, 1); e21 = sPixel.Interpolate(c4, c7, 7, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e30 = sPixel.Interpolate(c4, c7, 5, 3); e31 = sPixel.Interpolate(c4, c7, 5, 3); e32 = sPixel.Interpolate(c4, c7, c8, 5, 2, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); e00 = (c1.IsNotLike(c3)) ? (c4) : (sPixel.Interpolate(c4, c1, c3, 2, 1, 1)); if (c1.IsNotLike(c5)) { e02 = c4; e03 = c4; e13 = c4; } else { e02 = sPixel.Interpolate(c1, c4, 1, 1); e03 = sPixel.Interpolate(c1, c5, 1, 1); e13 = sPixel.Interpolate(c4, c5, 1, 1); } } break; case 64: case 65: case 68: case 69: { e00 = sPixel.Interpolate(c4, c1, c3, 2, 1, 1); e01 = sPixel.Interpolate(c4, c1, c3, 5, 2, 1); e02 = sPixel.Interpolate(c4, c1, c5, 5, 2, 1); e03 = sPixel.Interpolate(c4, c1, c5, 2, 1, 1); e10 = sPixel.Interpolate(c4, c3, c1, 5, 2, 1); e11 = sPixel.Interpolate(c4, c1, c3, 6, 1, 1); e12 = sPixel.Interpolate(c4, c1, c5, 6, 1, 1); e13 = sPixel.Interpolate(c4, c5, c1, 5, 2, 1); e20 = sPixel.Interpolate(c4, c3, c6, 5, 2, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c5, c8, 5, 2, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); } break; case 66: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e10 = sPixel.Interpolate(c4, c3, c0, 5, 2, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c5, c2, 5, 2, 1); e20 = sPixel.Interpolate(c4, c3, c6, 5, 2, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c5, c8, 5, 2, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); } break; case 67: { e00 = sPixel.Interpolate(c4, c3, 5, 3); e01 = sPixel.Interpolate(c4, c3, 7, 1); e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e10 = sPixel.Interpolate(c4, c3, 5, 3); e11 = sPixel.Interpolate(c4, c3, 7, 1); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c5, c2, 5, 2, 1); e20 = sPixel.Interpolate(c4, c3, c6, 5, 2, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c5, c8, 5, 2, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); } break; case 70: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e02 = sPixel.Interpolate(c4, c5, 7, 1); e03 = sPixel.Interpolate(c4, c5, 5, 3); e10 = sPixel.Interpolate(c4, c3, c0, 5, 2, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = sPixel.Interpolate(c4, c5, 7, 1); e13 = sPixel.Interpolate(c4, c5, 5, 3); e20 = sPixel.Interpolate(c4, c3, c6, 5, 2, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c5, c8, 5, 2, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); } break; case 71: { e00 = sPixel.Interpolate(c4, c3, 5, 3); e01 = sPixel.Interpolate(c4, c3, 7, 1); e02 = sPixel.Interpolate(c4, c5, 7, 1); e03 = sPixel.Interpolate(c4, c5, 5, 3); e10 = sPixel.Interpolate(c4, c3, 5, 3); e11 = sPixel.Interpolate(c4, c3, 7, 1); e12 = sPixel.Interpolate(c4, c5, 7, 1); e13 = sPixel.Interpolate(c4, c5, 5, 3); e20 = sPixel.Interpolate(c4, c3, c6, 5, 2, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c5, c8, 5, 2, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); } break; case 72: case 76: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c1, c0, 5, 2, 1); e02 = sPixel.Interpolate(c4, c1, c5, 5, 2, 1); e03 = sPixel.Interpolate(c4, c1, c5, 2, 1, 1); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = sPixel.Interpolate(c4, c1, c5, 6, 1, 1); e13 = sPixel.Interpolate(c4, c5, c1, 5, 2, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c5, c8, 5, 2, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); if (c7.IsNotLike(c3)) { e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); } else { e20 = sPixel.Interpolate(c3, c4, 1, 1); e21 = c4; e30 = sPixel.Interpolate(c3, c7, 1, 1); e31 = sPixel.Interpolate(c4, c7, 1, 1); } } break; case 73: case 77: { e01 = sPixel.Interpolate(c4, c1, 5, 3); e02 = sPixel.Interpolate(c4, c1, c5, 5, 2, 1); e03 = sPixel.Interpolate(c4, c1, c5, 2, 1, 1); e11 = sPixel.Interpolate(c4, c1, 7, 1); e12 = sPixel.Interpolate(c4, c1, c5, 6, 1, 1); e13 = sPixel.Interpolate(c4, c5, c1, 5, 2, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c5, c8, 5, 2, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); if (c7.IsNotLike(c3)) { e00 = sPixel.Interpolate(c4, c1, 5, 3); e10 = sPixel.Interpolate(c4, c1, 7, 1); e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); } else { e00 = sPixel.Interpolate(c4, c3, 3, 1); e10 = sPixel.Interpolate(c3, c4, 3, 1); e20 = sPixel.Interpolate(c3, c7, 5, 3); e21 = sPixel.Interpolate(c4, c3, c7, 6, 1, 1); e30 = sPixel.Interpolate(c3, c7, 1, 1); e31 = sPixel.Interpolate(c7, c3, c4, 2, 1, 1); } } break; case 74: case 107: { e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e11 = c4; e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c5, c2, 5, 2, 1); e21 = c4; e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c5, c8, 5, 2, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); if (c7.IsNotLike(c3)) { e20 = c4; e30 = c4; e31 = c4; } else { e20 = sPixel.Interpolate(c3, c4, 1, 1); e30 = sPixel.Interpolate(c3, c7, 1, 1); e31 = sPixel.Interpolate(c4, c7, 1, 1); } if (c1.IsNotLike(c3)) { e00 = c4; e01 = c4; e10 = c4; } else { e00 = sPixel.Interpolate(c1, c3, 1, 1); e01 = sPixel.Interpolate(c1, c4, 1, 1); e10 = sPixel.Interpolate(c3, c4, 1, 1); } } break; case 75: { e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e11 = c4; e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c5, c2, 5, 2, 1); e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c5, c8, 5, 2, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); if (c1.IsNotLike(c3)) { e00 = c4; e01 = c4; e10 = c4; } else { e00 = sPixel.Interpolate(c1, c3, 1, 1); e01 = sPixel.Interpolate(c1, c4, 1, 1); e10 = sPixel.Interpolate(c3, c4, 1, 1); } } break; case 78: { e02 = sPixel.Interpolate(c4, c5, 7, 1); e03 = sPixel.Interpolate(c4, c5, 5, 3); e12 = sPixel.Interpolate(c4, c5, 7, 1); e13 = sPixel.Interpolate(c4, c5, 5, 3); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c5, c8, 5, 2, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); if (c7.IsNotLike(c3)) { e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); } else { e20 = sPixel.Interpolate(c4, c3, 3, 1); e21 = c4; e30 = sPixel.Interpolate(c4, c3, c7, 2, 1, 1); e31 = sPixel.Interpolate(c4, c7, 3, 1); } if (c1.IsNotLike(c3)) { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); } else { e00 = sPixel.Interpolate(c4, c1, c3, 2, 1, 1); e01 = sPixel.Interpolate(c4, c1, 3, 1); e10 = sPixel.Interpolate(c4, c3, 3, 1); e11 = c4; } } break; case 79: { e02 = sPixel.Interpolate(c4, c5, 7, 1); e03 = sPixel.Interpolate(c4, c5, 5, 3); e11 = c4; e12 = sPixel.Interpolate(c4, c5, 7, 1); e13 = sPixel.Interpolate(c4, c5, 5, 3); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c5, c8, 5, 2, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); if (c7.IsNotLike(c3)) { e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); } else { e20 = sPixel.Interpolate(c4, c3, 3, 1); e21 = c4; e30 = sPixel.Interpolate(c4, c3, c7, 2, 1, 1); e31 = sPixel.Interpolate(c4, c7, 3, 1); } if (c1.IsNotLike(c3)) { e00 = c4; e01 = c4; e10 = c4; } else { e00 = sPixel.Interpolate(c1, c3, 1, 1); e01 = sPixel.Interpolate(c1, c4, 1, 1); e10 = sPixel.Interpolate(c3, c4, 1, 1); } } break; case 80: case 81: { e00 = sPixel.Interpolate(c4, c1, c3, 2, 1, 1); e01 = sPixel.Interpolate(c4, c1, c3, 5, 2, 1); e02 = sPixel.Interpolate(c4, c1, c2, 5, 2, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e10 = sPixel.Interpolate(c4, c3, c1, 5, 2, 1); e11 = sPixel.Interpolate(c4, c1, c3, 6, 1, 1); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); e20 = sPixel.Interpolate(c4, c3, c6, 5, 2, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); if (c7.IsNotLike(c5)) { e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); } else { e22 = c4; e23 = sPixel.Interpolate(c4, c5, 1, 1); e32 = sPixel.Interpolate(c4, c7, 1, 1); e33 = sPixel.Interpolate(c5, c7, 1, 1); } } break; case 82: case 214: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e10 = sPixel.Interpolate(c4, c3, c0, 5, 2, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = c4; e20 = sPixel.Interpolate(c4, c3, c6, 5, 2, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = c4; e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); if (c7.IsNotLike(c5)) { e23 = c4; e32 = c4; e33 = c4; } else { e23 = sPixel.Interpolate(c4, c5, 1, 1); e32 = sPixel.Interpolate(c4, c7, 1, 1); e33 = sPixel.Interpolate(c5, c7, 1, 1); } if (c1.IsNotLike(c5)) { e02 = c4; e03 = c4; e13 = c4; } else { e02 = sPixel.Interpolate(c1, c4, 1, 1); e03 = sPixel.Interpolate(c1, c5, 1, 1); e13 = sPixel.Interpolate(c4, c5, 1, 1); } } break; case 83: { e00 = sPixel.Interpolate(c4, c3, 5, 3); e01 = sPixel.Interpolate(c4, c3, 7, 1); e10 = sPixel.Interpolate(c4, c3, 5, 3); e11 = sPixel.Interpolate(c4, c3, 7, 1); e20 = sPixel.Interpolate(c4, c3, c6, 5, 2, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); if (c7.IsNotLike(c5)) { e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); } else { e22 = c4; e23 = sPixel.Interpolate(c4, c5, 3, 1); e32 = sPixel.Interpolate(c4, c7, 3, 1); e33 = sPixel.Interpolate(c4, c5, c7, 2, 1, 1); } if (c1.IsNotLike(c5)) { e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); } else { e02 = sPixel.Interpolate(c4, c1, 3, 1); e03 = sPixel.Interpolate(c4, c1, c5, 2, 1, 1); e12 = c4; e13 = sPixel.Interpolate(c4, c5, 3, 1); } } break; case 84: case 85: { e00 = sPixel.Interpolate(c4, c1, c3, 2, 1, 1); e01 = sPixel.Interpolate(c4, c1, c3, 5, 2, 1); e02 = sPixel.Interpolate(c4, c1, 5, 3); e10 = sPixel.Interpolate(c4, c3, c1, 5, 2, 1); e11 = sPixel.Interpolate(c4, c1, c3, 6, 1, 1); e12 = sPixel.Interpolate(c4, c1, 7, 1); e20 = sPixel.Interpolate(c4, c3, c6, 5, 2, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); if (c7.IsNotLike(c5)) { e03 = sPixel.Interpolate(c4, c1, 5, 3); e13 = sPixel.Interpolate(c4, c1, 7, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); } else { e03 = sPixel.Interpolate(c4, c5, 3, 1); e13 = sPixel.Interpolate(c5, c4, 3, 1); e22 = sPixel.Interpolate(c4, c5, c7, 6, 1, 1); e23 = sPixel.Interpolate(c5, c7, 5, 3); e32 = sPixel.Interpolate(c7, c4, c5, 2, 1, 1); e33 = sPixel.Interpolate(c5, c7, 1, 1); } } break; case 86: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e10 = sPixel.Interpolate(c4, c3, c0, 5, 2, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = c4; e20 = sPixel.Interpolate(c4, c3, c6, 5, 2, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); if (c1.IsNotLike(c5)) { e02 = c4; e03 = c4; e13 = c4; } else { e02 = sPixel.Interpolate(c1, c4, 1, 1); e03 = sPixel.Interpolate(c1, c5, 1, 1); e13 = sPixel.Interpolate(c4, c5, 1, 1); } } break; case 87: { e00 = sPixel.Interpolate(c4, c3, 5, 3); e01 = sPixel.Interpolate(c4, c3, 7, 1); e10 = sPixel.Interpolate(c4, c3, 5, 3); e11 = sPixel.Interpolate(c4, c3, 7, 1); e12 = c4; e20 = sPixel.Interpolate(c4, c3, c6, 5, 2, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); if (c7.IsNotLike(c5)) { e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); } else { e22 = c4; e23 = sPixel.Interpolate(c4, c5, 3, 1); e32 = sPixel.Interpolate(c4, c7, 3, 1); e33 = sPixel.Interpolate(c4, c5, c7, 2, 1, 1); } if (c1.IsNotLike(c5)) { e02 = c4; e03 = c4; e13 = c4; } else { e02 = sPixel.Interpolate(c1, c4, 1, 1); e03 = sPixel.Interpolate(c1, c5, 1, 1); e13 = sPixel.Interpolate(c4, c5, 1, 1); } } break; case 88: case 248: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c1, c0, 5, 2, 1); e02 = sPixel.Interpolate(c4, c1, c2, 5, 2, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); e21 = c4; e22 = c4; if (c7.IsNotLike(c3)) { e20 = c4; e30 = c4; e31 = c4; } else { e20 = sPixel.Interpolate(c3, c4, 1, 1); e30 = sPixel.Interpolate(c3, c7, 1, 1); e31 = sPixel.Interpolate(c4, c7, 1, 1); } if (c7.IsNotLike(c5)) { e23 = c4; e32 = c4; e33 = c4; } else { e23 = sPixel.Interpolate(c4, c5, 1, 1); e32 = sPixel.Interpolate(c4, c7, 1, 1); e33 = sPixel.Interpolate(c5, c7, 1, 1); } } break; case 89: { e00 = sPixel.Interpolate(c4, c1, 5, 3); e01 = sPixel.Interpolate(c4, c1, 5, 3); e02 = sPixel.Interpolate(c4, c1, c2, 5, 2, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e10 = sPixel.Interpolate(c4, c1, 7, 1); e11 = sPixel.Interpolate(c4, c1, 7, 1); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); if (c7.IsNotLike(c3)) { e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); } else { e20 = sPixel.Interpolate(c4, c3, 3, 1); e21 = c4; e30 = sPixel.Interpolate(c4, c3, c7, 2, 1, 1); e31 = sPixel.Interpolate(c4, c7, 3, 1); } if (c7.IsNotLike(c5)) { e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); } else { e22 = c4; e23 = sPixel.Interpolate(c4, c5, 3, 1); e32 = sPixel.Interpolate(c4, c7, 3, 1); e33 = sPixel.Interpolate(c4, c5, c7, 2, 1, 1); } } break; case 90: { if (c7.IsNotLike(c3)) { e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); } else { e20 = sPixel.Interpolate(c4, c3, 3, 1); e21 = c4; e30 = sPixel.Interpolate(c4, c3, c7, 2, 1, 1); e31 = sPixel.Interpolate(c4, c7, 3, 1); } if (c7.IsNotLike(c5)) { e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); } else { e22 = c4; e23 = sPixel.Interpolate(c4, c5, 3, 1); e32 = sPixel.Interpolate(c4, c7, 3, 1); e33 = sPixel.Interpolate(c4, c5, c7, 2, 1, 1); } if (c1.IsNotLike(c3)) { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); } else { e00 = sPixel.Interpolate(c4, c1, c3, 2, 1, 1); e01 = sPixel.Interpolate(c4, c1, 3, 1); e10 = sPixel.Interpolate(c4, c3, 3, 1); e11 = c4; } if (c1.IsNotLike(c5)) { e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); } else { e02 = sPixel.Interpolate(c4, c1, 3, 1); e03 = sPixel.Interpolate(c4, c1, c5, 2, 1, 1); e12 = c4; e13 = sPixel.Interpolate(c4, c5, 3, 1); } } break; case 91: { e11 = c4; if (c7.IsNotLike(c3)) { e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); } else { e20 = sPixel.Interpolate(c4, c3, 3, 1); e21 = c4; e30 = sPixel.Interpolate(c4, c3, c7, 2, 1, 1); e31 = sPixel.Interpolate(c4, c7, 3, 1); } if (c7.IsNotLike(c5)) { e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); } else { e22 = c4; e23 = sPixel.Interpolate(c4, c5, 3, 1); e32 = sPixel.Interpolate(c4, c7, 3, 1); e33 = sPixel.Interpolate(c4, c5, c7, 2, 1, 1); } if (c1.IsNotLike(c3)) { e00 = c4; e01 = c4; e10 = c4; } else { e00 = sPixel.Interpolate(c1, c3, 1, 1); e01 = sPixel.Interpolate(c1, c4, 1, 1); e10 = sPixel.Interpolate(c3, c4, 1, 1); } if (c1.IsNotLike(c5)) { e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); } else { e02 = sPixel.Interpolate(c4, c1, 3, 1); e03 = sPixel.Interpolate(c4, c1, c5, 2, 1, 1); e12 = c4; e13 = sPixel.Interpolate(c4, c5, 3, 1); } } break; case 92: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c1, c0, 5, 2, 1); e02 = sPixel.Interpolate(c4, c1, 5, 3); e03 = sPixel.Interpolate(c4, c1, 5, 3); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = sPixel.Interpolate(c4, c1, 7, 1); e13 = sPixel.Interpolate(c4, c1, 7, 1); if (c7.IsNotLike(c3)) { e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); } else { e20 = sPixel.Interpolate(c4, c3, 3, 1); e21 = c4; e30 = sPixel.Interpolate(c4, c3, c7, 2, 1, 1); e31 = sPixel.Interpolate(c4, c7, 3, 1); } if (c7.IsNotLike(c5)) { e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); } else { e22 = c4; e23 = sPixel.Interpolate(c4, c5, 3, 1); e32 = sPixel.Interpolate(c4, c7, 3, 1); e33 = sPixel.Interpolate(c4, c5, c7, 2, 1, 1); } } break; case 93: { e00 = sPixel.Interpolate(c4, c1, 5, 3); e01 = sPixel.Interpolate(c4, c1, 5, 3); e02 = sPixel.Interpolate(c4, c1, 5, 3); e03 = sPixel.Interpolate(c4, c1, 5, 3); e10 = sPixel.Interpolate(c4, c1, 7, 1); e11 = sPixel.Interpolate(c4, c1, 7, 1); e12 = sPixel.Interpolate(c4, c1, 7, 1); e13 = sPixel.Interpolate(c4, c1, 7, 1); if (c7.IsNotLike(c3)) { e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); } else { e20 = sPixel.Interpolate(c4, c3, 3, 1); e21 = c4; e30 = sPixel.Interpolate(c4, c3, c7, 2, 1, 1); e31 = sPixel.Interpolate(c4, c7, 3, 1); } if (c7.IsNotLike(c5)) { e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); } else { e22 = c4; e23 = sPixel.Interpolate(c4, c5, 3, 1); e32 = sPixel.Interpolate(c4, c7, 3, 1); e33 = sPixel.Interpolate(c4, c5, c7, 2, 1, 1); } } break; case 94: { e12 = c4; if (c7.IsNotLike(c3)) { e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); } else { e20 = sPixel.Interpolate(c4, c3, 3, 1); e21 = c4; e30 = sPixel.Interpolate(c4, c3, c7, 2, 1, 1); e31 = sPixel.Interpolate(c4, c7, 3, 1); } if (c7.IsNotLike(c5)) { e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); } else { e22 = c4; e23 = sPixel.Interpolate(c4, c5, 3, 1); e32 = sPixel.Interpolate(c4, c7, 3, 1); e33 = sPixel.Interpolate(c4, c5, c7, 2, 1, 1); } if (c1.IsNotLike(c3)) { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); } else { e00 = sPixel.Interpolate(c4, c1, c3, 2, 1, 1); e01 = sPixel.Interpolate(c4, c1, 3, 1); e10 = sPixel.Interpolate(c4, c3, 3, 1); e11 = c4; } if (c1.IsNotLike(c5)) { e02 = c4; e03 = c4; e13 = c4; } else { e02 = sPixel.Interpolate(c1, c4, 1, 1); e03 = sPixel.Interpolate(c1, c5, 1, 1); e13 = sPixel.Interpolate(c4, c5, 1, 1); } } break; case 95: { e11 = c4; e12 = c4; e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); if (c1.IsNotLike(c3)) { e00 = c4; e01 = c4; e10 = c4; } else { e00 = sPixel.Interpolate(c1, c3, 1, 1); e01 = sPixel.Interpolate(c1, c4, 1, 1); e10 = sPixel.Interpolate(c3, c4, 1, 1); } if (c1.IsNotLike(c5)) { e02 = c4; e03 = c4; e13 = c4; } else { e02 = sPixel.Interpolate(c1, c4, 1, 1); e03 = sPixel.Interpolate(c1, c5, 1, 1); e13 = sPixel.Interpolate(c4, c5, 1, 1); } } break; case 96: case 97: case 100: case 101: { e00 = sPixel.Interpolate(c4, c1, c3, 2, 1, 1); e01 = sPixel.Interpolate(c4, c1, c3, 5, 2, 1); e02 = sPixel.Interpolate(c4, c1, c5, 5, 2, 1); e03 = sPixel.Interpolate(c4, c1, c5, 2, 1, 1); e10 = sPixel.Interpolate(c4, c3, c1, 5, 2, 1); e11 = sPixel.Interpolate(c4, c1, c3, 6, 1, 1); e12 = sPixel.Interpolate(c4, c1, c5, 6, 1, 1); e13 = sPixel.Interpolate(c4, c5, c1, 5, 2, 1); e20 = sPixel.Interpolate(c4, c3, 5, 3); e21 = sPixel.Interpolate(c4, c3, 7, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c5, c8, 5, 2, 1); e30 = sPixel.Interpolate(c4, c3, 5, 3); e31 = sPixel.Interpolate(c4, c3, 7, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); } break; case 98: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e10 = sPixel.Interpolate(c4, c3, c0, 5, 2, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c5, c2, 5, 2, 1); e20 = sPixel.Interpolate(c4, c3, 5, 3); e21 = sPixel.Interpolate(c4, c3, 7, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c5, c8, 5, 2, 1); e30 = sPixel.Interpolate(c4, c3, 5, 3); e31 = sPixel.Interpolate(c4, c3, 7, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); } break; case 99: { e00 = sPixel.Interpolate(c4, c3, 5, 3); e01 = sPixel.Interpolate(c4, c3, 7, 1); e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e10 = sPixel.Interpolate(c4, c3, 5, 3); e11 = sPixel.Interpolate(c4, c3, 7, 1); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c5, c2, 5, 2, 1); e20 = sPixel.Interpolate(c4, c3, 5, 3); e21 = sPixel.Interpolate(c4, c3, 7, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c5, c8, 5, 2, 1); e30 = sPixel.Interpolate(c4, c3, 5, 3); e31 = sPixel.Interpolate(c4, c3, 7, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); } break; case 102: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e02 = sPixel.Interpolate(c4, c5, 7, 1); e03 = sPixel.Interpolate(c4, c5, 5, 3); e10 = sPixel.Interpolate(c4, c3, c0, 5, 2, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = sPixel.Interpolate(c4, c5, 7, 1); e13 = sPixel.Interpolate(c4, c5, 5, 3); e20 = sPixel.Interpolate(c4, c3, 5, 3); e21 = sPixel.Interpolate(c4, c3, 7, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c5, c8, 5, 2, 1); e30 = sPixel.Interpolate(c4, c3, 5, 3); e31 = sPixel.Interpolate(c4, c3, 7, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); } break; case 103: { e00 = sPixel.Interpolate(c4, c3, 5, 3); e01 = sPixel.Interpolate(c4, c3, 7, 1); e02 = sPixel.Interpolate(c4, c5, 7, 1); e03 = sPixel.Interpolate(c4, c5, 5, 3); e10 = sPixel.Interpolate(c4, c3, 5, 3); e11 = sPixel.Interpolate(c4, c3, 7, 1); e12 = sPixel.Interpolate(c4, c5, 7, 1); e13 = sPixel.Interpolate(c4, c5, 5, 3); e20 = sPixel.Interpolate(c4, c3, 5, 3); e21 = sPixel.Interpolate(c4, c3, 7, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c5, c8, 5, 2, 1); e30 = sPixel.Interpolate(c4, c3, 5, 3); e31 = sPixel.Interpolate(c4, c3, 7, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); } break; case 104: case 108: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c1, c0, 5, 2, 1); e02 = sPixel.Interpolate(c4, c1, c5, 5, 2, 1); e03 = sPixel.Interpolate(c4, c1, c5, 2, 1, 1); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = sPixel.Interpolate(c4, c1, c5, 6, 1, 1); e13 = sPixel.Interpolate(c4, c5, c1, 5, 2, 1); e21 = c4; e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c5, c8, 5, 2, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); if (c7.IsNotLike(c3)) { e20 = c4; e30 = c4; e31 = c4; } else { e20 = sPixel.Interpolate(c3, c4, 1, 1); e30 = sPixel.Interpolate(c3, c7, 1, 1); e31 = sPixel.Interpolate(c4, c7, 1, 1); } } break; case 105: case 109: { e01 = sPixel.Interpolate(c4, c1, 5, 3); e02 = sPixel.Interpolate(c4, c1, c5, 5, 2, 1); e03 = sPixel.Interpolate(c4, c1, c5, 2, 1, 1); e11 = sPixel.Interpolate(c4, c1, 7, 1); e12 = sPixel.Interpolate(c4, c1, c5, 6, 1, 1); e13 = sPixel.Interpolate(c4, c5, c1, 5, 2, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c5, c8, 5, 2, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); if (c7.IsNotLike(c3)) { e00 = sPixel.Interpolate(c4, c1, 5, 3); e10 = sPixel.Interpolate(c4, c1, 7, 1); e20 = c4; e21 = c4; e30 = c4; e31 = c4; } else { e00 = sPixel.Interpolate(c4, c3, 3, 1); e10 = sPixel.Interpolate(c3, c4, 3, 1); e20 = sPixel.Interpolate(c3, c7, 5, 3); e21 = sPixel.Interpolate(c4, c3, c7, 6, 1, 1); e30 = sPixel.Interpolate(c3, c7, 1, 1); e31 = sPixel.Interpolate(c7, c3, c4, 2, 1, 1); } } break; case 106: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c5, c2, 5, 2, 1); e21 = c4; e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c5, c8, 5, 2, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); if (c7.IsNotLike(c3)) { e20 = c4; e30 = c4; e31 = c4; } else { e20 = sPixel.Interpolate(c3, c4, 1, 1); e30 = sPixel.Interpolate(c3, c7, 1, 1); e31 = sPixel.Interpolate(c4, c7, 1, 1); } } break; case 110: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e02 = sPixel.Interpolate(c4, c5, 7, 1); e03 = sPixel.Interpolate(c4, c5, 5, 3); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = sPixel.Interpolate(c4, c5, 7, 1); e13 = sPixel.Interpolate(c4, c5, 5, 3); e21 = c4; e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c5, c8, 5, 2, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); if (c7.IsNotLike(c3)) { e20 = c4; e30 = c4; e31 = c4; } else { e20 = sPixel.Interpolate(c3, c4, 1, 1); e30 = sPixel.Interpolate(c3, c7, 1, 1); e31 = sPixel.Interpolate(c4, c7, 1, 1); } } break; case 111: { e01 = c4; e02 = sPixel.Interpolate(c4, c5, 7, 1); e03 = sPixel.Interpolate(c4, c5, 5, 3); e10 = c4; e11 = c4; e12 = sPixel.Interpolate(c4, c5, 7, 1); e13 = sPixel.Interpolate(c4, c5, 5, 3); e21 = c4; e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c5, c8, 5, 2, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); if (c7.IsNotLike(c3)) { e20 = c4; e30 = c4; e31 = c4; } else { e20 = sPixel.Interpolate(c3, c4, 1, 1); e30 = sPixel.Interpolate(c3, c7, 1, 1); e31 = sPixel.Interpolate(c4, c7, 1, 1); } e00 = (c1.IsNotLike(c3)) ? (c4) : (sPixel.Interpolate(c4, c1, c3, 2, 1, 1)); } break; case 112: case 113: { e00 = sPixel.Interpolate(c4, c1, c3, 2, 1, 1); e01 = sPixel.Interpolate(c4, c1, c3, 5, 2, 1); e02 = sPixel.Interpolate(c4, c1, c2, 5, 2, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e10 = sPixel.Interpolate(c4, c3, c1, 5, 2, 1); e11 = sPixel.Interpolate(c4, c1, c3, 6, 1, 1); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); e20 = sPixel.Interpolate(c4, c3, 5, 3); e21 = sPixel.Interpolate(c4, c3, 7, 1); if (c7.IsNotLike(c5)) { e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e30 = sPixel.Interpolate(c4, c3, 5, 3); e31 = sPixel.Interpolate(c4, c3, 7, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); } else { e22 = sPixel.Interpolate(c4, c5, c7, 6, 1, 1); e23 = sPixel.Interpolate(c5, c4, c7, 2, 1, 1); e30 = sPixel.Interpolate(c4, c7, 3, 1); e31 = sPixel.Interpolate(c7, c4, 3, 1); e32 = sPixel.Interpolate(c7, c5, 5, 3); e33 = sPixel.Interpolate(c5, c7, 1, 1); } } break; case 114: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e10 = sPixel.Interpolate(c4, c3, c0, 5, 2, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e20 = sPixel.Interpolate(c4, c3, 5, 3); e21 = sPixel.Interpolate(c4, c3, 7, 1); e30 = sPixel.Interpolate(c4, c3, 5, 3); e31 = sPixel.Interpolate(c4, c3, 7, 1); if (c7.IsNotLike(c5)) { e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); } else { e22 = c4; e23 = sPixel.Interpolate(c4, c5, 3, 1); e32 = sPixel.Interpolate(c4, c7, 3, 1); e33 = sPixel.Interpolate(c4, c5, c7, 2, 1, 1); } if (c1.IsNotLike(c5)) { e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); } else { e02 = sPixel.Interpolate(c4, c1, 3, 1); e03 = sPixel.Interpolate(c4, c1, c5, 2, 1, 1); e12 = c4; e13 = sPixel.Interpolate(c4, c5, 3, 1); } } break; case 115: { e00 = sPixel.Interpolate(c4, c3, 5, 3); e01 = sPixel.Interpolate(c4, c3, 7, 1); e10 = sPixel.Interpolate(c4, c3, 5, 3); e11 = sPixel.Interpolate(c4, c3, 7, 1); e20 = sPixel.Interpolate(c4, c3, 5, 3); e21 = sPixel.Interpolate(c4, c3, 7, 1); e30 = sPixel.Interpolate(c4, c3, 5, 3); e31 = sPixel.Interpolate(c4, c3, 7, 1); if (c7.IsNotLike(c5)) { e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); } else { e22 = c4; e23 = sPixel.Interpolate(c4, c5, 3, 1); e32 = sPixel.Interpolate(c4, c7, 3, 1); e33 = sPixel.Interpolate(c4, c5, c7, 2, 1, 1); } if (c1.IsNotLike(c5)) { e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); } else { e02 = sPixel.Interpolate(c4, c1, 3, 1); e03 = sPixel.Interpolate(c4, c1, c5, 2, 1, 1); e12 = c4; e13 = sPixel.Interpolate(c4, c5, 3, 1); } } break; case 116: case 117: { e00 = sPixel.Interpolate(c4, c1, c3, 2, 1, 1); e01 = sPixel.Interpolate(c4, c1, c3, 5, 2, 1); e02 = sPixel.Interpolate(c4, c1, 5, 3); e03 = sPixel.Interpolate(c4, c1, 5, 3); e10 = sPixel.Interpolate(c4, c3, c1, 5, 2, 1); e11 = sPixel.Interpolate(c4, c1, c3, 6, 1, 1); e12 = sPixel.Interpolate(c4, c1, 7, 1); e13 = sPixel.Interpolate(c4, c1, 7, 1); e20 = sPixel.Interpolate(c4, c3, 5, 3); e21 = sPixel.Interpolate(c4, c3, 7, 1); e30 = sPixel.Interpolate(c4, c3, 5, 3); e31 = sPixel.Interpolate(c4, c3, 7, 1); if (c7.IsNotLike(c5)) { e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); } else { e22 = c4; e23 = sPixel.Interpolate(c4, c5, 3, 1); e32 = sPixel.Interpolate(c4, c7, 3, 1); e33 = sPixel.Interpolate(c4, c5, c7, 2, 1, 1); } } break; case 118: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e10 = sPixel.Interpolate(c4, c3, c0, 5, 2, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = c4; e20 = sPixel.Interpolate(c4, c3, 5, 3); e21 = sPixel.Interpolate(c4, c3, 7, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e30 = sPixel.Interpolate(c4, c3, 5, 3); e31 = sPixel.Interpolate(c4, c3, 7, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); if (c1.IsNotLike(c5)) { e02 = c4; e03 = c4; e13 = c4; } else { e02 = sPixel.Interpolate(c1, c4, 1, 1); e03 = sPixel.Interpolate(c1, c5, 1, 1); e13 = sPixel.Interpolate(c4, c5, 1, 1); } } break; case 119: { e10 = sPixel.Interpolate(c4, c3, 5, 3); e11 = sPixel.Interpolate(c4, c3, 7, 1); e20 = sPixel.Interpolate(c4, c3, 5, 3); e21 = sPixel.Interpolate(c4, c3, 7, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e30 = sPixel.Interpolate(c4, c3, 5, 3); e31 = sPixel.Interpolate(c4, c3, 7, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); if (c1.IsNotLike(c5)) { e00 = sPixel.Interpolate(c4, c3, 5, 3); e01 = sPixel.Interpolate(c4, c3, 7, 1); e02 = c4; e03 = c4; e12 = c4; e13 = c4; } else { e00 = sPixel.Interpolate(c4, c1, 3, 1); e01 = sPixel.Interpolate(c1, c4, 3, 1); e02 = sPixel.Interpolate(c1, c5, 5, 3); e03 = sPixel.Interpolate(c1, c5, 1, 1); e12 = sPixel.Interpolate(c4, c1, c5, 6, 1, 1); e13 = sPixel.Interpolate(c5, c1, c4, 2, 1, 1); } } break; case 120: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c1, c0, 5, 2, 1); e02 = sPixel.Interpolate(c4, c1, c2, 5, 2, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); e21 = c4; e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); if (c7.IsNotLike(c3)) { e20 = c4; e30 = c4; e31 = c4; } else { e20 = sPixel.Interpolate(c3, c4, 1, 1); e30 = sPixel.Interpolate(c3, c7, 1, 1); e31 = sPixel.Interpolate(c4, c7, 1, 1); } } break; case 121: { e00 = sPixel.Interpolate(c4, c1, 5, 3); e01 = sPixel.Interpolate(c4, c1, 5, 3); e02 = sPixel.Interpolate(c4, c1, c2, 5, 2, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e10 = sPixel.Interpolate(c4, c1, 7, 1); e11 = sPixel.Interpolate(c4, c1, 7, 1); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); e21 = c4; if (c7.IsNotLike(c3)) { e20 = c4; e30 = c4; e31 = c4; } else { e20 = sPixel.Interpolate(c3, c4, 1, 1); e30 = sPixel.Interpolate(c3, c7, 1, 1); e31 = sPixel.Interpolate(c4, c7, 1, 1); } if (c7.IsNotLike(c5)) { e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); } else { e22 = c4; e23 = sPixel.Interpolate(c4, c5, 3, 1); e32 = sPixel.Interpolate(c4, c7, 3, 1); e33 = sPixel.Interpolate(c4, c5, c7, 2, 1, 1); } } break; case 122: { e21 = c4; if (c7.IsNotLike(c3)) { e20 = c4; e30 = c4; e31 = c4; } else { e20 = sPixel.Interpolate(c3, c4, 1, 1); e30 = sPixel.Interpolate(c3, c7, 1, 1); e31 = sPixel.Interpolate(c4, c7, 1, 1); } if (c7.IsNotLike(c5)) { e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); } else { e22 = c4; e23 = sPixel.Interpolate(c4, c5, 3, 1); e32 = sPixel.Interpolate(c4, c7, 3, 1); e33 = sPixel.Interpolate(c4, c5, c7, 2, 1, 1); } if (c1.IsNotLike(c3)) { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); } else { e00 = sPixel.Interpolate(c4, c1, c3, 2, 1, 1); e01 = sPixel.Interpolate(c4, c1, 3, 1); e10 = sPixel.Interpolate(c4, c3, 3, 1); e11 = c4; } if (c1.IsNotLike(c5)) { e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); } else { e02 = sPixel.Interpolate(c4, c1, 3, 1); e03 = sPixel.Interpolate(c4, c1, c5, 2, 1, 1); e12 = c4; e13 = sPixel.Interpolate(c4, c5, 3, 1); } } break; case 123: { e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e11 = c4; e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); e21 = c4; e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); if (c7.IsNotLike(c3)) { e20 = c4; e30 = c4; e31 = c4; } else { e20 = sPixel.Interpolate(c3, c4, 1, 1); e30 = sPixel.Interpolate(c3, c7, 1, 1); e31 = sPixel.Interpolate(c4, c7, 1, 1); } if (c1.IsNotLike(c3)) { e00 = c4; e01 = c4; e10 = c4; } else { e00 = sPixel.Interpolate(c1, c3, 1, 1); e01 = sPixel.Interpolate(c1, c4, 1, 1); e10 = sPixel.Interpolate(c3, c4, 1, 1); } } break; case 124: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c1, c0, 5, 2, 1); e02 = sPixel.Interpolate(c4, c1, 5, 3); e03 = sPixel.Interpolate(c4, c1, 5, 3); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = sPixel.Interpolate(c4, c1, 7, 1); e13 = sPixel.Interpolate(c4, c1, 7, 1); e21 = c4; e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); if (c7.IsNotLike(c3)) { e20 = c4; e30 = c4; e31 = c4; } else { e20 = sPixel.Interpolate(c3, c4, 1, 1); e30 = sPixel.Interpolate(c3, c7, 1, 1); e31 = sPixel.Interpolate(c4, c7, 1, 1); } } break; case 125: { e01 = sPixel.Interpolate(c4, c1, 5, 3); e02 = sPixel.Interpolate(c4, c1, 5, 3); e03 = sPixel.Interpolate(c4, c1, 5, 3); e11 = sPixel.Interpolate(c4, c1, 7, 1); e12 = sPixel.Interpolate(c4, c1, 7, 1); e13 = sPixel.Interpolate(c4, c1, 7, 1); e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); if (c7.IsNotLike(c3)) { e00 = sPixel.Interpolate(c4, c1, 5, 3); e10 = sPixel.Interpolate(c4, c1, 7, 1); e20 = c4; e21 = c4; e30 = c4; e31 = c4; } else { e00 = sPixel.Interpolate(c4, c3, 3, 1); e10 = sPixel.Interpolate(c3, c4, 3, 1); e20 = sPixel.Interpolate(c3, c7, 5, 3); e21 = sPixel.Interpolate(c4, c3, c7, 6, 1, 1); e30 = sPixel.Interpolate(c3, c7, 1, 1); e31 = sPixel.Interpolate(c7, c3, c4, 2, 1, 1); } } break; case 126: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = c4; e21 = c4; e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); if (c7.IsNotLike(c3)) { e20 = c4; e30 = c4; e31 = c4; } else { e20 = sPixel.Interpolate(c3, c4, 1, 1); e30 = sPixel.Interpolate(c3, c7, 1, 1); e31 = sPixel.Interpolate(c4, c7, 1, 1); } if (c1.IsNotLike(c5)) { e02 = c4; e03 = c4; e13 = c4; } else { e02 = sPixel.Interpolate(c1, c4, 1, 1); e03 = sPixel.Interpolate(c1, c5, 1, 1); e13 = sPixel.Interpolate(c4, c5, 1, 1); } } break; case 127: { e01 = c4; e10 = c4; e11 = c4; e12 = c4; e21 = c4; e22 = sPixel.Interpolate(c4, c8, 7, 1); e23 = sPixel.Interpolate(c4, c8, 3, 1); e32 = sPixel.Interpolate(c4, c8, 3, 1); e33 = sPixel.Interpolate(c4, c8, 5, 3); if (c7.IsNotLike(c3)) { e20 = c4; e30 = c4; e31 = c4; } else { e20 = sPixel.Interpolate(c3, c4, 1, 1); e30 = sPixel.Interpolate(c3, c7, 1, 1); e31 = sPixel.Interpolate(c4, c7, 1, 1); } e00 = (c1.IsNotLike(c3)) ? (c4) : (sPixel.Interpolate(c4, c1, c3, 2, 1, 1)); if (c1.IsNotLike(c5)) { e02 = c4; e03 = c4; e13 = c4; } else { e02 = sPixel.Interpolate(c1, c4, 1, 1); e03 = sPixel.Interpolate(c1, c5, 1, 1); e13 = sPixel.Interpolate(c4, c5, 1, 1); } } break; case 144: case 145: case 176: case 177: { e00 = sPixel.Interpolate(c4, c1, c3, 2, 1, 1); e01 = sPixel.Interpolate(c4, c1, c3, 5, 2, 1); e02 = sPixel.Interpolate(c4, c1, c2, 5, 2, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e10 = sPixel.Interpolate(c4, c3, c1, 5, 2, 1); e11 = sPixel.Interpolate(c4, c1, c3, 6, 1, 1); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); e20 = sPixel.Interpolate(c4, c3, c7, 5, 2, 1); e21 = sPixel.Interpolate(c4, c3, c7, 6, 1, 1); e22 = sPixel.Interpolate(c4, c7, 7, 1); e23 = sPixel.Interpolate(c4, c7, 7, 1); e30 = sPixel.Interpolate(c4, c3, c7, 2, 1, 1); e31 = sPixel.Interpolate(c4, c7, c3, 5, 2, 1); e32 = sPixel.Interpolate(c4, c7, 5, 3); e33 = sPixel.Interpolate(c4, c7, 5, 3); } break; case 146: case 178: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e10 = sPixel.Interpolate(c4, c3, c0, 5, 2, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e20 = sPixel.Interpolate(c4, c3, c7, 5, 2, 1); e21 = sPixel.Interpolate(c4, c3, c7, 6, 1, 1); e22 = sPixel.Interpolate(c4, c7, 7, 1); e30 = sPixel.Interpolate(c4, c3, c7, 2, 1, 1); e31 = sPixel.Interpolate(c4, c7, c3, 5, 2, 1); e32 = sPixel.Interpolate(c4, c7, 5, 3); if (c1.IsNotLike(c5)) { e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); e23 = sPixel.Interpolate(c4, c7, 7, 1); e33 = sPixel.Interpolate(c4, c7, 5, 3); } else { e02 = sPixel.Interpolate(c1, c4, c5, 2, 1, 1); e03 = sPixel.Interpolate(c1, c5, 1, 1); e12 = sPixel.Interpolate(c4, c1, c5, 6, 1, 1); e13 = sPixel.Interpolate(c5, c1, 5, 3); e23 = sPixel.Interpolate(c5, c4, 3, 1); e33 = sPixel.Interpolate(c4, c5, 3, 1); } } break; case 147: case 179: { e00 = sPixel.Interpolate(c4, c3, 5, 3); e01 = sPixel.Interpolate(c4, c3, 7, 1); e10 = sPixel.Interpolate(c4, c3, 5, 3); e11 = sPixel.Interpolate(c4, c3, 7, 1); e20 = sPixel.Interpolate(c4, c3, c7, 5, 2, 1); e21 = sPixel.Interpolate(c4, c3, c7, 6, 1, 1); e22 = sPixel.Interpolate(c4, c7, 7, 1); e23 = sPixel.Interpolate(c4, c7, 7, 1); e30 = sPixel.Interpolate(c4, c3, c7, 2, 1, 1); e31 = sPixel.Interpolate(c4, c7, c3, 5, 2, 1); e32 = sPixel.Interpolate(c4, c7, 5, 3); e33 = sPixel.Interpolate(c4, c7, 5, 3); if (c1.IsNotLike(c5)) { e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); } else { e02 = sPixel.Interpolate(c4, c1, 3, 1); e03 = sPixel.Interpolate(c4, c1, c5, 2, 1, 1); e12 = c4; e13 = sPixel.Interpolate(c4, c5, 3, 1); } } break; case 148: case 149: case 180: case 181: { e00 = sPixel.Interpolate(c4, c1, c3, 2, 1, 1); e01 = sPixel.Interpolate(c4, c1, c3, 5, 2, 1); e02 = sPixel.Interpolate(c4, c1, 5, 3); e03 = sPixel.Interpolate(c4, c1, 5, 3); e10 = sPixel.Interpolate(c4, c3, c1, 5, 2, 1); e11 = sPixel.Interpolate(c4, c1, c3, 6, 1, 1); e12 = sPixel.Interpolate(c4, c1, 7, 1); e13 = sPixel.Interpolate(c4, c1, 7, 1); e20 = sPixel.Interpolate(c4, c3, c7, 5, 2, 1); e21 = sPixel.Interpolate(c4, c3, c7, 6, 1, 1); e22 = sPixel.Interpolate(c4, c7, 7, 1); e23 = sPixel.Interpolate(c4, c7, 7, 1); e30 = sPixel.Interpolate(c4, c3, c7, 2, 1, 1); e31 = sPixel.Interpolate(c4, c7, c3, 5, 2, 1); e32 = sPixel.Interpolate(c4, c7, 5, 3); e33 = sPixel.Interpolate(c4, c7, 5, 3); } break; case 150: case 182: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e10 = sPixel.Interpolate(c4, c3, c0, 5, 2, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e20 = sPixel.Interpolate(c4, c3, c7, 5, 2, 1); e21 = sPixel.Interpolate(c4, c3, c7, 6, 1, 1); e22 = sPixel.Interpolate(c4, c7, 7, 1); e30 = sPixel.Interpolate(c4, c3, c7, 2, 1, 1); e31 = sPixel.Interpolate(c4, c7, c3, 5, 2, 1); e32 = sPixel.Interpolate(c4, c7, 5, 3); if (c1.IsNotLike(c5)) { e02 = c4; e03 = c4; e12 = c4; e13 = c4; e23 = sPixel.Interpolate(c4, c7, 7, 1); e33 = sPixel.Interpolate(c4, c7, 5, 3); } else { e02 = sPixel.Interpolate(c1, c4, c5, 2, 1, 1); e03 = sPixel.Interpolate(c1, c5, 1, 1); e12 = sPixel.Interpolate(c4, c1, c5, 6, 1, 1); e13 = sPixel.Interpolate(c5, c1, 5, 3); e23 = sPixel.Interpolate(c5, c4, 3, 1); e33 = sPixel.Interpolate(c4, c5, 3, 1); } } break; case 151: case 183: { e00 = sPixel.Interpolate(c4, c3, 5, 3); e01 = sPixel.Interpolate(c4, c3, 7, 1); e02 = c4; e10 = sPixel.Interpolate(c4, c3, 5, 3); e11 = sPixel.Interpolate(c4, c3, 7, 1); e12 = c4; e13 = c4; e20 = sPixel.Interpolate(c4, c3, c7, 5, 2, 1); e21 = sPixel.Interpolate(c4, c3, c7, 6, 1, 1); e22 = sPixel.Interpolate(c4, c7, 7, 1); e23 = sPixel.Interpolate(c4, c7, 7, 1); e30 = sPixel.Interpolate(c4, c3, c7, 2, 1, 1); e31 = sPixel.Interpolate(c4, c7, c3, 5, 2, 1); e32 = sPixel.Interpolate(c4, c7, 5, 3); e33 = sPixel.Interpolate(c4, c7, 5, 3); e03 = (c1.IsNotLike(c5)) ? (c4) : (sPixel.Interpolate(c4, c1, c5, 2, 1, 1)); } break; case 152: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c1, c0, 5, 2, 1); e02 = sPixel.Interpolate(c4, c1, c2, 5, 2, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = sPixel.Interpolate(c4, c7, 7, 1); e23 = sPixel.Interpolate(c4, c7, 7, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c7, c6, 5, 2, 1); e32 = sPixel.Interpolate(c4, c7, 5, 3); e33 = sPixel.Interpolate(c4, c7, 5, 3); } break; case 153: { e00 = sPixel.Interpolate(c4, c1, 5, 3); e01 = sPixel.Interpolate(c4, c1, 5, 3); e02 = sPixel.Interpolate(c4, c1, c2, 5, 2, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e10 = sPixel.Interpolate(c4, c1, 7, 1); e11 = sPixel.Interpolate(c4, c1, 7, 1); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = sPixel.Interpolate(c4, c7, 7, 1); e23 = sPixel.Interpolate(c4, c7, 7, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c7, c6, 5, 2, 1); e32 = sPixel.Interpolate(c4, c7, 5, 3); e33 = sPixel.Interpolate(c4, c7, 5, 3); } break; case 154: { e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = sPixel.Interpolate(c4, c7, 7, 1); e23 = sPixel.Interpolate(c4, c7, 7, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c7, c6, 5, 2, 1); e32 = sPixel.Interpolate(c4, c7, 5, 3); e33 = sPixel.Interpolate(c4, c7, 5, 3); if (c1.IsNotLike(c3)) { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); } else { e00 = sPixel.Interpolate(c4, c1, c3, 2, 1, 1); e01 = sPixel.Interpolate(c4, c1, 3, 1); e10 = sPixel.Interpolate(c4, c3, 3, 1); e11 = c4; } if (c1.IsNotLike(c5)) { e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); } else { e02 = sPixel.Interpolate(c4, c1, 3, 1); e03 = sPixel.Interpolate(c4, c1, c5, 2, 1, 1); e12 = c4; e13 = sPixel.Interpolate(c4, c5, 3, 1); } } break; case 155: { e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e11 = c4; e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = sPixel.Interpolate(c4, c7, 7, 1); e23 = sPixel.Interpolate(c4, c7, 7, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c7, c6, 5, 2, 1); e32 = sPixel.Interpolate(c4, c7, 5, 3); e33 = sPixel.Interpolate(c4, c7, 5, 3); if (c1.IsNotLike(c3)) { e00 = c4; e01 = c4; e10 = c4; } else { e00 = sPixel.Interpolate(c1, c3, 1, 1); e01 = sPixel.Interpolate(c1, c4, 1, 1); e10 = sPixel.Interpolate(c3, c4, 1, 1); } } break; case 156: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c1, c0, 5, 2, 1); e02 = sPixel.Interpolate(c4, c1, 5, 3); e03 = sPixel.Interpolate(c4, c1, 5, 3); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = sPixel.Interpolate(c4, c1, 7, 1); e13 = sPixel.Interpolate(c4, c1, 7, 1); e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = sPixel.Interpolate(c4, c7, 7, 1); e23 = sPixel.Interpolate(c4, c7, 7, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c7, c6, 5, 2, 1); e32 = sPixel.Interpolate(c4, c7, 5, 3); e33 = sPixel.Interpolate(c4, c7, 5, 3); } break; case 157: { e00 = sPixel.Interpolate(c4, c1, 5, 3); e01 = sPixel.Interpolate(c4, c1, 5, 3); e02 = sPixel.Interpolate(c4, c1, 5, 3); e03 = sPixel.Interpolate(c4, c1, 5, 3); e10 = sPixel.Interpolate(c4, c1, 7, 1); e11 = sPixel.Interpolate(c4, c1, 7, 1); e12 = sPixel.Interpolate(c4, c1, 7, 1); e13 = sPixel.Interpolate(c4, c1, 7, 1); e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = sPixel.Interpolate(c4, c7, 7, 1); e23 = sPixel.Interpolate(c4, c7, 7, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c7, c6, 5, 2, 1); e32 = sPixel.Interpolate(c4, c7, 5, 3); e33 = sPixel.Interpolate(c4, c7, 5, 3); } break; case 158: { e12 = c4; e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = sPixel.Interpolate(c4, c7, 7, 1); e23 = sPixel.Interpolate(c4, c7, 7, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c7, c6, 5, 2, 1); e32 = sPixel.Interpolate(c4, c7, 5, 3); e33 = sPixel.Interpolate(c4, c7, 5, 3); if (c1.IsNotLike(c3)) { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); } else { e00 = sPixel.Interpolate(c4, c1, c3, 2, 1, 1); e01 = sPixel.Interpolate(c4, c1, 3, 1); e10 = sPixel.Interpolate(c4, c3, 3, 1); e11 = c4; } if (c1.IsNotLike(c5)) { e02 = c4; e03 = c4; e13 = c4; } else { e02 = sPixel.Interpolate(c1, c4, 1, 1); e03 = sPixel.Interpolate(c1, c5, 1, 1); e13 = sPixel.Interpolate(c4, c5, 1, 1); } } break; case 159: { e02 = c4; e11 = c4; e12 = c4; e13 = c4; e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = sPixel.Interpolate(c4, c7, 7, 1); e23 = sPixel.Interpolate(c4, c7, 7, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c7, c6, 5, 2, 1); e32 = sPixel.Interpolate(c4, c7, 5, 3); e33 = sPixel.Interpolate(c4, c7, 5, 3); if (c1.IsNotLike(c3)) { e00 = c4; e01 = c4; e10 = c4; } else { e00 = sPixel.Interpolate(c1, c3, 1, 1); e01 = sPixel.Interpolate(c1, c4, 1, 1); e10 = sPixel.Interpolate(c3, c4, 1, 1); } e03 = (c1.IsNotLike(c5)) ? (c4) : (sPixel.Interpolate(c4, c1, c5, 2, 1, 1)); } break; case 184: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c1, c0, 5, 2, 1); e02 = sPixel.Interpolate(c4, c1, c2, 5, 2, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); e20 = sPixel.Interpolate(c4, c7, 7, 1); e21 = sPixel.Interpolate(c4, c7, 7, 1); e22 = sPixel.Interpolate(c4, c7, 7, 1); e23 = sPixel.Interpolate(c4, c7, 7, 1); e30 = sPixel.Interpolate(c4, c7, 5, 3); e31 = sPixel.Interpolate(c4, c7, 5, 3); e32 = sPixel.Interpolate(c4, c7, 5, 3); e33 = sPixel.Interpolate(c4, c7, 5, 3); } break; case 185: { e00 = sPixel.Interpolate(c4, c1, 5, 3); e01 = sPixel.Interpolate(c4, c1, 5, 3); e02 = sPixel.Interpolate(c4, c1, c2, 5, 2, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e10 = sPixel.Interpolate(c4, c1, 7, 1); e11 = sPixel.Interpolate(c4, c1, 7, 1); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); e20 = sPixel.Interpolate(c4, c7, 7, 1); e21 = sPixel.Interpolate(c4, c7, 7, 1); e22 = sPixel.Interpolate(c4, c7, 7, 1); e23 = sPixel.Interpolate(c4, c7, 7, 1); e30 = sPixel.Interpolate(c4, c7, 5, 3); e31 = sPixel.Interpolate(c4, c7, 5, 3); e32 = sPixel.Interpolate(c4, c7, 5, 3); e33 = sPixel.Interpolate(c4, c7, 5, 3); } break; case 186: { e20 = sPixel.Interpolate(c4, c7, 7, 1); e21 = sPixel.Interpolate(c4, c7, 7, 1); e22 = sPixel.Interpolate(c4, c7, 7, 1); e23 = sPixel.Interpolate(c4, c7, 7, 1); e30 = sPixel.Interpolate(c4, c7, 5, 3); e31 = sPixel.Interpolate(c4, c7, 5, 3); e32 = sPixel.Interpolate(c4, c7, 5, 3); e33 = sPixel.Interpolate(c4, c7, 5, 3); if (c1.IsNotLike(c3)) { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); } else { e00 = sPixel.Interpolate(c4, c1, c3, 2, 1, 1); e01 = sPixel.Interpolate(c4, c1, 3, 1); e10 = sPixel.Interpolate(c4, c3, 3, 1); e11 = c4; } if (c1.IsNotLike(c5)) { e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); } else { e02 = sPixel.Interpolate(c4, c1, 3, 1); e03 = sPixel.Interpolate(c4, c1, c5, 2, 1, 1); e12 = c4; e13 = sPixel.Interpolate(c4, c5, 3, 1); } } break; case 187: { e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); e21 = sPixel.Interpolate(c4, c7, 7, 1); e22 = sPixel.Interpolate(c4, c7, 7, 1); e23 = sPixel.Interpolate(c4, c7, 7, 1); e31 = sPixel.Interpolate(c4, c7, 5, 3); e32 = sPixel.Interpolate(c4, c7, 5, 3); e33 = sPixel.Interpolate(c4, c7, 5, 3); if (c1.IsNotLike(c3)) { e00 = c4; e01 = c4; e10 = c4; e11 = c4; e20 = sPixel.Interpolate(c4, c7, 7, 1); e30 = sPixel.Interpolate(c4, c7, 5, 3); } else { e00 = sPixel.Interpolate(c1, c3, 1, 1); e01 = sPixel.Interpolate(c1, c3, c4, 2, 1, 1); e10 = sPixel.Interpolate(c3, c1, 5, 3); e11 = sPixel.Interpolate(c4, c1, c3, 6, 1, 1); e20 = sPixel.Interpolate(c3, c4, 3, 1); e30 = sPixel.Interpolate(c4, c3, 3, 1); } } break; case 188: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c1, c0, 5, 2, 1); e02 = sPixel.Interpolate(c4, c1, 5, 3); e03 = sPixel.Interpolate(c4, c1, 5, 3); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = sPixel.Interpolate(c4, c1, 7, 1); e13 = sPixel.Interpolate(c4, c1, 7, 1); e20 = sPixel.Interpolate(c4, c7, 7, 1); e21 = sPixel.Interpolate(c4, c7, 7, 1); e22 = sPixel.Interpolate(c4, c7, 7, 1); e23 = sPixel.Interpolate(c4, c7, 7, 1); e30 = sPixel.Interpolate(c4, c7, 5, 3); e31 = sPixel.Interpolate(c4, c7, 5, 3); e32 = sPixel.Interpolate(c4, c7, 5, 3); e33 = sPixel.Interpolate(c4, c7, 5, 3); } break; case 189: { e00 = sPixel.Interpolate(c4, c1, 5, 3); e01 = sPixel.Interpolate(c4, c1, 5, 3); e02 = sPixel.Interpolate(c4, c1, 5, 3); e03 = sPixel.Interpolate(c4, c1, 5, 3); e10 = sPixel.Interpolate(c4, c1, 7, 1); e11 = sPixel.Interpolate(c4, c1, 7, 1); e12 = sPixel.Interpolate(c4, c1, 7, 1); e13 = sPixel.Interpolate(c4, c1, 7, 1); e20 = sPixel.Interpolate(c4, c7, 7, 1); e21 = sPixel.Interpolate(c4, c7, 7, 1); e22 = sPixel.Interpolate(c4, c7, 7, 1); e23 = sPixel.Interpolate(c4, c7, 7, 1); e30 = sPixel.Interpolate(c4, c7, 5, 3); e31 = sPixel.Interpolate(c4, c7, 5, 3); e32 = sPixel.Interpolate(c4, c7, 5, 3); e33 = sPixel.Interpolate(c4, c7, 5, 3); } break; case 190: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e20 = sPixel.Interpolate(c4, c7, 7, 1); e21 = sPixel.Interpolate(c4, c7, 7, 1); e22 = sPixel.Interpolate(c4, c7, 7, 1); e30 = sPixel.Interpolate(c4, c7, 5, 3); e31 = sPixel.Interpolate(c4, c7, 5, 3); e32 = sPixel.Interpolate(c4, c7, 5, 3); if (c1.IsNotLike(c5)) { e02 = c4; e03 = c4; e12 = c4; e13 = c4; e23 = sPixel.Interpolate(c4, c7, 7, 1); e33 = sPixel.Interpolate(c4, c7, 5, 3); } else { e02 = sPixel.Interpolate(c1, c4, c5, 2, 1, 1); e03 = sPixel.Interpolate(c1, c5, 1, 1); e12 = sPixel.Interpolate(c4, c1, c5, 6, 1, 1); e13 = sPixel.Interpolate(c5, c1, 5, 3); e23 = sPixel.Interpolate(c5, c4, 3, 1); e33 = sPixel.Interpolate(c4, c5, 3, 1); } } break; case 191: { e01 = c4; e02 = c4; e10 = c4; e11 = c4; e12 = c4; e13 = c4; e20 = sPixel.Interpolate(c4, c7, 7, 1); e21 = sPixel.Interpolate(c4, c7, 7, 1); e22 = sPixel.Interpolate(c4, c7, 7, 1); e23 = sPixel.Interpolate(c4, c7, 7, 1); e30 = sPixel.Interpolate(c4, c7, 5, 3); e31 = sPixel.Interpolate(c4, c7, 5, 3); e32 = sPixel.Interpolate(c4, c7, 5, 3); e33 = sPixel.Interpolate(c4, c7, 5, 3); e00 = (c1.IsNotLike(c3)) ? (c4) : (sPixel.Interpolate(c4, c1, c3, 2, 1, 1)); e03 = (c1.IsNotLike(c5)) ? (c4) : (sPixel.Interpolate(c4, c1, c5, 2, 1, 1)); } break; case 192: case 193: case 196: case 197: { e00 = sPixel.Interpolate(c4, c1, c3, 2, 1, 1); e01 = sPixel.Interpolate(c4, c1, c3, 5, 2, 1); e02 = sPixel.Interpolate(c4, c1, c5, 5, 2, 1); e03 = sPixel.Interpolate(c4, c1, c5, 2, 1, 1); e10 = sPixel.Interpolate(c4, c3, c1, 5, 2, 1); e11 = sPixel.Interpolate(c4, c1, c3, 6, 1, 1); e12 = sPixel.Interpolate(c4, c1, c5, 6, 1, 1); e13 = sPixel.Interpolate(c4, c5, c1, 5, 2, 1); e20 = sPixel.Interpolate(c4, c3, c6, 5, 2, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = sPixel.Interpolate(c4, c5, 7, 1); e23 = sPixel.Interpolate(c4, c5, 5, 3); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); e32 = sPixel.Interpolate(c4, c5, 7, 1); e33 = sPixel.Interpolate(c4, c5, 5, 3); } break; case 194: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e10 = sPixel.Interpolate(c4, c3, c0, 5, 2, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c5, c2, 5, 2, 1); e20 = sPixel.Interpolate(c4, c3, c6, 5, 2, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = sPixel.Interpolate(c4, c5, 7, 1); e23 = sPixel.Interpolate(c4, c5, 5, 3); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); e32 = sPixel.Interpolate(c4, c5, 7, 1); e33 = sPixel.Interpolate(c4, c5, 5, 3); } break; case 195: { e00 = sPixel.Interpolate(c4, c3, 5, 3); e01 = sPixel.Interpolate(c4, c3, 7, 1); e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e10 = sPixel.Interpolate(c4, c3, 5, 3); e11 = sPixel.Interpolate(c4, c3, 7, 1); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c5, c2, 5, 2, 1); e20 = sPixel.Interpolate(c4, c3, c6, 5, 2, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = sPixel.Interpolate(c4, c5, 7, 1); e23 = sPixel.Interpolate(c4, c5, 5, 3); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); e32 = sPixel.Interpolate(c4, c5, 7, 1); e33 = sPixel.Interpolate(c4, c5, 5, 3); } break; case 198: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e02 = sPixel.Interpolate(c4, c5, 7, 1); e03 = sPixel.Interpolate(c4, c5, 5, 3); e10 = sPixel.Interpolate(c4, c3, c0, 5, 2, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = sPixel.Interpolate(c4, c5, 7, 1); e13 = sPixel.Interpolate(c4, c5, 5, 3); e20 = sPixel.Interpolate(c4, c3, c6, 5, 2, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = sPixel.Interpolate(c4, c5, 7, 1); e23 = sPixel.Interpolate(c4, c5, 5, 3); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); e32 = sPixel.Interpolate(c4, c5, 7, 1); e33 = sPixel.Interpolate(c4, c5, 5, 3); } break; case 199: { e00 = sPixel.Interpolate(c4, c3, 5, 3); e01 = sPixel.Interpolate(c4, c3, 7, 1); e02 = sPixel.Interpolate(c4, c5, 7, 1); e03 = sPixel.Interpolate(c4, c5, 5, 3); e10 = sPixel.Interpolate(c4, c3, 5, 3); e11 = sPixel.Interpolate(c4, c3, 7, 1); e12 = sPixel.Interpolate(c4, c5, 7, 1); e13 = sPixel.Interpolate(c4, c5, 5, 3); e20 = sPixel.Interpolate(c4, c3, c6, 5, 2, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = sPixel.Interpolate(c4, c5, 7, 1); e23 = sPixel.Interpolate(c4, c5, 5, 3); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); e32 = sPixel.Interpolate(c4, c5, 7, 1); e33 = sPixel.Interpolate(c4, c5, 5, 3); } break; case 200: case 204: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c1, c0, 5, 2, 1); e02 = sPixel.Interpolate(c4, c1, c5, 5, 2, 1); e03 = sPixel.Interpolate(c4, c1, c5, 2, 1, 1); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = sPixel.Interpolate(c4, c1, c5, 6, 1, 1); e13 = sPixel.Interpolate(c4, c5, c1, 5, 2, 1); e22 = sPixel.Interpolate(c4, c5, 7, 1); e23 = sPixel.Interpolate(c4, c5, 5, 3); if (c7.IsNotLike(c3)) { e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); e32 = sPixel.Interpolate(c4, c5, 7, 1); e33 = sPixel.Interpolate(c4, c5, 5, 3); } else { e20 = sPixel.Interpolate(c3, c4, c7, 2, 1, 1); e21 = sPixel.Interpolate(c4, c3, c7, 6, 1, 1); e30 = sPixel.Interpolate(c3, c7, 1, 1); e31 = sPixel.Interpolate(c7, c3, 5, 3); e32 = sPixel.Interpolate(c7, c4, 3, 1); e33 = sPixel.Interpolate(c4, c7, 3, 1); } } break; case 201: case 205: { e00 = sPixel.Interpolate(c4, c1, 5, 3); e01 = sPixel.Interpolate(c4, c1, 5, 3); e02 = sPixel.Interpolate(c4, c1, c5, 5, 2, 1); e03 = sPixel.Interpolate(c4, c1, c5, 2, 1, 1); e10 = sPixel.Interpolate(c4, c1, 7, 1); e11 = sPixel.Interpolate(c4, c1, 7, 1); e12 = sPixel.Interpolate(c4, c1, c5, 6, 1, 1); e13 = sPixel.Interpolate(c4, c5, c1, 5, 2, 1); e22 = sPixel.Interpolate(c4, c5, 7, 1); e23 = sPixel.Interpolate(c4, c5, 5, 3); e32 = sPixel.Interpolate(c4, c5, 7, 1); e33 = sPixel.Interpolate(c4, c5, 5, 3); if (c7.IsNotLike(c3)) { e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); } else { e20 = sPixel.Interpolate(c4, c3, 3, 1); e21 = c4; e30 = sPixel.Interpolate(c4, c3, c7, 2, 1, 1); e31 = sPixel.Interpolate(c4, c7, 3, 1); } } break; case 202: { e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c5, c2, 5, 2, 1); e22 = sPixel.Interpolate(c4, c5, 7, 1); e23 = sPixel.Interpolate(c4, c5, 5, 3); e32 = sPixel.Interpolate(c4, c5, 7, 1); e33 = sPixel.Interpolate(c4, c5, 5, 3); if (c7.IsNotLike(c3)) { e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); } else { e20 = sPixel.Interpolate(c4, c3, 3, 1); e21 = c4; e30 = sPixel.Interpolate(c4, c3, c7, 2, 1, 1); e31 = sPixel.Interpolate(c4, c7, 3, 1); } if (c1.IsNotLike(c3)) { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); } else { e00 = sPixel.Interpolate(c4, c1, c3, 2, 1, 1); e01 = sPixel.Interpolate(c4, c1, 3, 1); e10 = sPixel.Interpolate(c4, c3, 3, 1); e11 = c4; } } break; case 203: { e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e11 = c4; e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c5, c2, 5, 2, 1); e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = sPixel.Interpolate(c4, c5, 7, 1); e23 = sPixel.Interpolate(c4, c5, 5, 3); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); e32 = sPixel.Interpolate(c4, c5, 7, 1); e33 = sPixel.Interpolate(c4, c5, 5, 3); if (c1.IsNotLike(c3)) { e00 = c4; e01 = c4; e10 = c4; } else { e00 = sPixel.Interpolate(c1, c3, 1, 1); e01 = sPixel.Interpolate(c1, c4, 1, 1); e10 = sPixel.Interpolate(c3, c4, 1, 1); } } break; case 206: { e02 = sPixel.Interpolate(c4, c5, 7, 1); e03 = sPixel.Interpolate(c4, c5, 5, 3); e12 = sPixel.Interpolate(c4, c5, 7, 1); e13 = sPixel.Interpolate(c4, c5, 5, 3); e22 = sPixel.Interpolate(c4, c5, 7, 1); e23 = sPixel.Interpolate(c4, c5, 5, 3); e32 = sPixel.Interpolate(c4, c5, 7, 1); e33 = sPixel.Interpolate(c4, c5, 5, 3); if (c7.IsNotLike(c3)) { e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); } else { e20 = sPixel.Interpolate(c4, c3, 3, 1); e21 = c4; e30 = sPixel.Interpolate(c4, c3, c7, 2, 1, 1); e31 = sPixel.Interpolate(c4, c7, 3, 1); } if (c1.IsNotLike(c3)) { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); } else { e00 = sPixel.Interpolate(c4, c1, c3, 2, 1, 1); e01 = sPixel.Interpolate(c4, c1, 3, 1); e10 = sPixel.Interpolate(c4, c3, 3, 1); e11 = c4; } } break; case 207: { e12 = sPixel.Interpolate(c4, c5, 7, 1); e13 = sPixel.Interpolate(c4, c5, 5, 3); e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = sPixel.Interpolate(c4, c5, 7, 1); e23 = sPixel.Interpolate(c4, c5, 5, 3); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); e32 = sPixel.Interpolate(c4, c5, 7, 1); e33 = sPixel.Interpolate(c4, c5, 5, 3); if (c1.IsNotLike(c3)) { e00 = c4; e01 = c4; e02 = sPixel.Interpolate(c4, c5, 7, 1); e03 = sPixel.Interpolate(c4, c5, 5, 3); e10 = c4; e11 = c4; } else { e00 = sPixel.Interpolate(c1, c3, 1, 1); e01 = sPixel.Interpolate(c1, c3, 5, 3); e02 = sPixel.Interpolate(c1, c4, 3, 1); e03 = sPixel.Interpolate(c4, c1, 3, 1); e10 = sPixel.Interpolate(c3, c1, c4, 2, 1, 1); e11 = sPixel.Interpolate(c4, c1, c3, 6, 1, 1); } } break; case 208: case 209: { e00 = sPixel.Interpolate(c4, c1, c3, 2, 1, 1); e01 = sPixel.Interpolate(c4, c1, c3, 5, 2, 1); e02 = sPixel.Interpolate(c4, c1, c2, 5, 2, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e10 = sPixel.Interpolate(c4, c3, c1, 5, 2, 1); e11 = sPixel.Interpolate(c4, c1, c3, 6, 1, 1); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); e20 = sPixel.Interpolate(c4, c3, c6, 5, 2, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = c4; e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); if (c7.IsNotLike(c5)) { e23 = c4; e32 = c4; e33 = c4; } else { e23 = sPixel.Interpolate(c4, c5, 1, 1); e32 = sPixel.Interpolate(c4, c7, 1, 1); e33 = sPixel.Interpolate(c5, c7, 1, 1); } } break; case 210: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e10 = sPixel.Interpolate(c4, c3, c0, 5, 2, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); e20 = sPixel.Interpolate(c4, c3, c6, 5, 2, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = c4; e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); if (c7.IsNotLike(c5)) { e23 = c4; e32 = c4; e33 = c4; } else { e23 = sPixel.Interpolate(c4, c5, 1, 1); e32 = sPixel.Interpolate(c4, c7, 1, 1); e33 = sPixel.Interpolate(c5, c7, 1, 1); } } break; case 211: { e00 = sPixel.Interpolate(c4, c3, 5, 3); e01 = sPixel.Interpolate(c4, c3, 7, 1); e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e10 = sPixel.Interpolate(c4, c3, 5, 3); e11 = sPixel.Interpolate(c4, c3, 7, 1); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); e20 = sPixel.Interpolate(c4, c3, c6, 5, 2, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = c4; e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); if (c7.IsNotLike(c5)) { e23 = c4; e32 = c4; e33 = c4; } else { e23 = sPixel.Interpolate(c4, c5, 1, 1); e32 = sPixel.Interpolate(c4, c7, 1, 1); e33 = sPixel.Interpolate(c5, c7, 1, 1); } } break; case 212: case 213: { e00 = sPixel.Interpolate(c4, c1, c3, 2, 1, 1); e01 = sPixel.Interpolate(c4, c1, c3, 5, 2, 1); e02 = sPixel.Interpolate(c4, c1, 5, 3); e10 = sPixel.Interpolate(c4, c3, c1, 5, 2, 1); e11 = sPixel.Interpolate(c4, c1, c3, 6, 1, 1); e12 = sPixel.Interpolate(c4, c1, 7, 1); e20 = sPixel.Interpolate(c4, c3, c6, 5, 2, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); if (c7.IsNotLike(c5)) { e03 = sPixel.Interpolate(c4, c1, 5, 3); e13 = sPixel.Interpolate(c4, c1, 7, 1); e22 = c4; e23 = c4; e32 = c4; e33 = c4; } else { e03 = sPixel.Interpolate(c4, c5, 3, 1); e13 = sPixel.Interpolate(c5, c4, 3, 1); e22 = sPixel.Interpolate(c4, c5, c7, 6, 1, 1); e23 = sPixel.Interpolate(c5, c7, 5, 3); e32 = sPixel.Interpolate(c7, c4, c5, 2, 1, 1); e33 = sPixel.Interpolate(c5, c7, 1, 1); } } break; case 215: { e00 = sPixel.Interpolate(c4, c3, 5, 3); e01 = sPixel.Interpolate(c4, c3, 7, 1); e02 = c4; e10 = sPixel.Interpolate(c4, c3, 5, 3); e11 = sPixel.Interpolate(c4, c3, 7, 1); e12 = c4; e13 = c4; e20 = sPixel.Interpolate(c4, c3, c6, 5, 2, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = c4; e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); if (c7.IsNotLike(c5)) { e23 = c4; e32 = c4; e33 = c4; } else { e23 = sPixel.Interpolate(c4, c5, 1, 1); e32 = sPixel.Interpolate(c4, c7, 1, 1); e33 = sPixel.Interpolate(c5, c7, 1, 1); } e03 = (c1.IsNotLike(c5)) ? (c4) : (sPixel.Interpolate(c4, c1, c5, 2, 1, 1)); } break; case 216: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c1, c0, 5, 2, 1); e02 = sPixel.Interpolate(c4, c1, c2, 5, 2, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = c4; e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); if (c7.IsNotLike(c5)) { e23 = c4; e32 = c4; e33 = c4; } else { e23 = sPixel.Interpolate(c4, c5, 1, 1); e32 = sPixel.Interpolate(c4, c7, 1, 1); e33 = sPixel.Interpolate(c5, c7, 1, 1); } } break; case 217: { e00 = sPixel.Interpolate(c4, c1, 5, 3); e01 = sPixel.Interpolate(c4, c1, 5, 3); e02 = sPixel.Interpolate(c4, c1, c2, 5, 2, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e10 = sPixel.Interpolate(c4, c1, 7, 1); e11 = sPixel.Interpolate(c4, c1, 7, 1); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = c4; e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); if (c7.IsNotLike(c5)) { e23 = c4; e32 = c4; e33 = c4; } else { e23 = sPixel.Interpolate(c4, c5, 1, 1); e32 = sPixel.Interpolate(c4, c7, 1, 1); e33 = sPixel.Interpolate(c5, c7, 1, 1); } } break; case 218: { e22 = c4; if (c7.IsNotLike(c3)) { e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); } else { e20 = sPixel.Interpolate(c4, c3, 3, 1); e21 = c4; e30 = sPixel.Interpolate(c4, c3, c7, 2, 1, 1); e31 = sPixel.Interpolate(c4, c7, 3, 1); } if (c7.IsNotLike(c5)) { e23 = c4; e32 = c4; e33 = c4; } else { e23 = sPixel.Interpolate(c4, c5, 1, 1); e32 = sPixel.Interpolate(c4, c7, 1, 1); e33 = sPixel.Interpolate(c5, c7, 1, 1); } if (c1.IsNotLike(c3)) { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); } else { e00 = sPixel.Interpolate(c4, c1, c3, 2, 1, 1); e01 = sPixel.Interpolate(c4, c1, 3, 1); e10 = sPixel.Interpolate(c4, c3, 3, 1); e11 = c4; } if (c1.IsNotLike(c5)) { e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); } else { e02 = sPixel.Interpolate(c4, c1, 3, 1); e03 = sPixel.Interpolate(c4, c1, c5, 2, 1, 1); e12 = c4; e13 = sPixel.Interpolate(c4, c5, 3, 1); } } break; case 219: { e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e11 = c4; e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = c4; e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); if (c7.IsNotLike(c5)) { e23 = c4; e32 = c4; e33 = c4; } else { e23 = sPixel.Interpolate(c4, c5, 1, 1); e32 = sPixel.Interpolate(c4, c7, 1, 1); e33 = sPixel.Interpolate(c5, c7, 1, 1); } if (c1.IsNotLike(c3)) { e00 = c4; e01 = c4; e10 = c4; } else { e00 = sPixel.Interpolate(c1, c3, 1, 1); e01 = sPixel.Interpolate(c1, c4, 1, 1); e10 = sPixel.Interpolate(c3, c4, 1, 1); } } break; case 220: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c1, c0, 5, 2, 1); e02 = sPixel.Interpolate(c4, c1, 5, 3); e03 = sPixel.Interpolate(c4, c1, 5, 3); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = sPixel.Interpolate(c4, c1, 7, 1); e13 = sPixel.Interpolate(c4, c1, 7, 1); e22 = c4; if (c7.IsNotLike(c3)) { e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); } else { e20 = sPixel.Interpolate(c4, c3, 3, 1); e21 = c4; e30 = sPixel.Interpolate(c4, c3, c7, 2, 1, 1); e31 = sPixel.Interpolate(c4, c7, 3, 1); } if (c7.IsNotLike(c5)) { e23 = c4; e32 = c4; e33 = c4; } else { e23 = sPixel.Interpolate(c4, c5, 1, 1); e32 = sPixel.Interpolate(c4, c7, 1, 1); e33 = sPixel.Interpolate(c5, c7, 1, 1); } } break; case 221: { e00 = sPixel.Interpolate(c4, c1, 5, 3); e01 = sPixel.Interpolate(c4, c1, 5, 3); e02 = sPixel.Interpolate(c4, c1, 5, 3); e10 = sPixel.Interpolate(c4, c1, 7, 1); e11 = sPixel.Interpolate(c4, c1, 7, 1); e12 = sPixel.Interpolate(c4, c1, 7, 1); e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); if (c7.IsNotLike(c5)) { e03 = sPixel.Interpolate(c4, c1, 5, 3); e13 = sPixel.Interpolate(c4, c1, 7, 1); e22 = c4; e23 = c4; e32 = c4; e33 = c4; } else { e03 = sPixel.Interpolate(c4, c5, 3, 1); e13 = sPixel.Interpolate(c5, c4, 3, 1); e22 = sPixel.Interpolate(c4, c5, c7, 6, 1, 1); e23 = sPixel.Interpolate(c5, c7, 5, 3); e32 = sPixel.Interpolate(c7, c4, c5, 2, 1, 1); e33 = sPixel.Interpolate(c5, c7, 1, 1); } } break; case 222: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = c4; e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = c4; e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); if (c7.IsNotLike(c5)) { e23 = c4; e32 = c4; e33 = c4; } else { e23 = sPixel.Interpolate(c4, c5, 1, 1); e32 = sPixel.Interpolate(c4, c7, 1, 1); e33 = sPixel.Interpolate(c5, c7, 1, 1); } if (c1.IsNotLike(c5)) { e02 = c4; e03 = c4; e13 = c4; } else { e02 = sPixel.Interpolate(c1, c4, 1, 1); e03 = sPixel.Interpolate(c1, c5, 1, 1); e13 = sPixel.Interpolate(c4, c5, 1, 1); } } break; case 223: { e02 = c4; e11 = c4; e12 = c4; e13 = c4; e20 = sPixel.Interpolate(c4, c6, 3, 1); e21 = sPixel.Interpolate(c4, c6, 7, 1); e22 = c4; e30 = sPixel.Interpolate(c4, c6, 5, 3); e31 = sPixel.Interpolate(c4, c6, 3, 1); if (c7.IsNotLike(c5)) { e23 = c4; e32 = c4; e33 = c4; } else { e23 = sPixel.Interpolate(c4, c5, 1, 1); e32 = sPixel.Interpolate(c4, c7, 1, 1); e33 = sPixel.Interpolate(c5, c7, 1, 1); } if (c1.IsNotLike(c3)) { e00 = c4; e01 = c4; e10 = c4; } else { e00 = sPixel.Interpolate(c1, c3, 1, 1); e01 = sPixel.Interpolate(c1, c4, 1, 1); e10 = sPixel.Interpolate(c3, c4, 1, 1); } e03 = (c1.IsNotLike(c5)) ? (c4) : (sPixel.Interpolate(c4, c1, c5, 2, 1, 1)); } break; case 224: case 225: case 228: case 229: { e00 = sPixel.Interpolate(c4, c1, c3, 2, 1, 1); e01 = sPixel.Interpolate(c4, c1, c3, 5, 2, 1); e02 = sPixel.Interpolate(c4, c1, c5, 5, 2, 1); e03 = sPixel.Interpolate(c4, c1, c5, 2, 1, 1); e10 = sPixel.Interpolate(c4, c3, c1, 5, 2, 1); e11 = sPixel.Interpolate(c4, c1, c3, 6, 1, 1); e12 = sPixel.Interpolate(c4, c1, c5, 6, 1, 1); e13 = sPixel.Interpolate(c4, c5, c1, 5, 2, 1); e20 = sPixel.Interpolate(c4, c3, 5, 3); e21 = sPixel.Interpolate(c4, c3, 7, 1); e22 = sPixel.Interpolate(c4, c5, 7, 1); e23 = sPixel.Interpolate(c4, c5, 5, 3); e30 = sPixel.Interpolate(c4, c3, 5, 3); e31 = sPixel.Interpolate(c4, c3, 7, 1); e32 = sPixel.Interpolate(c4, c5, 7, 1); e33 = sPixel.Interpolate(c4, c5, 5, 3); } break; case 226: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e10 = sPixel.Interpolate(c4, c3, c0, 5, 2, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c5, c2, 5, 2, 1); e20 = sPixel.Interpolate(c4, c3, 5, 3); e21 = sPixel.Interpolate(c4, c3, 7, 1); e22 = sPixel.Interpolate(c4, c5, 7, 1); e23 = sPixel.Interpolate(c4, c5, 5, 3); e30 = sPixel.Interpolate(c4, c3, 5, 3); e31 = sPixel.Interpolate(c4, c3, 7, 1); e32 = sPixel.Interpolate(c4, c5, 7, 1); e33 = sPixel.Interpolate(c4, c5, 5, 3); } break; case 227: { e00 = sPixel.Interpolate(c4, c3, 5, 3); e01 = sPixel.Interpolate(c4, c3, 7, 1); e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e10 = sPixel.Interpolate(c4, c3, 5, 3); e11 = sPixel.Interpolate(c4, c3, 7, 1); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c5, c2, 5, 2, 1); e20 = sPixel.Interpolate(c4, c3, 5, 3); e21 = sPixel.Interpolate(c4, c3, 7, 1); e22 = sPixel.Interpolate(c4, c5, 7, 1); e23 = sPixel.Interpolate(c4, c5, 5, 3); e30 = sPixel.Interpolate(c4, c3, 5, 3); e31 = sPixel.Interpolate(c4, c3, 7, 1); e32 = sPixel.Interpolate(c4, c5, 7, 1); e33 = sPixel.Interpolate(c4, c5, 5, 3); } break; case 230: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e02 = sPixel.Interpolate(c4, c5, 7, 1); e03 = sPixel.Interpolate(c4, c5, 5, 3); e10 = sPixel.Interpolate(c4, c3, c0, 5, 2, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = sPixel.Interpolate(c4, c5, 7, 1); e13 = sPixel.Interpolate(c4, c5, 5, 3); e20 = sPixel.Interpolate(c4, c3, 5, 3); e21 = sPixel.Interpolate(c4, c3, 7, 1); e22 = sPixel.Interpolate(c4, c5, 7, 1); e23 = sPixel.Interpolate(c4, c5, 5, 3); e30 = sPixel.Interpolate(c4, c3, 5, 3); e31 = sPixel.Interpolate(c4, c3, 7, 1); e32 = sPixel.Interpolate(c4, c5, 7, 1); e33 = sPixel.Interpolate(c4, c5, 5, 3); } break; case 231: { e00 = sPixel.Interpolate(c4, c3, 5, 3); e01 = sPixel.Interpolate(c4, c3, 7, 1); e02 = sPixel.Interpolate(c4, c5, 7, 1); e03 = sPixel.Interpolate(c4, c5, 5, 3); e10 = sPixel.Interpolate(c4, c3, 5, 3); e11 = sPixel.Interpolate(c4, c3, 7, 1); e12 = sPixel.Interpolate(c4, c5, 7, 1); e13 = sPixel.Interpolate(c4, c5, 5, 3); e20 = sPixel.Interpolate(c4, c3, 5, 3); e21 = sPixel.Interpolate(c4, c3, 7, 1); e22 = sPixel.Interpolate(c4, c5, 7, 1); e23 = sPixel.Interpolate(c4, c5, 5, 3); e30 = sPixel.Interpolate(c4, c3, 5, 3); e31 = sPixel.Interpolate(c4, c3, 7, 1); e32 = sPixel.Interpolate(c4, c5, 7, 1); e33 = sPixel.Interpolate(c4, c5, 5, 3); } break; case 232: case 236: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c1, c0, 5, 2, 1); e02 = sPixel.Interpolate(c4, c1, c5, 5, 2, 1); e03 = sPixel.Interpolate(c4, c1, c5, 2, 1, 1); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = sPixel.Interpolate(c4, c1, c5, 6, 1, 1); e13 = sPixel.Interpolate(c4, c5, c1, 5, 2, 1); e22 = sPixel.Interpolate(c4, c5, 7, 1); e23 = sPixel.Interpolate(c4, c5, 5, 3); if (c7.IsNotLike(c3)) { e20 = c4; e21 = c4; e30 = c4; e31 = c4; e32 = sPixel.Interpolate(c4, c5, 7, 1); e33 = sPixel.Interpolate(c4, c5, 5, 3); } else { e20 = sPixel.Interpolate(c3, c4, c7, 2, 1, 1); e21 = sPixel.Interpolate(c4, c3, c7, 6, 1, 1); e30 = sPixel.Interpolate(c3, c7, 1, 1); e31 = sPixel.Interpolate(c7, c3, 5, 3); e32 = sPixel.Interpolate(c7, c4, 3, 1); e33 = sPixel.Interpolate(c4, c7, 3, 1); } } break; case 233: case 237: { e00 = sPixel.Interpolate(c4, c1, 5, 3); e01 = sPixel.Interpolate(c4, c1, 5, 3); e02 = sPixel.Interpolate(c4, c1, c5, 5, 2, 1); e03 = sPixel.Interpolate(c4, c1, c5, 2, 1, 1); e10 = sPixel.Interpolate(c4, c1, 7, 1); e11 = sPixel.Interpolate(c4, c1, 7, 1); e12 = sPixel.Interpolate(c4, c1, c5, 6, 1, 1); e13 = sPixel.Interpolate(c4, c5, c1, 5, 2, 1); e20 = c4; e21 = c4; e22 = sPixel.Interpolate(c4, c5, 7, 1); e23 = sPixel.Interpolate(c4, c5, 5, 3); e31 = c4; e32 = sPixel.Interpolate(c4, c5, 7, 1); e33 = sPixel.Interpolate(c4, c5, 5, 3); e30 = (c7.IsNotLike(c3)) ? (c4) : (sPixel.Interpolate(c4, c3, c7, 2, 1, 1)); } break; case 234: { e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c5, c2, 5, 2, 1); e21 = c4; e22 = sPixel.Interpolate(c4, c5, 7, 1); e23 = sPixel.Interpolate(c4, c5, 5, 3); e32 = sPixel.Interpolate(c4, c5, 7, 1); e33 = sPixel.Interpolate(c4, c5, 5, 3); if (c7.IsNotLike(c3)) { e20 = c4; e30 = c4; e31 = c4; } else { e20 = sPixel.Interpolate(c3, c4, 1, 1); e30 = sPixel.Interpolate(c3, c7, 1, 1); e31 = sPixel.Interpolate(c4, c7, 1, 1); } if (c1.IsNotLike(c3)) { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); } else { e00 = sPixel.Interpolate(c4, c1, c3, 2, 1, 1); e01 = sPixel.Interpolate(c4, c1, 3, 1); e10 = sPixel.Interpolate(c4, c3, 3, 1); e11 = c4; } } break; case 235: { e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e11 = c4; e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c5, c2, 5, 2, 1); e20 = c4; e21 = c4; e22 = sPixel.Interpolate(c4, c5, 7, 1); e23 = sPixel.Interpolate(c4, c5, 5, 3); e31 = c4; e32 = sPixel.Interpolate(c4, c5, 7, 1); e33 = sPixel.Interpolate(c4, c5, 5, 3); e30 = (c7.IsNotLike(c3)) ? (c4) : (sPixel.Interpolate(c4, c3, c7, 2, 1, 1)); if (c1.IsNotLike(c3)) { e00 = c4; e01 = c4; e10 = c4; } else { e00 = sPixel.Interpolate(c1, c3, 1, 1); e01 = sPixel.Interpolate(c1, c4, 1, 1); e10 = sPixel.Interpolate(c3, c4, 1, 1); } } break; case 238: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e02 = sPixel.Interpolate(c4, c5, 7, 1); e03 = sPixel.Interpolate(c4, c5, 5, 3); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = sPixel.Interpolate(c4, c5, 7, 1); e13 = sPixel.Interpolate(c4, c5, 5, 3); e22 = sPixel.Interpolate(c4, c5, 7, 1); e23 = sPixel.Interpolate(c4, c5, 5, 3); if (c7.IsNotLike(c3)) { e20 = c4; e21 = c4; e30 = c4; e31 = c4; e32 = sPixel.Interpolate(c4, c5, 7, 1); e33 = sPixel.Interpolate(c4, c5, 5, 3); } else { e20 = sPixel.Interpolate(c3, c4, c7, 2, 1, 1); e21 = sPixel.Interpolate(c4, c3, c7, 6, 1, 1); e30 = sPixel.Interpolate(c3, c7, 1, 1); e31 = sPixel.Interpolate(c7, c3, 5, 3); e32 = sPixel.Interpolate(c7, c4, 3, 1); e33 = sPixel.Interpolate(c4, c7, 3, 1); } } break; case 239: { e01 = c4; e02 = sPixel.Interpolate(c4, c5, 7, 1); e03 = sPixel.Interpolate(c4, c5, 5, 3); e10 = c4; e11 = c4; e12 = sPixel.Interpolate(c4, c5, 7, 1); e13 = sPixel.Interpolate(c4, c5, 5, 3); e20 = c4; e21 = c4; e22 = sPixel.Interpolate(c4, c5, 7, 1); e23 = sPixel.Interpolate(c4, c5, 5, 3); e31 = c4; e32 = sPixel.Interpolate(c4, c5, 7, 1); e33 = sPixel.Interpolate(c4, c5, 5, 3); e30 = (c7.IsNotLike(c3)) ? (c4) : (sPixel.Interpolate(c4, c3, c7, 2, 1, 1)); e00 = (c1.IsNotLike(c3)) ? (c4) : (sPixel.Interpolate(c4, c1, c3, 2, 1, 1)); } break; case 240: case 241: { e00 = sPixel.Interpolate(c4, c1, c3, 2, 1, 1); e01 = sPixel.Interpolate(c4, c1, c3, 5, 2, 1); e02 = sPixel.Interpolate(c4, c1, c2, 5, 2, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e10 = sPixel.Interpolate(c4, c3, c1, 5, 2, 1); e11 = sPixel.Interpolate(c4, c1, c3, 6, 1, 1); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); e20 = sPixel.Interpolate(c4, c3, 5, 3); e21 = sPixel.Interpolate(c4, c3, 7, 1); if (c7.IsNotLike(c5)) { e22 = c4; e23 = c4; e30 = sPixel.Interpolate(c4, c3, 5, 3); e31 = sPixel.Interpolate(c4, c3, 7, 1); e32 = c4; e33 = c4; } else { e22 = sPixel.Interpolate(c4, c5, c7, 6, 1, 1); e23 = sPixel.Interpolate(c5, c4, c7, 2, 1, 1); e30 = sPixel.Interpolate(c4, c7, 3, 1); e31 = sPixel.Interpolate(c7, c4, 3, 1); e32 = sPixel.Interpolate(c7, c5, 5, 3); e33 = sPixel.Interpolate(c5, c7, 1, 1); } } break; case 242: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e10 = sPixel.Interpolate(c4, c3, c0, 5, 2, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e20 = sPixel.Interpolate(c4, c3, 5, 3); e21 = sPixel.Interpolate(c4, c3, 7, 1); e22 = c4; e30 = sPixel.Interpolate(c4, c3, 5, 3); e31 = sPixel.Interpolate(c4, c3, 7, 1); if (c7.IsNotLike(c5)) { e23 = c4; e32 = c4; e33 = c4; } else { e23 = sPixel.Interpolate(c4, c5, 1, 1); e32 = sPixel.Interpolate(c4, c7, 1, 1); e33 = sPixel.Interpolate(c5, c7, 1, 1); } if (c1.IsNotLike(c5)) { e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); } else { e02 = sPixel.Interpolate(c4, c1, 3, 1); e03 = sPixel.Interpolate(c4, c1, c5, 2, 1, 1); e12 = c4; e13 = sPixel.Interpolate(c4, c5, 3, 1); } } break; case 243: { e00 = sPixel.Interpolate(c4, c3, 5, 3); e01 = sPixel.Interpolate(c4, c3, 7, 1); e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e10 = sPixel.Interpolate(c4, c3, 5, 3); e11 = sPixel.Interpolate(c4, c3, 7, 1); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); e20 = sPixel.Interpolate(c4, c3, 5, 3); e21 = sPixel.Interpolate(c4, c3, 7, 1); if (c7.IsNotLike(c5)) { e22 = c4; e23 = c4; e30 = sPixel.Interpolate(c4, c3, 5, 3); e31 = sPixel.Interpolate(c4, c3, 7, 1); e32 = c4; e33 = c4; } else { e22 = sPixel.Interpolate(c4, c5, c7, 6, 1, 1); e23 = sPixel.Interpolate(c5, c4, c7, 2, 1, 1); e30 = sPixel.Interpolate(c4, c7, 3, 1); e31 = sPixel.Interpolate(c7, c4, 3, 1); e32 = sPixel.Interpolate(c7, c5, 5, 3); e33 = sPixel.Interpolate(c5, c7, 1, 1); } } break; case 244: case 245: { e00 = sPixel.Interpolate(c4, c1, c3, 2, 1, 1); e01 = sPixel.Interpolate(c4, c1, c3, 5, 2, 1); e02 = sPixel.Interpolate(c4, c1, 5, 3); e03 = sPixel.Interpolate(c4, c1, 5, 3); e10 = sPixel.Interpolate(c4, c3, c1, 5, 2, 1); e11 = sPixel.Interpolate(c4, c1, c3, 6, 1, 1); e12 = sPixel.Interpolate(c4, c1, 7, 1); e13 = sPixel.Interpolate(c4, c1, 7, 1); e20 = sPixel.Interpolate(c4, c3, 5, 3); e21 = sPixel.Interpolate(c4, c3, 7, 1); e22 = c4; e23 = c4; e30 = sPixel.Interpolate(c4, c3, 5, 3); e31 = sPixel.Interpolate(c4, c3, 7, 1); e32 = c4; e33 = (c7.IsNotLike(c5)) ? (c4) : (sPixel.Interpolate(c4, c5, c7, 2, 1, 1)); } break; case 246: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e10 = sPixel.Interpolate(c4, c3, c0, 5, 2, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = c4; e20 = sPixel.Interpolate(c4, c3, 5, 3); e21 = sPixel.Interpolate(c4, c3, 7, 1); e22 = c4; e23 = c4; e30 = sPixel.Interpolate(c4, c3, 5, 3); e31 = sPixel.Interpolate(c4, c3, 7, 1); e32 = c4; e33 = (c7.IsNotLike(c5)) ? (c4) : (sPixel.Interpolate(c4, c5, c7, 2, 1, 1)); if (c1.IsNotLike(c5)) { e02 = c4; e03 = c4; e13 = c4; } else { e02 = sPixel.Interpolate(c1, c4, 1, 1); e03 = sPixel.Interpolate(c1, c5, 1, 1); e13 = sPixel.Interpolate(c4, c5, 1, 1); } } break; case 247: { e00 = sPixel.Interpolate(c4, c3, 5, 3); e01 = sPixel.Interpolate(c4, c3, 7, 1); e02 = c4; e10 = sPixel.Interpolate(c4, c3, 5, 3); e11 = sPixel.Interpolate(c4, c3, 7, 1); e12 = c4; e13 = c4; e20 = sPixel.Interpolate(c4, c3, 5, 3); e21 = sPixel.Interpolate(c4, c3, 7, 1); e22 = c4; e23 = c4; e30 = sPixel.Interpolate(c4, c3, 5, 3); e31 = sPixel.Interpolate(c4, c3, 7, 1); e32 = c4; e33 = (c7.IsNotLike(c5)) ? (c4) : (sPixel.Interpolate(c4, c5, c7, 2, 1, 1)); e03 = (c1.IsNotLike(c5)) ? (c4) : (sPixel.Interpolate(c4, c1, c5, 2, 1, 1)); } break; case 249: { e00 = sPixel.Interpolate(c4, c1, 5, 3); e01 = sPixel.Interpolate(c4, c1, 5, 3); e02 = sPixel.Interpolate(c4, c1, c2, 5, 2, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e10 = sPixel.Interpolate(c4, c1, 7, 1); e11 = sPixel.Interpolate(c4, c1, 7, 1); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); e20 = c4; e21 = c4; e22 = c4; e31 = c4; e30 = (c7.IsNotLike(c3)) ? (c4) : (sPixel.Interpolate(c4, c3, c7, 2, 1, 1)); if (c7.IsNotLike(c5)) { e23 = c4; e32 = c4; e33 = c4; } else { e23 = sPixel.Interpolate(c4, c5, 1, 1); e32 = sPixel.Interpolate(c4, c7, 1, 1); e33 = sPixel.Interpolate(c5, c7, 1, 1); } } break; case 250: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); e21 = c4; e22 = c4; if (c7.IsNotLike(c3)) { e20 = c4; e30 = c4; e31 = c4; } else { e20 = sPixel.Interpolate(c3, c4, 1, 1); e30 = sPixel.Interpolate(c3, c7, 1, 1); e31 = sPixel.Interpolate(c4, c7, 1, 1); } if (c7.IsNotLike(c5)) { e23 = c4; e32 = c4; e33 = c4; } else { e23 = sPixel.Interpolate(c4, c5, 1, 1); e32 = sPixel.Interpolate(c4, c7, 1, 1); e33 = sPixel.Interpolate(c5, c7, 1, 1); } } break; case 251: { e02 = sPixel.Interpolate(c4, c2, 3, 1); e03 = sPixel.Interpolate(c4, c2, 5, 3); e11 = c4; e12 = sPixel.Interpolate(c4, c2, 7, 1); e13 = sPixel.Interpolate(c4, c2, 3, 1); e20 = c4; e21 = c4; e22 = c4; e31 = c4; e30 = (c7.IsNotLike(c3)) ? (c4) : (sPixel.Interpolate(c4, c3, c7, 2, 1, 1)); if (c7.IsNotLike(c5)) { e23 = c4; e32 = c4; e33 = c4; } else { e23 = sPixel.Interpolate(c4, c5, 1, 1); e32 = sPixel.Interpolate(c4, c7, 1, 1); e33 = sPixel.Interpolate(c5, c7, 1, 1); } if (c1.IsNotLike(c3)) { e00 = c4; e01 = c4; e10 = c4; } else { e00 = sPixel.Interpolate(c1, c3, 1, 1); e01 = sPixel.Interpolate(c1, c4, 1, 1); e10 = sPixel.Interpolate(c3, c4, 1, 1); } } break; case 252: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c1, c0, 5, 2, 1); e02 = sPixel.Interpolate(c4, c1, 5, 3); e03 = sPixel.Interpolate(c4, c1, 5, 3); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = sPixel.Interpolate(c4, c1, 7, 1); e13 = sPixel.Interpolate(c4, c1, 7, 1); e21 = c4; e22 = c4; e23 = c4; e32 = c4; if (c7.IsNotLike(c3)) { e20 = c4; e30 = c4; e31 = c4; } else { e20 = sPixel.Interpolate(c3, c4, 1, 1); e30 = sPixel.Interpolate(c3, c7, 1, 1); e31 = sPixel.Interpolate(c4, c7, 1, 1); } e33 = (c7.IsNotLike(c5)) ? (c4) : (sPixel.Interpolate(c4, c5, c7, 2, 1, 1)); } break; case 253: { e00 = sPixel.Interpolate(c4, c1, 5, 3); e01 = sPixel.Interpolate(c4, c1, 5, 3); e02 = sPixel.Interpolate(c4, c1, 5, 3); e03 = sPixel.Interpolate(c4, c1, 5, 3); e10 = sPixel.Interpolate(c4, c1, 7, 1); e11 = sPixel.Interpolate(c4, c1, 7, 1); e12 = sPixel.Interpolate(c4, c1, 7, 1); e13 = sPixel.Interpolate(c4, c1, 7, 1); e20 = c4; e21 = c4; e22 = c4; e23 = c4; e31 = c4; e32 = c4; e30 = (c7.IsNotLike(c3)) ? (c4) : (sPixel.Interpolate(c4, c3, c7, 2, 1, 1)); e33 = (c7.IsNotLike(c5)) ? (c4) : (sPixel.Interpolate(c4, c5, c7, 2, 1, 1)); } break; case 254: { e00 = sPixel.Interpolate(c4, c0, 5, 3); e01 = sPixel.Interpolate(c4, c0, 3, 1); e10 = sPixel.Interpolate(c4, c0, 3, 1); e11 = sPixel.Interpolate(c4, c0, 7, 1); e12 = c4; e21 = c4; e22 = c4; e23 = c4; e32 = c4; if (c7.IsNotLike(c3)) { e20 = c4; e30 = c4; e31 = c4; } else { e20 = sPixel.Interpolate(c3, c4, 1, 1); e30 = sPixel.Interpolate(c3, c7, 1, 1); e31 = sPixel.Interpolate(c4, c7, 1, 1); } e33 = (c7.IsNotLike(c5)) ? (c4) : (sPixel.Interpolate(c4, c5, c7, 2, 1, 1)); if (c1.IsNotLike(c5)) { e02 = c4; e03 = c4; e13 = c4; } else { e02 = sPixel.Interpolate(c1, c4, 1, 1); e03 = sPixel.Interpolate(c1, c5, 1, 1); e13 = sPixel.Interpolate(c4, c5, 1, 1); } } break; case 255: { e01 = c4; e02 = c4; e10 = c4; e11 = c4; e12 = c4; e13 = c4; e20 = c4; e21 = c4; e22 = c4; e23 = c4; e31 = c4; e32 = c4; e30 = (c7.IsNotLike(c3)) ? (c4) : (sPixel.Interpolate(c4, c3, c7, 2, 1, 1)); e33 = (c7.IsNotLike(c5)) ? (c4) : (sPixel.Interpolate(c4, c5, c7, 2, 1, 1)); e00 = (c1.IsNotLike(c3)) ? (c4) : (sPixel.Interpolate(c4, c1, c3, 2, 1, 1)); e03 = (c1.IsNotLike(c5)) ? (c4) : (sPixel.Interpolate(c4, c1, c5, 2, 1, 1)); } break; #endregion } worker.TargetP0P0(e00); worker.TargetP1P0(e01); worker.TargetP2P0(e02); worker.TargetP3P0(e03); worker.TargetP0P1(e10); worker.TargetP1P1(e11); worker.TargetP2P1(e12); worker.TargetP3P1(e13); worker.TargetP0P2(e20); worker.TargetP1P2(e21); worker.TargetP2P2(e22); worker.TargetP3P2(e23); worker.TargetP0P3(e30); worker.TargetP1P3(e31); worker.TargetP2P3(e32); worker.TargetP3P3(e33); }
public static void Lq2xKernel(byte pattern, sPixel c0, sPixel c1, sPixel c2, sPixel c3, sPixel c4, sPixel c5, sPixel c6, sPixel c7, sPixel c8, PixelWorker<sPixel> worker) { sPixel e01, e10, e11; var e00 = e01 = e10 = e11 = c4; switch (pattern) { #region LQ2x PATTERNS case 0: case 2: case 4: case 6: case 8: case 12: case 16: case 20: case 24: case 28: case 32: case 34: case 36: case 38: case 40: case 44: case 48: case 52: case 56: case 60: case 64: case 66: case 68: case 70: case 96: case 98: case 100: case 102: case 128: case 130: case 132: case 134: case 136: case 140: case 144: case 148: case 152: case 156: case 160: case 162: case 164: case 166: case 168: case 172: case 176: case 180: case 184: case 188: case 192: case 194: case 196: case 198: case 224: case 226: case 228: case 230: { e00 = c0; e01 = c0; e10 = c0; e11 = c0; } break; case 1: case 5: case 9: case 13: case 17: case 21: case 25: case 29: case 33: case 37: case 41: case 45: case 49: case 53: case 57: case 61: case 65: case 69: case 97: case 101: case 129: case 133: case 137: case 141: case 145: case 149: case 153: case 157: case 161: case 165: case 169: case 173: case 177: case 181: case 185: case 189: case 193: case 197: case 225: case 229: { e00 = c1; e01 = c1; e10 = c1; e11 = c1; } break; case 3: case 35: case 67: case 99: case 131: case 163: case 195: case 227: { e00 = c2; e01 = c2; e10 = c2; e11 = c2; } break; case 7: case 39: case 71: case 103: case 135: case 167: case 199: case 231: { e00 = c3; e01 = c3; e10 = c3; e11 = c3; } break; case 10: case 138: { e01 = c0; e10 = c0; e11 = c0; e00 = (c1.IsNotLike(c3)) ? (c0) : (sPixel.Interpolate(c0, c1, c3, 2, 1, 1)); } break; case 11: case 27: case 75: case 139: case 155: case 203: { e01 = c2; e10 = c2; e11 = c2; e00 = (c1.IsNotLike(c3)) ? (c2) : (sPixel.Interpolate(c2, c1, c3, 2, 1, 1)); } break; case 14: case 142: { e10 = c0; e11 = c0; if (c1.IsNotLike(c3)) { e00 = c0; e01 = c0; } else { e00 = sPixel.Interpolate(c1, c3, c0, 3, 3, 2); e01 = sPixel.Interpolate(c0, c1, 3, 1); } } break; case 15: case 143: case 207: { e10 = c4; e11 = c4; if (c1.IsNotLike(c3)) { e00 = c4; e01 = c4; } else { e00 = sPixel.Interpolate(c1, c3, c4, 3, 3, 2); e01 = sPixel.Interpolate(c4, c1, 3, 1); } } break; case 18: case 22: case 30: case 50: case 54: case 62: case 86: case 118: { e00 = c0; e10 = c0; e11 = c0; e01 = (c1.IsNotLike(c5)) ? (c0) : (sPixel.Interpolate(c0, c1, c5, 2, 1, 1)); } break; case 19: case 51: { e10 = c2; e11 = c2; if (c1.IsNotLike(c5)) { e00 = c2; e01 = c2; } else { e00 = sPixel.Interpolate(c2, c1, 3, 1); e01 = sPixel.Interpolate(c1, c5, c2, 3, 3, 2); } } break; case 23: case 55: case 119: { e10 = c3; e11 = c3; if (c1.IsNotLike(c5)) { e00 = c3; e01 = c3; } else { e00 = sPixel.Interpolate(c3, c1, 3, 1); e01 = sPixel.Interpolate(c1, c5, c3, 3, 3, 2); } } break; case 26: { e10 = c0; e11 = c0; e00 = (c1.IsNotLike(c3)) ? (c0) : (sPixel.Interpolate(c0, c1, c3, 2, 1, 1)); e01 = (c1.IsNotLike(c5)) ? (c0) : (sPixel.Interpolate(c0, c1, c5, 2, 1, 1)); } break; case 31: case 95: { e10 = c4; e11 = c4; e00 = (c1.IsNotLike(c3)) ? (c4) : (sPixel.Interpolate(c4, c1, c3, 2, 1, 1)); e01 = (c1.IsNotLike(c5)) ? (c4) : (sPixel.Interpolate(c4, c1, c5, 2, 1, 1)); } break; case 42: case 170: { e01 = c0; e11 = c0; if (c1.IsNotLike(c3)) { e00 = c0; e10 = c0; } else { e00 = sPixel.Interpolate(c1, c3, c0, 3, 3, 2); e10 = sPixel.Interpolate(c0, c3, 3, 1); } } break; case 43: case 171: case 187: { e01 = c2; e11 = c2; if (c1.IsNotLike(c3)) { e00 = c2; e10 = c2; } else { e00 = sPixel.Interpolate(c1, c3, c2, 3, 3, 2); e10 = sPixel.Interpolate(c2, c3, 3, 1); } } break; case 46: case 174: { e01 = c0; e10 = c0; e11 = c0; e00 = (c1.IsNotLike(c3)) ? (c0) : (sPixel.Interpolate(c0, c1, c3, 6, 1, 1)); } break; case 47: case 175: { e01 = c4; e10 = c4; e11 = c4; e00 = (c1.IsNotLike(c3)) ? (c4) : (sPixel.Interpolate(c4, c1, c3, 14, 1, 1)); } break; case 58: case 154: case 186: { e10 = c0; e11 = c0; e00 = (c1.IsNotLike(c3)) ? (c0) : (sPixel.Interpolate(c0, c1, c3, 6, 1, 1)); e01 = (c1.IsNotLike(c5)) ? (c0) : (sPixel.Interpolate(c0, c1, c5, 6, 1, 1)); } break; case 59: { e10 = c2; e11 = c2; e00 = (c1.IsNotLike(c3)) ? (c2) : (sPixel.Interpolate(c2, c1, c3, 2, 1, 1)); e01 = (c1.IsNotLike(c5)) ? (c2) : (sPixel.Interpolate(c2, c1, c5, 6, 1, 1)); } break; case 63: { e10 = c4; e11 = c4; e00 = (c1.IsNotLike(c3)) ? (c4) : (sPixel.Interpolate(c4, c1, c3, 14, 1, 1)); e01 = (c1.IsNotLike(c5)) ? (c4) : (sPixel.Interpolate(c4, c1, c5, 2, 1, 1)); } break; case 72: case 76: case 104: case 106: case 108: case 110: case 120: case 124: { e00 = c0; e01 = c0; e11 = c0; e10 = (c7.IsNotLike(c3)) ? (c0) : (sPixel.Interpolate(c0, c3, c7, 2, 1, 1)); } break; case 73: case 77: case 105: case 109: case 125: { e01 = c1; e11 = c1; if (c7.IsNotLike(c3)) { e00 = c1; e10 = c1; } else { e00 = sPixel.Interpolate(c1, c3, 3, 1); e10 = sPixel.Interpolate(c3, c7, c1, 3, 3, 2); } } break; case 74: { e01 = c0; e11 = c0; e10 = (c7.IsNotLike(c3)) ? (c0) : (sPixel.Interpolate(c0, c3, c7, 2, 1, 1)); e00 = (c1.IsNotLike(c3)) ? (c0) : (sPixel.Interpolate(c0, c1, c3, 2, 1, 1)); } break; case 78: case 202: case 206: { e01 = c0; e11 = c0; e10 = c7.IsNotLike(c3) ? c0 : sPixel.Interpolate(c0, c3, c7, 6, 1, 1); e00 = c1.IsNotLike(c3) ? c0 : sPixel.Interpolate(c0, c1, c3, 6, 1, 1); } break; case 79: { e01 = c4; e11 = c4; e10 = c7.IsNotLike(c3) ? c4 : sPixel.Interpolate(c4, c3, c7, 6, 1, 1); e00 = c1.IsNotLike(c3) ? c4 : sPixel.Interpolate(c4, c1, c3, 2, 1, 1); } break; case 80: case 208: case 210: case 216: { e00 = c0; e01 = c0; e10 = c0; e11 = c7.IsNotLike(c5) ? c0 : sPixel.Interpolate(c0, c5, c7, 2, 1, 1); } break; case 81: case 209: case 217: { e00 = c1; e01 = c1; e10 = c1; e11 = c7.IsNotLike(c5) ? c1 : sPixel.Interpolate(c1, c5, c7, 2, 1, 1); } break; case 82: case 214: case 222: { e00 = c0; e10 = c0; e11 = c7.IsNotLike(c5) ? c0 : sPixel.Interpolate(c0, c5, c7, 2, 1, 1); e01 = c1.IsNotLike(c5) ? c0 : sPixel.Interpolate(c0, c1, c5, 2, 1, 1); } break; case 83: case 115: { e00 = c2; e10 = c2; e11 = (c7.IsNotLike(c5)) ? (c2) : (sPixel.Interpolate(c2, c5, c7, 6, 1, 1)); e01 = (c1.IsNotLike(c5)) ? (c2) : (sPixel.Interpolate(c2, c1, c5, 6, 1, 1)); } break; case 84: case 212: { e00 = c0; e10 = c0; if (c7.IsNotLike(c5)) { e01 = c0; e11 = c0; } else { e01 = sPixel.Interpolate(c0, c5, 3, 1); e11 = sPixel.Interpolate(c5, c7, c0, 3, 3, 2); } } break; case 85: case 213: case 221: { e00 = c1; e10 = c1; if (c7.IsNotLike(c5)) { e01 = c1; e11 = c1; } else { e01 = sPixel.Interpolate(c1, c5, 3, 1); e11 = sPixel.Interpolate(c5, c7, c1, 3, 3, 2); } } break; case 87: { e00 = c3; e10 = c3; e11 = (c7.IsNotLike(c5)) ? (c3) : (sPixel.Interpolate(c3, c5, c7, 6, 1, 1)); e01 = (c1.IsNotLike(c5)) ? (c3) : (sPixel.Interpolate(c3, c1, c5, 2, 1, 1)); } break; case 88: case 248: case 250: { e00 = c0; e01 = c0; e10 = (c7.IsNotLike(c3)) ? (c0) : (sPixel.Interpolate(c0, c3, c7, 2, 1, 1)); e11 = (c7.IsNotLike(c5)) ? (c0) : (sPixel.Interpolate(c0, c5, c7, 2, 1, 1)); } break; case 89: case 93: { e00 = c1; e01 = c1; e10 = (c7.IsNotLike(c3)) ? (c1) : (sPixel.Interpolate(c1, c3, c7, 6, 1, 1)); e11 = (c7.IsNotLike(c5)) ? (c1) : (sPixel.Interpolate(c1, c5, c7, 6, 1, 1)); } break; case 90: { e10 = (c7.IsNotLike(c3)) ? (c0) : (sPixel.Interpolate(c0, c3, c7, 6, 1, 1)); e11 = (c7.IsNotLike(c5)) ? (c0) : (sPixel.Interpolate(c0, c5, c7, 6, 1, 1)); e00 = (c1.IsNotLike(c3)) ? (c0) : (sPixel.Interpolate(c0, c1, c3, 6, 1, 1)); e01 = (c1.IsNotLike(c5)) ? (c0) : (sPixel.Interpolate(c0, c1, c5, 6, 1, 1)); } break; case 91: { e10 = (c7.IsNotLike(c3)) ? (c2) : (sPixel.Interpolate(c2, c3, c7, 6, 1, 1)); e11 = (c7.IsNotLike(c5)) ? (c2) : (sPixel.Interpolate(c2, c5, c7, 6, 1, 1)); e00 = (c1.IsNotLike(c3)) ? (c2) : (sPixel.Interpolate(c2, c1, c3, 2, 1, 1)); e01 = (c1.IsNotLike(c5)) ? (c2) : (sPixel.Interpolate(c2, c1, c5, 6, 1, 1)); } break; case 92: { e00 = c0; e01 = c0; e10 = (c7.IsNotLike(c3)) ? (c0) : (sPixel.Interpolate(c0, c3, c7, 6, 1, 1)); e11 = (c7.IsNotLike(c5)) ? (c0) : (sPixel.Interpolate(c0, c5, c7, 6, 1, 1)); } break; case 94: { e10 = (c7.IsNotLike(c3)) ? (c0) : (sPixel.Interpolate(c0, c3, c7, 6, 1, 1)); e11 = (c7.IsNotLike(c5)) ? (c0) : (sPixel.Interpolate(c0, c5, c7, 6, 1, 1)); e00 = (c1.IsNotLike(c3)) ? (c0) : (sPixel.Interpolate(c0, c1, c3, 6, 1, 1)); e01 = (c1.IsNotLike(c5)) ? (c0) : (sPixel.Interpolate(c0, c1, c5, 2, 1, 1)); } break; case 107: case 123: { e01 = c2; e11 = c2; e10 = (c7.IsNotLike(c3)) ? (c2) : (sPixel.Interpolate(c2, c3, c7, 2, 1, 1)); e00 = (c1.IsNotLike(c3)) ? (c2) : (sPixel.Interpolate(c2, c1, c3, 2, 1, 1)); } break; case 111: { e01 = c4; e11 = c4; e10 = (c7.IsNotLike(c3)) ? (c4) : (sPixel.Interpolate(c4, c3, c7, 2, 1, 1)); e00 = (c1.IsNotLike(c3)) ? (c4) : (sPixel.Interpolate(c4, c1, c3, 14, 1, 1)); } break; case 112: case 240: { e00 = c0; e01 = c0; if (c7.IsNotLike(c5)) { e10 = c0; e11 = c0; } else { e10 = sPixel.Interpolate(c0, c7, 3, 1); e11 = sPixel.Interpolate(c5, c7, c0, 3, 3, 2); } } break; case 113: case 241: { e00 = c1; e01 = c1; if (c7.IsNotLike(c5)) { e10 = c1; e11 = c1; } else { e10 = sPixel.Interpolate(c1, c7, 3, 1); e11 = sPixel.Interpolate(c5, c7, c1, 3, 3, 2); } } break; case 114: { e00 = c0; e10 = c0; e11 = (c7.IsNotLike(c5)) ? (c0) : (sPixel.Interpolate(c0, c5, c7, 6, 1, 1)); e01 = (c1.IsNotLike(c5)) ? (c0) : (sPixel.Interpolate(c0, c1, c5, 6, 1, 1)); } break; case 116: { e00 = c0; e01 = c0; e10 = c0; e11 = (c7.IsNotLike(c5)) ? (c0) : (sPixel.Interpolate(c0, c5, c7, 6, 1, 1)); } break; case 117: { e00 = c1; e01 = c1; e10 = c1; e11 = (c7.IsNotLike(c5)) ? (c1) : (sPixel.Interpolate(c1, c5, c7, 6, 1, 1)); } break; case 121: { e00 = c1; e01 = c1; e10 = (c7.IsNotLike(c3)) ? (c1) : (sPixel.Interpolate(c1, c3, c7, 2, 1, 1)); e11 = (c7.IsNotLike(c5)) ? (c1) : (sPixel.Interpolate(c1, c5, c7, 6, 1, 1)); } break; case 122: { e10 = (c7.IsNotLike(c3)) ? (c0) : (sPixel.Interpolate(c0, c3, c7, 2, 1, 1)); e11 = (c7.IsNotLike(c5)) ? (c0) : (sPixel.Interpolate(c0, c5, c7, 6, 1, 1)); e00 = (c1.IsNotLike(c3)) ? (c0) : (sPixel.Interpolate(c0, c1, c3, 6, 1, 1)); e01 = (c1.IsNotLike(c5)) ? (c0) : (sPixel.Interpolate(c0, c1, c5, 6, 1, 1)); } break; case 126: { e00 = c0; e11 = c0; e10 = (c7.IsNotLike(c3)) ? (c0) : (sPixel.Interpolate(c0, c3, c7, 2, 1, 1)); e01 = (c1.IsNotLike(c5)) ? (c0) : (sPixel.Interpolate(c0, c1, c5, 2, 1, 1)); } break; case 127: { e11 = c4; e10 = (c7.IsNotLike(c3)) ? (c4) : (sPixel.Interpolate(c4, c3, c7, 2, 1, 1)); e00 = (c1.IsNotLike(c3)) ? (c4) : (sPixel.Interpolate(c4, c1, c3, 14, 1, 1)); e01 = (c1.IsNotLike(c5)) ? (c4) : (sPixel.Interpolate(c4, c1, c5, 2, 1, 1)); } break; case 146: case 150: case 178: case 182: case 190: { e00 = c0; e10 = c0; if (c1.IsNotLike(c5)) { e01 = c0; e11 = c0; } else { e01 = sPixel.Interpolate(c1, c5, c0, 3, 3, 2); e11 = sPixel.Interpolate(c0, c5, 3, 1); } } break; case 147: case 179: { e00 = c2; e10 = c2; e11 = c2; e01 = (c1.IsNotLike(c5)) ? (c2) : (sPixel.Interpolate(c2, c1, c5, 6, 1, 1)); } break; case 151: case 183: { e00 = c3; e10 = c3; e11 = c3; e01 = (c1.IsNotLike(c5)) ? (c3) : (sPixel.Interpolate(c3, c1, c5, 14, 1, 1)); } break; case 158: { e10 = c0; e11 = c0; e00 = (c1.IsNotLike(c3)) ? (c0) : (sPixel.Interpolate(c0, c1, c3, 6, 1, 1)); e01 = (c1.IsNotLike(c5)) ? (c0) : (sPixel.Interpolate(c0, c1, c5, 2, 1, 1)); } break; case 159: { e10 = c4; e11 = c4; e00 = (c1.IsNotLike(c3)) ? (c4) : (sPixel.Interpolate(c4, c1, c3, 2, 1, 1)); e01 = (c1.IsNotLike(c5)) ? (c4) : (sPixel.Interpolate(c4, c1, c5, 14, 1, 1)); } break; case 191: { e10 = c4; e11 = c4; e00 = (c1.IsNotLike(c3)) ? (c4) : (sPixel.Interpolate(c4, c1, c3, 14, 1, 1)); e01 = (c1.IsNotLike(c5)) ? (c4) : (sPixel.Interpolate(c4, c1, c5, 14, 1, 1)); } break; case 200: case 204: case 232: case 236: case 238: { e00 = c0; e01 = c0; if (c7.IsNotLike(c3)) { e10 = c0; e11 = c0; } else { e10 = sPixel.Interpolate(c3, c7, c0, 3, 3, 2); e11 = sPixel.Interpolate(c0, c7, 3, 1); } } break; case 201: case 205: { e00 = c1; e01 = c1; e11 = c1; e10 = (c7.IsNotLike(c3)) ? (c1) : (sPixel.Interpolate(c1, c3, c7, 6, 1, 1)); } break; case 211: { e00 = c2; e01 = c2; e10 = c2; e11 = (c7.IsNotLike(c5)) ? (c2) : (sPixel.Interpolate(c2, c5, c7, 2, 1, 1)); } break; case 215: { e00 = c3; e10 = c3; e11 = (c7.IsNotLike(c5)) ? (c3) : (sPixel.Interpolate(c3, c5, c7, 2, 1, 1)); e01 = (c1.IsNotLike(c5)) ? (c3) : (sPixel.Interpolate(c3, c1, c5, 14, 1, 1)); } break; case 218: { e10 = (c7.IsNotLike(c3)) ? (c0) : (sPixel.Interpolate(c0, c3, c7, 6, 1, 1)); e11 = (c7.IsNotLike(c5)) ? (c0) : (sPixel.Interpolate(c0, c5, c7, 2, 1, 1)); e00 = (c1.IsNotLike(c3)) ? (c0) : (sPixel.Interpolate(c0, c1, c3, 6, 1, 1)); e01 = (c1.IsNotLike(c5)) ? (c0) : (sPixel.Interpolate(c0, c1, c5, 6, 1, 1)); } break; case 219: { e01 = c2; e10 = c2; e11 = (c7.IsNotLike(c5)) ? (c2) : (sPixel.Interpolate(c2, c5, c7, 2, 1, 1)); e00 = (c1.IsNotLike(c3)) ? (c2) : (sPixel.Interpolate(c2, c1, c3, 2, 1, 1)); } break; case 220: { e00 = c0; e01 = c0; e10 = (c7.IsNotLike(c3)) ? (c0) : (sPixel.Interpolate(c0, c3, c7, 6, 1, 1)); e11 = (c7.IsNotLike(c5)) ? (c0) : (sPixel.Interpolate(c0, c5, c7, 2, 1, 1)); } break; case 223: { e10 = c4; e11 = (c7.IsNotLike(c5)) ? (c4) : (sPixel.Interpolate(c4, c5, c7, 2, 1, 1)); e00 = (c1.IsNotLike(c3)) ? (c4) : (sPixel.Interpolate(c4, c1, c3, 2, 1, 1)); e01 = (c1.IsNotLike(c5)) ? (c4) : (sPixel.Interpolate(c4, c1, c5, 14, 1, 1)); } break; case 233: case 237: { e00 = c1; e01 = c1; e11 = c1; e10 = (c7.IsNotLike(c3)) ? (c1) : (sPixel.Interpolate(c1, c3, c7, 14, 1, 1)); } break; case 234: { e01 = c0; e11 = c0; e10 = (c7.IsNotLike(c3)) ? (c0) : (sPixel.Interpolate(c0, c3, c7, 2, 1, 1)); e00 = (c1.IsNotLike(c3)) ? (c0) : (sPixel.Interpolate(c0, c1, c3, 6, 1, 1)); } break; case 235: { e01 = c2; e11 = c2; e10 = (c7.IsNotLike(c3)) ? (c2) : (sPixel.Interpolate(c2, c3, c7, 14, 1, 1)); e00 = (c1.IsNotLike(c3)) ? (c2) : (sPixel.Interpolate(c2, c1, c3, 2, 1, 1)); } break; case 239: { e01 = c4; e11 = c4; e10 = (c7.IsNotLike(c3)) ? (c4) : (sPixel.Interpolate(c4, c3, c7, 14, 1, 1)); e00 = (c1.IsNotLike(c3)) ? (c4) : (sPixel.Interpolate(c4, c1, c3, 14, 1, 1)); } break; case 242: { e00 = c0; e10 = c0; e11 = (c7.IsNotLike(c5)) ? (c0) : (sPixel.Interpolate(c0, c5, c7, 2, 1, 1)); e01 = (c1.IsNotLike(c5)) ? (c0) : (sPixel.Interpolate(c0, c1, c5, 6, 1, 1)); } break; case 243: { e00 = c2; e01 = c2; if (c7.IsNotLike(c5)) { e10 = c2; e11 = c2; } else { e10 = sPixel.Interpolate(c2, c7, 3, 1); e11 = sPixel.Interpolate(c5, c7, c2, 3, 3, 2); } } break; case 244: { e00 = c0; e01 = c0; e10 = c0; e11 = (c7.IsNotLike(c5)) ? (c0) : (sPixel.Interpolate(c0, c5, c7, 14, 1, 1)); } break; case 245: { e00 = c1; e01 = c1; e10 = c1; e11 = (c7.IsNotLike(c5)) ? (c1) : (sPixel.Interpolate(c1, c5, c7, 14, 1, 1)); } break; case 246: { e00 = c0; e10 = c0; e11 = (c7.IsNotLike(c5)) ? (c0) : (sPixel.Interpolate(c0, c5, c7, 14, 1, 1)); e01 = (c1.IsNotLike(c5)) ? (c0) : (sPixel.Interpolate(c0, c1, c5, 2, 1, 1)); } break; case 247: { e00 = c3; e10 = c3; e11 = (c7.IsNotLike(c5)) ? (c3) : (sPixel.Interpolate(c3, c5, c7, 14, 1, 1)); e01 = (c1.IsNotLike(c5)) ? (c3) : (sPixel.Interpolate(c3, c1, c5, 14, 1, 1)); } break; case 249: { e00 = c1; e01 = c1; e10 = (c7.IsNotLike(c3)) ? (c1) : (sPixel.Interpolate(c1, c3, c7, 14, 1, 1)); e11 = (c7.IsNotLike(c5)) ? (c1) : (sPixel.Interpolate(c1, c5, c7, 2, 1, 1)); } break; case 251: { e01 = c2; e10 = (c7.IsNotLike(c3)) ? (c2) : (sPixel.Interpolate(c2, c3, c7, 14, 1, 1)); e11 = (c7.IsNotLike(c5)) ? (c2) : (sPixel.Interpolate(c2, c5, c7, 2, 1, 1)); e00 = (c1.IsNotLike(c3)) ? (c2) : (sPixel.Interpolate(c2, c1, c3, 2, 1, 1)); } break; case 252: { e00 = c0; e01 = c0; e10 = (c7.IsNotLike(c3)) ? (c0) : (sPixel.Interpolate(c0, c3, c7, 2, 1, 1)); e11 = (c7.IsNotLike(c5)) ? (c0) : (sPixel.Interpolate(c0, c5, c7, 14, 1, 1)); } break; case 253: { e00 = c1; e01 = c1; e10 = (c7.IsNotLike(c3)) ? (c1) : (sPixel.Interpolate(c1, c3, c7, 14, 1, 1)); e11 = (c7.IsNotLike(c5)) ? (c1) : (sPixel.Interpolate(c1, c5, c7, 14, 1, 1)); } break; case 254: { e00 = c0; e10 = (c7.IsNotLike(c3)) ? (c0) : (sPixel.Interpolate(c0, c3, c7, 2, 1, 1)); e11 = (c7.IsNotLike(c5)) ? (c0) : (sPixel.Interpolate(c0, c5, c7, 14, 1, 1)); e01 = (c1.IsNotLike(c5)) ? (c0) : (sPixel.Interpolate(c0, c1, c5, 2, 1, 1)); } break; case 255: { e10 = (c7.IsNotLike(c3)) ? (c4) : (sPixel.Interpolate(c4, c3, c7, 14, 1, 1)); e11 = (c7.IsNotLike(c5)) ? (c4) : (sPixel.Interpolate(c4, c5, c7, 14, 1, 1)); e00 = (c1.IsNotLike(c3)) ? (c4) : (sPixel.Interpolate(c4, c1, c3, 14, 1, 1)); e01 = (c1.IsNotLike(c5)) ? (c4) : (sPixel.Interpolate(c4, c1, c5, 14, 1, 1)); } break; #endregion } worker.TargetP0P0(e00); worker.TargetP1P0(e01); worker.TargetP0P1(e10); worker.TargetP1P1(e11); }
private static void _AlphaBlend224W(ref sPixel dst, sPixel src, bool blend) { dst = blend ? sPixel.Interpolate(dst, src, 1, 7) : src; }
private static void _Dia(out sPixel n15, ref sPixel n14, ref sPixel n11, sPixel pixel, bool blend) { _AlphaBlend128W(ref n11, pixel, blend); _AlphaBlend128W(ref n14, pixel, blend); n15 = pixel; }
private static void _LeftUp2_2X(ref sPixel n3, ref sPixel n2, out sPixel n1, sPixel pixel, bool blend) { _AlphaBlend224W(ref n3, pixel, blend); _AlphaBlend64W(ref n2, pixel, blend); n1 = n2; }
private static void _Up2_2X(ref sPixel n3, ref sPixel n1, sPixel pixel, bool blend) { _AlphaBlend192W(ref n3, pixel, blend); _AlphaBlend64W(ref n1, pixel, blend); }
private static void _Dia_3X(ref sPixel n8, ref sPixel n5, ref sPixel n7, sPixel pixel, bool blend) { _AlphaBlend224W(ref n8, pixel, blend); _AlphaBlend32W(ref n5, pixel, blend); _AlphaBlend32W(ref n7, pixel, blend); }
private static void _Kernel3X(sPixel pe, sPixel pi, sPixel ph, sPixel pf, sPixel pg, sPixel pc, sPixel pd, sPixel pb, sPixel f4, sPixel i4, sPixel h5, sPixel i5, ref sPixel n2, ref sPixel n5, ref sPixel n6, ref sPixel n7, ref sPixel n8, bool blend, bool useOriginalImplementation) { var ex = (pe != ph && pe != pf); if (!ex) return; var e = (_YuvDifference(pe, pc) + _YuvDifference(pe, pg) + _YuvDifference(pi, h5) + _YuvDifference(pi, f4)) + (_YuvDifference(ph, pf) << 2); var i = (_YuvDifference(ph, pd) + _YuvDifference(ph, i5) + _YuvDifference(pf, i4) + _YuvDifference(pf, pb)) + (_YuvDifference(pe, pi) << 2); bool state; if (useOriginalImplementation) state = ((e < i) && (!_IsEqual(pf, pb) && !_IsEqual(ph, pd) || _IsEqual(pe, pi) && (!_IsEqual(pf, i4) && !_IsEqual(ph, i5)) || _IsEqual(pe, pg) || _IsEqual(pe, pc))); else state = ((e < i) && (!_IsEqual(pf, pb) && !_IsEqual(pf, pc) || !_IsEqual(ph, pd) && !_IsEqual(ph, pg) || _IsEqual(pe, pi) && (!_IsEqual(pf, f4) && !_IsEqual(pf, i4) || !_IsEqual(ph, h5) && !_IsEqual(ph, i5)) || _IsEqual(pe, pg) || _IsEqual(pe, pc))); if (state) { var ke = _YuvDifference(pf, pg); var ki = _YuvDifference(ph, pc); var ex2 = (pe != pc && pb != pc); var ex3 = (pe != pg && pd != pg); var px = (_YuvDifference(pe, pf) <= _YuvDifference(pe, ph)) ? pf : ph; if (((ke << 1) <= ki) && ex3 && (ke >= (ki << 1)) && ex2) { _LeftUp2_3X(ref n7, out n5, ref n6, ref n2, out n8, px, blend); } else if (((ke << 1) <= ki) && ex3) { _Left2_3X(ref n7, ref n5, ref n6, out n8, px, blend); } else if ((ke >= (ki << 1)) && ex2) { _Up2_3X(ref n5, ref n7, ref n2, out n8, px, blend); } else { _Dia_3X(ref n8, ref n5, ref n7, px, blend); } } else if (e <= i) { _AlphaBlend128W(ref n8, ((_YuvDifference(pe, pf) <= _YuvDifference(pe, ph)) ? pf : ph), blend); } }
private static uint _YuvDifference(sPixel a, sPixel b) { return (a.AbsDifference(b)); }
// private static double distNonLinearRGB( // int pix1, // int pix2 // ) { // //non-linear rgb: http://www.compuphase.com/cmetric.htm // double r_diff = ((pix1 & redMask) - (pix2 & redMask)) >> 16; //we may delay division by 255 to after matrix multiplication // double g_diff = ((pix1 & greenMask) - (pix2 & greenMask)) >> 8; // // double b_diff = (pix1 & blueMask) - (pix2 & blueMask); //subtraction for int is noticeable faster than for double // // double r_avg = (double)(((pix1 & redMask) + (pix2 & redMask)) >> 16) / 2; // return ((2 + r_avg / 255) * square(r_diff) + 4 * square(g_diff) + (2 + (255 - r_avg) / 255) * square(b_diff)); // } private static double _ColorDist(sPixel pix1, sPixel pix2, double luminanceWeight) { return pix1 == pix2 ? 0 : _DistYCbCr(pix1, pix2, luminanceWeight); // return distNonLinearRGB(pix1, pix2); }