/// <summary>
        /// Init
        /// </summary>
        public void Init(EpsInterpreter interpreter, ArrayOperand colorSpaceDetails)
        {
            this.interpreter       = interpreter;
            this.colorSpaceDetails = colorSpaceDetails;

            switch (colorSpaceDetails.Values[1].Operand)
            {
            case StringOperand stringOperand:
            case NameOperand nameOperand:
                numberOfValuesPerColor = 1;
                break;

            case ArrayOperand namesArray:
                numberOfValuesPerColor = namesArray.Values.Count;
                break;

            default:
                throw new Exception("illegal type");
            }

            // we only operate on the alternative color space
            var colorSpaceOp = colorSpaceDetails.Values[2].Operand;

            alternativeColorSpace = ColorSpaceActivator.CreateColorSpace(interpreter, colorSpaceOp);

            tintTransformationProcedure = (ArrayOperand)colorSpaceDetails.Values[3].Operand;
        }
Example #2
0
        /// <summary>
        /// Initialize all about graphic
        /// </summary>
        private void InitGraphic()
        {
            ReturnGraphicGroup = new GraphicGroup();
            GraphicGroup       = ReturnGraphicGroup;

            graphicsStateStack = new Stack <GraphicsState>();

            GraphicState = new GraphicsState();
            GraphicState.TransformationMatrix = Matrix.Identity;
            GraphicState.ColorSpace           = ColorSpaceActivator.CreateColorSpace(this, EpsKeys.DeviceGray);

            var values = new List <Operand> {
                new RealOperand(0)
            };                                                      // black

            GraphicState.FillBrush = GraphicState.ColorSpace.GetBrushDescriptor(values,
                                                                                GraphicState.CurrentTransformationMatrix);
        }
        /// <summary>
        /// Init
        /// </summary>
        public void Init(EpsInterpreter interpreter, ArrayOperand colorSpaceDetails)
        {
            this.interpreter       = interpreter;
            this.colorSpaceDetails = colorSpaceDetails;

            var colorSpaceOp = colorSpaceDetails.Values[1].Operand;

            baseColorSpace = ColorSpaceActivator.CreateColorSpace(interpreter, colorSpaceOp);
            hival          = ((IntegerOperand)colorSpaceDetails.Values[2].Operand).Value;

            switch (colorSpaceDetails.Values[3].Operand)
            {
            case StringOperand stringOperand:
                useProcedure = false;
                hexString    = stringOperand.Value;
                break;

            case ArrayOperand arrayOperand:
                useProcedure = true;
                tintTransformationProcedure = arrayOperand;
                break;
            }
        }