void RecreateMaterial(CompositeMode mode)
    {
        _compositeMaterial = null;

        switch (mode)
        {
        case CompositeMode.Additive:
            _compositeMaterial = new Material(_compositeShaders[0]);
            break;

        case CompositeMode.Screen:
            _compositeMaterial = new Material(_compositeShaders[1]);
            break;

        case CompositeMode.Luminance:
            _compositeMaterial = new Material(_compositeShaders[2]);
            break;

        case CompositeMode.Alpha:
            _compositeMaterial = new Material(_compositeShaders[3]);
            break;

        case CompositeMode.Bypass:
            _compositeMaterial = new Material(_compositeShaders[4]);
            break;

        default:
            break;
        }
    }
 public void DrawImage(
     ID2D1Image image,
     InterpolationMode interpolationMode = InterpolationMode.Linear,
     CompositeMode compositeMode         = CompositeMode.SourceOver)
 {
     DrawImage(image, null, null, interpolationMode, compositeMode);
 }
 public void DrawImage(
     ID2D1Image image,
     Vector2 targetOffset,
     InterpolationMode interpolationMode = InterpolationMode.Linear,
     CompositeMode compositeMode         = CompositeMode.SourceOver)
 {
     DrawImage(image, targetOffset, null, interpolationMode, compositeMode);
 }
    void Start()
    {
        SetInputTextures(_input1.GetTexture(), _input2.GetTexture());

        _texture = new RenderTexture(1920, 1080, 24, RenderTextureFormat.ARGB32);

        _prevMode = _compositeMode;
        RecreateMaterial(_compositeMode);
    }
Example #5
0
 private void cccRadioButton_CheckedChanged(object sender, EventArgs e)
 {
     if (cccRadioButton.Checked)
     {
         compositeMode = CompositeMode.CCC;
         SetBarcodeProperties();
         imagePanel.Invalidate();
     }
 }
 public void DrawImage(
     ID2D1Effect effect,
     InterpolationMode interpolationMode = InterpolationMode.Linear,
     CompositeMode compositeMode         = CompositeMode.SourceOver)
 {
     using (var output = effect.Output)
     {
         DrawImage(output, null, null, interpolationMode, compositeMode);
     }
 }
 public Compositer()
 {
     currentMode = CompositeMode.Copy;
 }
 public void setCompositeMode(CompositeMode p)
 {
     currentMode = p;
 }
 public Code128Encoder(Symbology symbology, string barcodeMessage, string compositeMessage, CompositeMode compositeMode, EncodingMode encodingMode)
 {
     this.symbolId          = symbology;
     this.barcodeMessage    = barcodeMessage;
     this.compositeMessage  = compositeMessage;
     this.isCompositeSymbol = !String.IsNullOrEmpty(compositeMessage);
     this.compositeMode     = compositeMode;
     this.encodingMode      = encodingMode;
 }
Example #10
0
 public static void DrawImage(this DeviceContext context, D2DEffect effect, InterpolationMode interpolationMode, CompositeMode compositeMode)
 {
     context.DrawImage(effect.NativeEffect, interpolationMode, compositeMode);
 }
Example #11
0
 public static void DrawImage(this RenderContext context, ID2DImage image, float destX, float destY, float srcX, float srcY, float srcWidth, float srcHeight, InterpolationMode interpolationMode, CompositeMode compositeMode)
 {
     context.RenderTarget.DeviceContext2D.DrawImage(image, destX, destY, srcX, srcY, srcWidth, srcHeight, interpolationMode, compositeMode);
 }
