internal static ShapeCollection CreateForSlide(SlidePart slidePart, SCSlide slide)
        {
            var phService           = new PlaceholderService(slidePart.SlideLayoutPart);
            var transformFactory    = new LocationParser(phService);
            var geometryFactory     = new GeometryFactory(phService);
            var shapeContextBuilder = new ShapeContext.Builder(slidePart);

            var chartGrFrameHandler  = new ChartGraphicFrameHandler();
            var tableGrFrameHandler  = new TableGraphicFrameHandler(shapeContextBuilder, transformFactory);
            var oleGrFrameHandler    = new OleGraphicFrameHandler(shapeContextBuilder, transformFactory);
            var pShapeHandler        = new AutoShapeCreator(shapeContextBuilder, transformFactory);
            var pictureHandler       = new PictureHandler(shapeContextBuilder, transformFactory, geometryFactory);
            var sdkGroupShapeHandler =
                new PGroupShapeHandler(shapeContextBuilder, transformFactory, geometryFactory, slidePart);

            pShapeHandler.Successor        = sdkGroupShapeHandler;
            sdkGroupShapeHandler.Successor = oleGrFrameHandler;
            oleGrFrameHandler.Successor    = pictureHandler;
            pictureHandler.Successor       = chartGrFrameHandler;
            chartGrFrameHandler.Successor  = tableGrFrameHandler;

            P.ShapeTree shapeTree = slidePart.Slide.CommonSlideData.ShapeTree;
            var         shapes    = new List <IShape>(shapeTree.Count());

            foreach (OpenXmlCompositeElement compositeElement in shapeTree.OfType <OpenXmlCompositeElement>())
            {
                IShape shape = pShapeHandler.Create(compositeElement, slide);
                if (shape != null)
                {
                    shapes.Add(shape);
                }
            }

            return(new ShapeCollection(shapes));
        }
Beispiel #2
0
        /// <summary>
        /// Creates collection of the shapes from sdk shape tree.
        /// </summary>
        /// <param name="sdkShapeTree"></param>
        /// <returns></returns>
        public IList <ShapeEx> FromTree(P.ShapeTree sdkShapeTree)
        {
            var sldPhFontService = new SlidePlaceholderFontService(_sdkSldPart);
            var phService        = new PlaceholderService(_sdkSldPart.SlideLayoutPart);
            var transformFactory = new InnerTransformFactory(phService);
            var shapeBuilder     = new ShapeEx.Builder();

            var sdkShapeHandler      = new SdkShapeHandler(_preSettings, sldPhFontService, _sdkSldPart, transformFactory, shapeBuilder);
            var sdkGroupShapeHandler = new SdkGroupShapeHandler(_preSettings, sldPhFontService, _sdkSldPart, transformFactory, shapeBuilder);
            var oleGrFrameHandler    = new OleGraphicFrameHandler(_preSettings, sldPhFontService, _sdkSldPart, transformFactory, shapeBuilder);
            var pictureHandler       = new PictureHandler(_preSettings, sldPhFontService, _sdkSldPart, transformFactory, shapeBuilder);
            var chartGrFrameHandler  = new ChartGraphicFrameHandler(_preSettings, sldPhFontService, _sdkSldPart, transformFactory, shapeBuilder);
            var tableGrFrameHandler  = new TableGraphicFrameHandler(_preSettings, sldPhFontService, _sdkSldPart, transformFactory, shapeBuilder);

            sdkShapeHandler.Successor      = sdkGroupShapeHandler;
            sdkGroupShapeHandler.Successor = oleGrFrameHandler;
            // OLE objects handler must be before pictures handler, cause OLE container can contain p:pic elements, thereby defining OLE as a picture
            oleGrFrameHandler.Successor   = pictureHandler;
            pictureHandler.Successor      = chartGrFrameHandler;
            chartGrFrameHandler.Successor = tableGrFrameHandler;

            var shapes = new List <ShapeEx>(sdkShapeTree.Count());

            foreach (var openXmlElement in sdkShapeTree)
            {
                var shape = sdkShapeHandler.Create(openXmlElement);
                if (shape != null)
                {
                    shapes.Add(shape);
                }
            }

            return(shapes);
        }
