Exemplo n.º 1
0
        void RunSampleA(PixelFarm.Drawing.Painter p)
        {
            //1. create simple vertical line to test agg's lcd rendernig technique
            //create gray-scale actual image
            using (MemBitmap glyphBmp = new MemBitmap(100, 100))
            {
                int x = 10, y = 10;
                using (Tools.BorrowAggPainter(glyphBmp, out var painter))
                {
                    painter.StrokeColor = PixelFarm.Drawing.Color.Black;
                    painter.StrokeWidth = 2.0f * 3;
                    painter.DrawLine(x * 3, 0, y * 3, 20); //scale horizontal 3 times, s
                }


                //painter.Line(x * 3, 0, y * 3, 20); //scale horizontal 3 times,
                //painter.Line(2, 0, 2, 15);
                //painter.Line(2, 0, 20, 20);
                //painter.Line(2, 0, 30, 15);
                //painter.Line(2, 0, 30, 5);
                //clear surface bg
                p.Clear(PixelFarm.Drawing.Color.White);
                //draw img into that bg
                //---------------
                //convert glyphImg from RGBA to grey Scale buffer
                //---------------
                //lcd process ...
                byte[] glyphGreyScale         = CreateGreyScaleBuffer(glyphBmp);
                //---------------

                //swap gray scale
                int    newGreyImgStride;
                byte[] expanedGreyScaleBuffer = CreateNewExpandedLcdGrayScale(glyphGreyScale, glyphBmp.Width, glyphBmp.Height, out newGreyImgStride);

                //blend lcd
                var aggPainer                 = (PixelFarm.CpuBlit.AggPainter)p;
                Blend(aggPainer.RenderSurface.DestBitmap, expanedGreyScaleBuffer, newGreyImgStride, glyphBmp.Height);
                //---------------
                p.DrawImage(glyphBmp, 0, 50);
            }
        }
Exemplo n.º 2
0
 void RunSampleB(PixelFarm.Drawing.Painter p)
 {
     //version 2:
     //1. create simple vertical line to test agg's lcd rendernig technique
     //create gray-scale actual image
     using (MemBitmap glyphBmp = new MemBitmap(100, 100))
     {
         AggPainter painter = AggPainter.Create(glyphBmp);
         //
         painter.StrokeColor = PixelFarm.Drawing.Color.Black;
         painter.StrokeWidth = 2.0f;
         painter.DrawLine(2, 0, 3, 15); //not need to scale3
                                        //
                                        //clear surface bg
         p.Clear(PixelFarm.Drawing.Color.White);
         //--------------------------
         var aggPainer = (PixelFarm.CpuBlit.AggPainter)p;
         BlendWithLcdTechnique(aggPainer.RenderSurface.DestBitmap, glyphBmp, PixelFarm.Drawing.Color.Black);
         //---------------
         p.DrawImage(glyphBmp, 0, 50);
         //---------------
     }
 }