Esempio n. 1
0
            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();
            }
Esempio n. 2
0
 public GradientColorStop(PdfColor color, float offset)
 {
     Color  = color ?? throw new ArgumentNullException(nameof(color));
     Offset = offset;
 }