Beispiel #3
0
        private async void OnDeferredImageRequestedHandler(DataProviderRequest request, DataPackage dp)
        {
            DataProviderDeferral deferral = request.GetDeferral();

            try
            {
                StorageFile img = await PictureHandler.AsStorageFile(Items.SelectedItem.Pixels, "ToShare.jpg");

                if (img != null)
                {
                    List <IStorageFile> imageItems = new List <IStorageFile>
                    {
                        img
                    };
                    dp.SetStorageItems(imageItems);

                    RandomAccessStreamReference imageStreamRef = RandomAccessStreamReference.CreateFromFile(img);
                    dp.Properties.Thumbnail = imageStreamRef;
                    dp.SetBitmap(imageStreamRef);
                }
            }
            catch (Exception e)
            {
                throw e;
            }
            deferral.Complete();
        }
        public void ProcessImage(PictureHandler sourceImage, PictureHandler targetImage)
        {
            var   source = sourceImage.Clone() as PictureHandler;
            Color eCol, bOw, c;
            byte  e;
            float error;
            int   i, j;

            for (int x = 0; x < source.PixelWidth; x++)
            {
                for (int y = 0; y < source.PixelHeight; y++)
                {
                    c   = source[x, y];
                    bOw = c.BlacOrWite();
                    targetImage[x, y] = bOw;
                    error             = c.R - targetImage[x, y].R;
                    e    = (byte)Math.Abs(error);
                    eCol = Color.FromRgb(e, e, e);
                    for (i = -1; i < 2; i++)
                    {
                        for (j = -1; j < 2; j++)
                        {
                            if (error > 0)
                            {
                                source[x + i, y + j] = Color.Add(source[x + i, y + j], Color.Multiply(eCol, filter[i + 1, j + 1]));
                            }
                            else
                            {
                                source[x + i, y + j] = Color.Subtract(source[x + i, y + j], Color.Multiply(eCol, filter[i + 1, j + 1]));
                            }
                        }
                    }
                }
            }
        }
Beispiel #5
0
        private void MainViewModel_AddPictureStarted(object sender, PictureEventArgs e)
        {
            try
            {
                // egy dialógusablakban bekérjük a fájlnevet
                OpenFileDialog dialog = new OpenFileDialog();
                dialog.CheckFileExists  = true;
                dialog.Filter           = "Képfájlok|*.jpg;*.jpeg;*.bmp;*.tif;*.gif;*.png;";
                dialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures);
                Boolean?result = dialog.ShowDialog();

                if (result == true)
                {
                    // kép létrehozása (a megfelelő méretekkel)

                    var test = new PictureDTO
                    {
                        ArticleId = e.ArticleId,
                        Image     = PictureHandler.OpenAndResize(dialog.FileName, 100)
                    };

                    //_service.AddImageAsync(test);
                    _mainViewModel.Pictures.Add(test);
                    _editorView.DataContext = _mainViewModel;
                    _editorView.Show();
                }
            }
            catch { }
        }
Beispiel #6
0
        // GET: Pictures
        public async Task <ActionResult> Index()
        {
            var pictures = await PictureHandler.GetPicturesAsync();

            ViewBag.Message = (string)TempData["Message"];
            return(View(pictures));
        }
Beispiel #7
0
        /// <summary>
        /// 填充数据
        /// </summary>
        /// <param name="picture"></param>
        public static bool FillPictureInfo(PictureModel picture)
        {
            var info = PictureHandler.GetInnerInfo(picture.EPath);

            if (info == null)
            {
                return(false);
            }

            picture.ETags1       = info.Tag1;
            picture.ETags2       = info.Tag2;
            picture.EDescription = info.Description;
            picture.EId          = info.Author;

            var img = Image.FromFile(picture.EPath);

            picture.EWidth  = img.Width;
            picture.EHeight = img.Height;
            img.Dispose();

            DateTime time;
            var      s = DateTime.TryParseExact(info.TakeTime,
                                                "yyyy:MM:dd HH:mm:ss",
                                                System.Globalization.CultureInfo.InvariantCulture,
                                                System.Globalization.DateTimeStyles.None,
                                                out time);

            picture.ETakeTime = time;

            return(true);
        }
