/************************************************************************/

        #region Constructors
        /// <summary>
        /// Initializes a new instance of the <see cref="TransformParameters"/> class.
        /// </summary>
        /// <param name="targetSize">The target size.</param>
        /// <param name="pixelFormat">The pixel format. Only PixelFormats.Pbgra32, Bgr24, and Gray8 are supported.</param>
        /// <param name="scalePolicy">Scale policy.</param>
        /// <param name="scaleQuality">Scale quality.</param>
        /// <param name="region">Region of interest, or empty rectangle for all.</param>
        public TransformParameters(Size targetSize, PixelFormat pixelFormat, ScalingPolicy scalePolicy, ScalingQuality scaleQuality, Rectangle region)
        {
            TargetSize   = targetSize;
            PixelFormat  = pixelFormat;
            ScalePolicy  = scalePolicy;
            ScaleQuality = scaleQuality;
            Region       = region;
        }
예제 #2
0
 public TransformParameters(RectangleF regionOfInterest, Size targetFrameSize, ScalingPolicy scalePolicy,
                            PixelFormat targetFormat, ScalingQuality scaleQuality)
 {
     RegionOfInterest = regionOfInterest;
     TargetFrameSize  = targetFrameSize;
     TargetFormat     = targetFormat;
     ScaleQuality     = scaleQuality;
     ScalePolicy      = scalePolicy;
 }
 private static FFmpegScalingQuality ToFFmpegScaleQuality(ScalingQuality scalingQuality)
 {
     return(scalingQuality switch
     {
         ScalingQuality.Nearest => FFmpegScalingQuality.Point,
         ScalingQuality.Bilinear => FFmpegScalingQuality.Bilinear,
         ScalingQuality.FastBilinear => FFmpegScalingQuality.FastBilinear,
         ScalingQuality.Bicubic => FFmpegScalingQuality.Bicubic,
         _ => throw new ArgumentOutOfRangeException(nameof(scalingQuality))
     });
예제 #4
0
        private static FFmpegScalingQuality GetFFmpegScaleQuality(ScalingQuality scalingQuality)
        {
            if (scalingQuality == ScalingQuality.Nearest)
            {
                return(FFmpegScalingQuality.Point);
            }
            if (scalingQuality == ScalingQuality.Bilinear)
            {
                return(FFmpegScalingQuality.Bilinear);
            }
            if (scalingQuality == ScalingQuality.Bicubic)
            {
                return(FFmpegScalingQuality.Bicubic);
            }

            throw new ArgumentOutOfRangeException(nameof(scalingQuality));
        }