コード例 #1
0
ファイル: EncodeTests.cs プロジェクト: As-You-Like/Media
        public void LosslessTest()
        {
            var encode = EncodeParameters.Parse("WebP::encode(lossless:true)");

            Assert.Equal(FormatId.WebP, encode.Format);
            Assert.True(encode.Flags.HasFlag(EncodeFlags.Lossless));
        }
コード例 #2
0
ファイル: EncodeTests.cs プロジェクト: As-You-Like/Media
        public void ProgressiveJpegTest()
        {
            var encode = EncodeParameters.Parse("pjpg::encode");

            Assert.Equal(FormatId.Jpeg, encode.Format);
            Assert.True(encode.Flags.HasFlag(EncodeFlags.Progressive));
        }
コード例 #3
0
ファイル: EncodeTests.cs プロジェクト: As-You-Like/Media
        public void Png32Test()
        {
            var encode = EncodeParameters.Parse("png32::encode");

            Assert.Equal(FormatId.Png, encode.Format);
            Assert.True(encode.Flags.HasFlag(EncodeFlags._32bit));
        }
コード例 #4
0
        private void concatButton_Click(object sender, EventArgs e)
        {
            List <VideoProcess>     recoders            = new List <VideoProcess>();
            List <EncodeParameters> allEncodeParameters = new List <EncodeParameters>();


            for (int i = 0; i < FileManager.Instance.CurrentFiles.Count; i++)
            {
                if (FileManager.Instance.CurrentFiles[i].Selected)
                {
                    EncodeParameters parameters = GetEncodeParameters(FileManager.Instance.CurrentFiles[i]);
                    allEncodeParameters.Add(parameters);
                    recoders.Add(new VideoRecoder(parameters));
                }
            }

            recoders.Add(new VideoConcatenator(GetConcatParameters(allEncodeParameters)));

            WorkerForm worker = new WorkerForm(recoders);

            worker.Load       += Worker_GotFocus;
            worker.FormClosed += Worker_FormClosed;

            worker.Show();
            worker.Start();
        }
コード例 #5
0
ファイル: EncodeTests.cs プロジェクト: As-You-Like/Media
        public void A(string name, FormatId format, string mime)
        {
            var encode = EncodeParameters.Parse($"{name}::encode(quality:95)");

            Assert.Equal(95, encode.Quality);

            var e = EncodeParameters.Parse(encode.Canonicalize());

            Assert.Equal($"{e.Format.Canonicalize()}::encode(quality:95)", encode.Canonicalize());

            Assert.Equal(format, e.Format);

            Assert.Equal(mime, encode.Mime.ToString());
        }
コード例 #6
0
        private MediaTransformation Apply(IProcessor transform)
        {
            if (transform is CropTransform crop)
            {
                var rect = crop.GetRectangle(Size);

                width  = rect.Width;
                height = rect.Height;
            }
            else if (transform is ResizeTransform resize)
            {
                var newSize = resize.CalcuateSize(Size);

                width  = newSize.Width;
                height = newSize.Height;
            }
            else if (transform is ScaleTransform scale)
            {
                width  = scale.Width;
                height = scale.Height;
            }
            else if (transform is RotateTransform rotate)
            {
                // Flip the height & width
                if (rotate.Angle == 90 || rotate.Angle == 270)
                {
                    var oldWidth  = width;
                    var oldHeight = height;

                    width  = oldHeight;
                    height = oldWidth;
                }
            }
            else if (transform is PadTransform pad)
            {
                width  += (pad.Left + pad.Right);
                height += (pad.Top + pad.Bottom);
            }
            else if (transform is EncodeParameters encode)
            {
                encoder = encode;
            }

            this.processors.Add(transform);

            return(this);
        }