Beispiel #8
0
 public void Setup()
 {
     source         = Substitute.For <IPrincipal>();
     pictureHandler = Substitute.For <PictureHandler>();
     SetupConfiguration();
     sut = new PrincipalMapper(configuration, pictureHandler);
 }
        public bool LoadPicture(string path)
        {
            SourcePicture = ImageHelper.GetPictureHandler(path);
            var res = SourcePicture != null;

            Apply(res);
            return(res);
        }
        public bool LoadPicture(BitmapSource source)
        {
            SourcePicture = ImageHelper.GetPictureHandler(source);
            var res = SourcePicture != null;

            Apply(res);
            return(res);
        }
Beispiel #11
0
        // GET: Pictures/Create
        public async Task <ActionResult> Create()
        {
            var viewModel = new PictureGroup();

            viewModel.Categories = await PictureHandler.GetCategoriesAsync();

            viewModel.Formats = new string[] { "Album", "News" };
            return(View(viewModel));
        }
        public void Test_SavePicturesToGlobalFolder()
        {
            PictureService pictureService = new PictureService(2, EType.Instructions);
            List<Picture> pictures = pictureService.GetPictures();

            Assert.AreEqual(1, pictureService.GetSize());

            PictureHandler pictureHandler = new PictureHandler(pictures);
            pictureHandler.SavePictures();
        }
 private void Apply(bool loaded)
 {
     if (loaded)
     {
         TargetPicture      = SourcePicture?.Clone() as PictureHandler;
         bmp                = new WriteableBitmap(TargetPicture?.CreateBitmapSourceHandler());
         TargetImage.Source = bmp;
         Apply();
     }
 }
 public void ProcessImage(PictureHandler sourceImage, PictureHandler targetImage)
 {
     for (int x = 0; x < sourceImage.PixelWidth; x++)
     {
         for (int y = 0; y < sourceImage.PixelHeight; y++)
         {
             targetImage[x, y] = sourceImage[x, y].BlacOrWite(Threshold);
         }
     }
 }
        public void Test_LoadPictures_NoPictureChosen()
        {
            PictureService pictureService = new PictureService(10, EType.Instructions);
            List<Picture> pictures = pictureService.GetPictures();

            Assert.AreEqual(0, pictureService.GetSize());

            PictureHandler pictureHandler = new PictureHandler(pictures);
            pictureHandler.LoadPictures();
        }
        public void Test_LoadPictures_NotACorrectPath()
        {
            PictureService pictureService = new PictureService(2, EType.Instructions);
            List<Picture> pictures = pictureService.GetPictures();

            Assert.AreEqual(1, pictureService.GetSize());

            PictureHandler pictureHandler = new PictureHandler(pictures);
            pictureHandler.LoadPictures();
        }
Beispiel #17
0
 public void ProcessImage(PictureHandler sourceImage, PictureHandler targetImage)
 {
     for (int x = 0; x < sourceImage.PixelWidth; x++)
     {
         for (int y = 0; y < sourceImage.PixelHeight; y++)
         {
             targetImage[x, y] = TransformFunc(sourceImage[x, y]);
         }
     }
 }
        private ServiceFacade()
        {
            DBHelper dbHelper = new DBHelper("dbHelper");

            this.userHandler     = new UserHandler(dbHelper);
            this.topicHandler    = new TopicHandler(dbHelper);
            this.issueHandler    = new IssueHandler(dbHelper);
            this.solutionHandler = new SolutionHandler(dbHelper);
            this.pictureHandler  = new PictureHandler(dbHelper);
            //this.itemHandler = new ItemHandler(dbHelper);
        }