Example #12
0
        public static void AddComposite(Symbology symbology, string message, Collection <SymbolData> encodedLinearData,
                                        CompositeMode compositeMode, int linearSymbolWidth)
        {
            int       dataColumns         = 0;
            int       eccLevel            = 0;
            int       compositeShiftCount = 0;
            int       linearShiftCount    = 0;
            BitVector bitStream;

            hostSymbol  = symbology;
            encodedData = encodedLinearData;
            linearWidth = linearSymbolWidth;

            compositeData = MessagePreProcessor.AIParser(message);
            int inputLength = compositeData.Length;

            if (inputLength > 2990)
            {
                throw new InvalidDataLengthException("2D Component: Input data too long.");
            }

            if ((compositeMode == CompositeMode.CCC) && (symbology != Symbology.Code128))
            {
                throw new DataEncodingException("2D Component: Invalid mode, CC-C only valid with a GS1-128 linear component.");
            }

            switch (symbology)
            {
            // Determine width of 2D component according to ISO/IEC 24723 Table 1.
            case Symbology.EAN8:
                dataColumns      = 3;
                linearShiftCount = 3;
                if (compositeMode == CompositeMode.CCB)
                {
                    linearShiftCount = 13;
                }

                break;

            case Symbology.EAN13:
                dataColumns      = 4;
                linearShiftCount = 2;
                break;

            case Symbology.UPCE:
                dataColumns      = 2;
                linearShiftCount = 2;
                break;

            case Symbology.UPCA:
                dataColumns      = 4;
                linearShiftCount = 3;
                break;

            case Symbology.Code128:
                dataColumns = 4;
                if (compositeMode == CompositeMode.CCC)
                {
                    linearShiftCount = 7;
                }

                break;

            case Symbology.DatabarOmni:
            case Symbology.DatabarTruncated:
                dataColumns      = 4;
                linearShiftCount = 4;
                break;

            case Symbology.DatabarLimited:
                dataColumns         = 3;
                compositeShiftCount = 0;
                break;

            case Symbology.DatabarExpanded:
                dataColumns         = 4;
                compositeShiftCount = 1;
                while ((encodedData[1].GetRowData()[compositeShiftCount - 1] == 0) && (encodedData[1].GetRowData()[compositeShiftCount] == 1))
                {
                    compositeShiftCount++;
                }

                break;

            case Symbology.DatabarStacked:
            case Symbology.DatabarOmniStacked:
                dataColumns         = 2;
                compositeShiftCount = 0;
                break;

            case Symbology.DatabarExpandedStacked:
                dataColumns         = 4;
                compositeShiftCount = 1;
                while ((encodedData[1].GetRowData()[compositeShiftCount - 1] == 0) && (encodedData[1].GetRowData()[compositeShiftCount] == 1))
                {
                    compositeShiftCount++;
                }

                break;
            }

            if (linearShiftCount > 0)
            {
                ShiftLinearHost(linearShiftCount);
            }

            bitStream = BitStreamEncoder.CompositeBitStream(symbology, compositeData, ref compositeMode, ref dataColumns, ref eccLevel, linearWidth);
            if (bitStream == null)
            {
                throw new InvalidDataLengthException();
            }

            switch (compositeMode)
            {
            // Note that eccLevel is only relevant to CC-C.
            case CompositeMode.CCA:
                CompositeA(bitStream, dataColumns, compositeShiftCount);
                break;

            case CompositeMode.CCB:
                CompositeB(bitStream, dataColumns, compositeShiftCount);
                break;

            case CompositeMode.CCC:
                CompositeC(bitStream, dataColumns, eccLevel);
                break;
            }
        }
Example #13
0
        public static void DrawImage(this RenderContext context, Image image, float destX, float destY, float srcX, float srcY, float srcWidth, float srcHeight, InterpolationMode interpolationMode, CompositeMode compositeMode)
        {
            var dstOffset = new RawVector2(destX, destY);
            var srcRect   = new RawRectangleF(srcX, srcY, srcX + srcWidth, srcY + srcHeight);

            context.RenderTarget.DeviceContext2D.DrawImage(image, dstOffset, srcRect, interpolationMode, compositeMode);
        }
Example #14
0
        public static void DrawImage(this RenderContext context, Image image, float destX, float destY, InterpolationMode interpolationMode, CompositeMode compositeMode)
        {
            var dstOffset = new RawVector2(destX, destY);

            context.RenderTarget.DeviceContext2D.DrawImage(image, dstOffset, null, interpolationMode, compositeMode);
        }
Example #15
0
        public static void DrawImage(this DeviceContext context, D2DEffect effect, float destX, float destY, InterpolationMode interpolationMode, CompositeMode compositeMode)
        {
            var dstOffset = new RawVector2(destX, destY);

            context.DrawImage(effect.NativeEffect, dstOffset, interpolationMode, compositeMode);
        }
Example #16
0
 /// <unmanaged>HRESULT ID2D1CommandSink::DrawImage([In] ID2D1Image* image,[In, Optional] const D2D_POINT_2F* targetOffset,[In, Optional] const D2D_RECT_F* imageRectangle,[In] D2D1_INTERPOLATION_MODE interpolationMode,[In] D2D1_COMPOSITE_MODE compositeMode)</unmanaged>
 public void DrawImage(Image image, RawVector2?targetOffset, RawRectangleF?imageRectangle, InterpolationMode interpolationMode, CompositeMode compositeMode)
 {
     DrawImage_(image, targetOffset, imageRectangle, interpolationMode, compositeMode);
 }
