示例#1
0
 public void Dispose()
 {
     if (_session != null)
     {
         _session.Dispose();
     }
 }
        async void setInput(Stream s)
        {
            //Dispose old session ressources.
            if (session != null)
            {
                session.Dispose();
                session = null;
            }
            //reset stream position
            s.Seek(0, SeekOrigin.Begin);
            //create a session
            var tmpsession = await EditingSessionFactory.CreateEditingSessionAsync(s);

            tmpsession.AddFilter(FilterFactory.CreateCropFilter(new Rect(0, 0, 1, 1)));
            var foo = await tmpsession.RenderToJpegAsync();

            tmpsession.UndoAll();
            session = tmpsession;

            inputSize = new Size()
            {
                Width = session.Dimensions.Width, Height = session.Dimensions.Height
            };
            currentPos = new Point(session.Dimensions.Width / 2, session.Dimensions.Height / 2);
            if (session.Dimensions.Width > session.Dimensions.Height)
            {
                currentScale = output.Height / session.Dimensions.Height;
            }
            else
            {
                currentScale = output.Width / session.Dimensions.Width;
            }
            currentAngle = 0.0;
            saveLastPossaveLastPositionData();
            requestProcessing();
        }