Beispiel #19
0
 public void ProcessImage(PictureHandler sourceImage, PictureHandler targetImage)
 {
     for (int x = 0; x < sourceImage.PixelWidth; x++)
     {
         for (int y = 0; y < sourceImage.PixelHeight; y++)
         {
             Color c     = sourceImage[x, y];
             byte  color = (byte)((c.R + c.G + c.B) / 3);
             targetImage[x, y] = Color.FromArgb(255, color, color, color);
         }
     }
 }
Beispiel #20
0
 public PrincipalMapper(IConfiguration configuration, PictureHandler pictureHandler)
 {
     if (configuration == null)
     {
         throw new ArgumentNullException(nameof(configuration));
     }
     if (pictureHandler == null)
     {
         throw new ArgumentNullException(nameof(pictureHandler));
     }
     this.configuration  = configuration;
     this.pictureHandler = pictureHandler;
 }
Beispiel #21
0
        private IScrapedElement GetContent(HtmlDocument htmlDoc)
        {
            var textHandler     = new TextHandler();
            var pictureHandler  = new PictureHandler();
            var passwordHandler = new PasswordHandler();
            var deletedHandler  = new DeletedHandler();

            textHandler.SetNext(pictureHandler)
            .SetNext(passwordHandler)
            .SetNext(deletedHandler);

            return(textHandler.Handle(htmlDoc, "Content"));
        }
        public void ProcessImage(PictureHandler sourceImage, PictureHandler targetImage)
        {
            byte b = 255;

            for (int x = 0; x < sourceImage.PixelWidth; x++)
            {
                for (int y = 0; y < sourceImage.PixelHeight; y++)
                {
                    Color c = sourceImage[x, y];
                    targetImage[x, y] = Color.FromRgb((byte)(b - c.R), (byte)(b - c.G), (byte)(b - c.B));
                }
            }
        }
        public async Task <ActionResult> Delete(int id, libraryNaturguiden.PictureCategory category)
        {
            try
            {
                await PictureHandler.DeleteCategoryAsync(id);

                return(RedirectToAction("Index"));
            }
            catch (Exception e)
            {
                ViewBag.Error = e.Message;
                return(View());
            }
        }
Beispiel #24
0
        public async Task <ActionResult> Delete(int id, libraryNaturguiden.Picture picture)
        {
            try
            {
                var status = await PictureHandler.DeletePictureAsync(id);

                TempData["Message"] = status.ToString();
                return(RedirectToAction("Index"));
            }
            catch (Exception e)
            {
                ViewBag.Error = e.Message;
                return(View());
            }
        }
Beispiel #25
0
        public static void ReducePicture(PictureModel picture, int width)
        {
            var targetPath = new FileInfo(picture.EPath).DirectoryName + "\\snapshot";

            if (!System.IO.Directory.Exists(targetPath))
            {
                System.IO.Directory.CreateDirectory(targetPath);
            }

            var target = targetPath + "\\" + "snapshot_" + picture.EName;

            var success = PictureHandler.GetReducedImage(picture.EPath, width, target);

            picture.ESnapshotPath = target;
        }
Beispiel #26
0
        public void ProcessImage(PictureHandler sourceImage, PictureHandler targetImage)
        {
            var minmax = sourceImage.Imax - sourceImage.Imin;
            var cr     = (float)255 / minmax.R;
            var cg     = (float)255 / minmax.G;
            var cb     = (float)255 / minmax.B;

            for (int x = 0; x < sourceImage.PixelWidth; x++)
            {
                for (int y = 0; y < sourceImage.PixelHeight; y++)
                {
                    var c = (sourceImage[x, y] - sourceImage.Imin);
                    targetImage[x, y] = Color.FromRgb((byte)(c.R * cr), (byte)(c.G * cg), (byte)(c.B * cb));
                }
            }
        }