Example #17
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="source"></param>
        /// <param name="target"></param>
        /// <param name="compose"></param>
        /// <returns></returns>
        private async Task <MagickImage> Compare(MagickImage source, MagickImage target, bool compose = false)
        {
            MagickImage result = null;
            await Dispatcher.InvokeAsync(async() =>
            {
                var st  = Stopwatch.StartNew();
                var tip = new List <string>();
                try
                {
                    if (source is MagickImage && target is MagickImage)
                    {
                        var fuzzy = Math.Min(Math.Max(ImageCompareFuzzy.Minimum, ImageCompareFuzzy.Value), ImageCompareFuzzy.Maximum);
                        if (source.ColorFuzz.ToDouble() != fuzzy)
                        {
                            source.ColorFuzz = new Percentage(fuzzy);
                        }
                        if (target.ColorFuzz.ToDouble() != fuzzy)
                        {
                            target.ColorFuzz = new Percentage(fuzzy);
                        }

                        if (compose)
                        {
                            using (MagickImage diff = new MagickImage(target.Clone()))
                            {
                                diff.Composite(source, CompositeMode, CompareImageChannels);
                                tip.Add($"{"ResultTipMode".T()} {CompositeMode.ToString()}");
                                result = new MagickImage(diff);
                                await Task.Delay(1);
                                DoEvents();
                            }
                        }
                        else
                        {
                            using (MagickImage diff = new MagickImage())
                            {
                                var setting = new CompareSettings()
                                {
                                    Metric         = ErrorMetricMode,
                                    HighlightColor = HighlightColor,
                                    LowlightColor  = LowlightColor,
                                    MasklightColor = MasklightColor
                                };
                                var distance = source.Compare(target, setting, diff, CompareImageChannels);
                                tip.Add($"{"ResultTipMode".T()} {ErrorMetricMode.ToString()}");
                                tip.Add($"{"ResultTipDifference".T()} {distance:F4}");
                                result = new MagickImage(diff);
                                //result.Comment = "NetCharm Created";
                                await Task.Delay(1);
                                DoEvents();
                            }
                        }
                    }
                }
                catch (Exception ex) { ex.ShowMessage(); }
                finally
                {
                    st.Stop();
                    tip.Add($"{"ResultTipElapsed".T()} {TimeSpan.FromTicks(st.ElapsedTicks).TotalSeconds:F4} s");
                    if (compose)
                    {
                        ImageCompose.ToolTip = tip.Count > 1 ? string.Join(Environment.NewLine, tip) : DefaultComposeToolTip;
                        ImageCompare.ToolTip = DefaultCompareToolTip;
                    }
                    else
                    {
                        ImageCompare.ToolTip = tip.Count > 1 ? string.Join(Environment.NewLine, tip) : DefaultCompareToolTip;
                        ImageCompose.ToolTip = DefaultComposeToolTip;
                    }
                }
            }, DispatcherPriority.Render);

            return(result);
        }
Example #18
0
 /// <unmanaged>HRESULT ID2D1CommandSink::DrawImage([In] ID2D1Image* image,[In, Optional] const D2D_POINT_2F* targetOffset,[In, Optional] const D2D_RECT_F* imageRectangle,[In] D2D1_INTERPOLATION_MODE interpolationMode,[In] D2D1_COMPOSITE_MODE compositeMode)</unmanaged>	
 public void DrawImage(Image image, RawVector2? targetOffset, RawRectangleF? imageRectangle, InterpolationMode interpolationMode, CompositeMode compositeMode)
 {
     DrawImage_(image, targetOffset, imageRectangle, interpolationMode, compositeMode);
 }
Example #19
0
        public static void DrawImageStripUnit(this RenderContext context, D2DImageStrip2D imageStrip, int index, float destX, float destY, InterpolationMode interpolationMode, CompositeMode compositeMode)
        {
            if (index < 0 || index >= imageStrip.Count)
            {
                throw new ArgumentOutOfRangeException(nameof(index), index, null);
            }
            var srcRect = GetSourceRect(imageStrip, index);

            context.DrawImage(imageStrip, destX, destY, srcRect.X, srcRect.Y, srcRect.Width, srcRect.Height, interpolationMode, compositeMode);
        }
Example #20
0
 public static void DrawImage(this RenderContext context, D2DEffect effect, float destX, float destY, InterpolationMode interpolationMode, CompositeMode compositeMode)
 {
     context.RenderTarget.DeviceContext2D.DrawImage(effect, destX, destY, interpolationMode, compositeMode);
 }
Example #21
0
        public static void DrawImage(this DeviceContext context, ID2DImage image, float destX, float destY, InterpolationMode interpolationMode, CompositeMode compositeMode)
        {
            var dstOffset = new RawVector2(destX, destY);

            context.DrawImage(image.NativeImage, dstOffset, null, interpolationMode, compositeMode);
        }