private static void WriteLinearColorInterpolationFunction(DocumentWriter writer, PdfColor color1, PdfColor color2) { const int interpolationFunctionType = 2; void WriteColorArray(PdfColor color) { writer.WriteArrayOpen(); switch (color) { case RgbColor rgb: writer.WriteNumberColor(rgb.R); writer.WriteNumberColor(rgb.G); writer.WriteNumberColor(rgb.B); break; case CmykColor cmyk: writer.WriteNumberColor(cmyk.C); writer.WriteNumberColor(cmyk.M); writer.WriteNumberColor(cmyk.Y); writer.WriteNumberColor(cmyk.K); break; default: throw new NotSupportedException(); } writer.WriteArrayClose(); } writer.WriteDictionaryOpen(); { writer.WriteName(NameFunctionTypeBytes); writer.WriteNumber(interpolationFunctionType); writer.WriteName(NameNBytes); writer.WriteNumber1(); WriteDomain0To1NameAndArray(writer); writer.WriteName(NameC0Bytes); WriteColorArray(color1); writer.WriteName(NameC1Bytes); WriteColorArray(color2); } writer.WriteDictionaryClose(); }
public GradientColorStop(PdfColor color, float offset) { Color = color ?? throw new ArgumentNullException(nameof(color)); Offset = offset; }