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); } }
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); //--------------- } }