public ImageSharpRenderer(int frameWidth, int frameHeight, VideoTrack videoTrack)
        {
            VideoTrack = videoTrack;

            using (var background = Image.Load <PixelColor>("background-small.jpg"))
            {
                background.Mutate(ctx => ctx.Resize(frameWidth, frameHeight));

                // Pre-created bouncing ball frames.
                // ImageSharp is not that fast yet, and our goal is to benchmark webrtc and NvEnc, not ImageSharp.
                var ballRadius = background.Width / 20f;
                var ballPath   = new EllipsePolygon(0, 0, ballRadius);
                var ballColor  = new PixelColor(255, 255, 128);

                for (int i = 0; i < FrameCount; ++i)
                {
                    // ReSharper disable once AccessToDisposedClosure
                    var image = background.Clone();

                    var a = Math.PI * i / FrameCount;
                    var h = image.Height - ballRadius;
                    var y = image.Height - (float)(Math.Abs(Math.Sin(a) * h));

                    image.Mutate(ctx => ctx
                                 .Fill(GraphicsOptions.Default, ballColor, ballPath.Translate(image.Width / 2f, y)));

                    _videoFrames.Add(image);
                }
            }
        }
Пример #2
0
 public void FromBgra32(Bgra32 source) => this.FromScaledVector4(source.ToScaledVector4());
Пример #3
0
 public void PackFromBgra32(Bgra32 source)
 {
     this.PackFromVector4(source.ToVector4());
 }
Пример #4
0
 public void FromBgra32(Bgra32 source)
 {
     this.R = ImageMaths.UpscaleFrom8BitTo16Bit(source.R);
     this.G = ImageMaths.UpscaleFrom8BitTo16Bit(source.G);
     this.B = ImageMaths.UpscaleFrom8BitTo16Bit(source.B);
 }
Пример #5
0
 public void FromBgra32(Bgra32 source)
 {
     this.R = ColorNumerics.UpscaleFrom8BitTo16Bit(source.R);
     this.G = ColorNumerics.UpscaleFrom8BitTo16Bit(source.G);
     this.B = ColorNumerics.UpscaleFrom8BitTo16Bit(source.B);
 }
Пример #6
0
 public void FromBgra32(Bgra32 source) => this.FromVector4(source.ToVector4());
Пример #7
0
 public void PackFromBgra32(Bgra32 source)
 {
     this.PackedValue = source.A;
 }
Пример #8
0
 public void FromBgra32(Bgra32 source)
 {
     this.R = source.R;
     this.G = source.G;
     this.B = source.B;
 }
Пример #9
0
 public void PackFromBgra32(Bgra32 source)
 {
     this.backingVector = source.ToVector4();
 }