Beispiel #27
0
 public void ProcessImage(PictureHandler sourceImage, PictureHandler targetImage)
 {
     for (int x = 0; x < sourceImage.PixelWidth; x++)
     {
         for (int y = 0; y < sourceImage.PixelHeight; y++)
         {
             var c1 = sourceImage[x, y];
             int cr = c1.R + OffSet;
             int r  = cr > 255 ? 255 : cr < 0 ? 0 : cr;
             int cg = c1.G + OffSet;
             int g  = cg > 255 ? 255 : cg < 0 ? 0 : cg;
             int cb = c1.B + OffSet;
             int b  = cb > 255 ? 255 : cb < 0 ? 0 : cb;
             targetImage[x, y] = Color.FromRgb((byte)r, (byte)g, (byte)b);
         }
     }
 }
        public async Task <ActionResult> Edit(int id, libraryNaturguiden.PictureCategory category)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var status = await PictureHandler.UpdateCategoryAsync(category);

                    return(RedirectToAction("Index"));
                }
                catch (Exception e)
                {
                    ViewBag.Error = e.Message;
                    return(View());
                }
            }
            ViewBag.Error = "One or more fields was not filled in correctley";
            return(View(category));
        }
Beispiel #29
0
        public async Task <ActionResult> Edit(int id, libraryNaturguiden.Picture picture)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var status = await PictureHandler.UpdatePictureAsync(picture);

                    TempData["Message"] = status.ToString();
                    return(RedirectToAction("Index"));
                }
                catch (Exception e)
                {
                    ViewBag.Error = e.Message;
                    return(View());
                }
            }
            ViewBag.Error = "One or more fields was not filled in correctley";
            return(View(picture));
        }
        public void ProcessImage(PictureHandler sourceImage, PictureHandler targetImage)
        {
            float pixelCount = sourceImage.PixelHeight * sourceImage.PixelWidth;

            float[] cdfR = new float[256];
            float[] cdfG = new float[256];
            float[] cdfB = new float[256];

            float r, g, b;

            sourceImage.GetHistogramDataFor(0, out r, out g, out b);
            cdfR[0] = r;
            cdfG[0] = g;
            cdfB[0] = b;

            for (int i = 1; i < 256; i++)
            {
                sourceImage.GetHistogramDataFor(i, out r, out g, out b);
                cdfR[i] = cdfR[i - 1] + r;
                cdfG[i] = cdfG[i - 1] + g;
                cdfB[i] = cdfB[i - 1] + b;
            }

            float denominatorR = pixelCount - cdfR[0];
            float denominatorG = pixelCount - cdfG[0];
            float denominatorB = pixelCount - cdfB[0];

            for (int x = 0; x < sourceImage.PixelWidth; x++)
            {
                for (int y = 0; y < sourceImage.PixelHeight; y++)
                {
                    Color c  = sourceImage[x, y];
                    int   rr = (int)((cdfR[c.R] - cdfR[0]) / denominatorR * 255);
                    int   gg = (int)((cdfG[c.G] - cdfR[0]) / denominatorG * 255);
                    int   bb = (int)((cdfB[c.B] - cdfR[0]) / denominatorB * 255);
                    targetImage[x, y] = Color.FromRgb((byte)MathHelper.Limit(rr), (byte)MathHelper.Limit(gg), (byte)MathHelper.Limit(bb));
                }
            }
        }
Beispiel #31
0
        public async Task <ActionResult> Create(PictureGroup model)
        {
            var img = WebImage.GetImageFromRequest();

            if (ModelState.IsValid && img != null)
            {
                try
                {
                    var status = await PictureHandler.CreatePictureAsync(model.Picture, img);

                    TempData["Message"] = status.ToString();
                    return(RedirectToAction("Index"));
                }
                catch (Exception e)
                {
                    ViewBag.Error = e.Message;
                    return(View(model));
                }
            }
            ViewBag.Error = "One or more fields was not filled in correctley";
            return(View(model));
        }
Beispiel #32
0
        public IList <ShapeEx> FromSldPart(SlidePart sdkSldPart)
        {
            var sldPhFontService    = new PlaceholderFontService(sdkSldPart); //TODO: make DI
            var phService           = new PlaceholderLocationService(sdkSldPart.SlideLayoutPart);
            var transformFactory    = new InnerTransformFactory(phService);
            var geometryFactory     = new GeometryFactory(phService);
            var shapeContextBuilder = new ShapeContext.Builder(_preSettings, sldPhFontService, sdkSldPart);

            var chartGrFrameHandler  = new ChartGraphicFrameHandler(shapeContextBuilder, transformFactory);
            var tableGrFrameHandler  = new TableGraphicFrameHandler(shapeContextBuilder, transformFactory);
            var oleGrFrameHandler    = new OleGraphicFrameHandler(shapeContextBuilder, transformFactory);
            var sdkShapeHandler      = new SdkShapeHandler(shapeContextBuilder, transformFactory, geometryFactory);
            var pictureHandler       = new PictureHandler(shapeContextBuilder, transformFactory, geometryFactory, sdkSldPart);
            var sdkGroupShapeHandler = new SdkGroupShapeHandler(shapeContextBuilder, transformFactory, geometryFactory, sdkSldPart);

            sdkShapeHandler.Successor      = sdkGroupShapeHandler;
            sdkGroupShapeHandler.Successor = oleGrFrameHandler;
            // OLE objects handler must be before pictures handler, cause OLE container can contain p:pic elements,
            // thereby defining OLE as a picture
            oleGrFrameHandler.Successor   = pictureHandler;
            pictureHandler.Successor      = chartGrFrameHandler;
            chartGrFrameHandler.Successor = tableGrFrameHandler;

            var sdkShapeTree = sdkSldPart.Slide.CommonSlideData.ShapeTree;
            var shapes       = new List <ShapeEx>(sdkShapeTree.Count());

            foreach (var openXmlElement in sdkShapeTree)
            {
                var shape = sdkShapeHandler.Create(openXmlElement);
                if (shape != null)
                {
                    shapes.Add(shape);
                }
            }

            return(shapes);
        }
Beispiel #33
0
        /// <summary>
        /// 在应用程序由最终用户正常启动时进行调用。
        /// 将在启动应用程序以打开特定文件等情况下使用。
        /// </summary>
        /// <param name="e">有关启动请求和过程的详细信息。</param>
        protected override async void OnLaunched(LaunchActivatedEventArgs e)
        {
            Frame rootFrame = Window.Current.Content as Frame;

            //初始化默认图片
            await PictureHandler.SetDefaultPixels();

            //初始化数据库
            SQLiteService.InitializeDatabase();

            //Load DB
            VM.Init();

            //磁贴
            TileService.CreateTile();

            // 不要在窗口已包含内容时重复应用程序初始化,
            // 只需确保窗口处于活动状态
            if (rootFrame == null)
            {
                // 创建要充当导航上下文的框架,并导航到第一页
                rootFrame = new Frame();

                rootFrame.NavigationFailed += OnNavigationFailed;

                if (e.PreviousExecutionState == ApplicationExecutionState.Terminated)
                {
                    //TODO: 从之前挂起的应用程序加载状态
                    if (ApplicationData.Current.LocalSettings.Values.ContainsKey("NavigationState"))
                    {
                        rootFrame.SetNavigationState((string)ApplicationData.Current.LocalSettings.Values["NavigationState"]);
                    }
                }
                else
                {
                    ApplicationData.Current.LocalSettings.Values.Clear();
                }

                // 将框架放在当前窗口中
                Window.Current.Content = rootFrame;
            }

            if (e.PrelaunchActivated == false)
            {
                if (rootFrame.Content == null)
                {
                    // 当导航堆栈尚未还原时,导航到第一页,
                    // 并通过将所需信息作为导航参数传入来配置
                    // 参数
                    rootFrame.Navigate(typeof(MainPage), e.Arguments);
                }

                // 确保当前窗口处于活动状态
                Window.Current.Activate();
            }

            //挂起后恢复
            SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility =
                rootFrame.CanGoBack ? AppViewBackButtonVisibility.Visible : AppViewBackButtonVisibility.Collapsed;

            //是否加入返回键
            rootFrame.Navigated += OnNavagated;

            //返回事件
            SystemNavigationManager.GetForCurrentView().BackRequested += OnBackRequested;

            CustomSetting.LoadBg();
        }