Esempio n. 1
0
        async void ImportFile(StorageFile file)
        {
            try
            {
                var    editNeeded = false;
                double width = 0, height = 0;
                var    decoder = await BitmapDecoder.CreateAsync(await file.OpenReadAsync());

                width  = decoder.PixelWidth;
                height = decoder.PixelHeight;
                var wRatio = AspectRatioHelper.GetAspectRatioForMedia(width, height);
                var hRatio = AspectRatioHelper.GetAspectRatioForMedia(height, width);
                //if (wRatio > 1.91 && wRatio < 0.8)
                //    editNeeded = true;
                //else
                //{
                //    if (hRatio > 1.91 && hRatio < 0.8)
                //        editNeeded = true;
                //}
                //if (height > width)
                editNeeded = true;

                if (!editNeeded)
                {
                    CropGrid.Visibility    = Visibility.Visible;
                    ImageView.Visibility   = Visibility.Collapsed;
                    UploadButton.IsEnabled = false;

                    AspectRatioSlider.Value  = wRatio;
                    ImageCropper.AspectRatio = wRatio;
                    ImageCropper.CropShape   = CropShape.Rectangular;
                    await ImageCropper.LoadImageFromFile(file);
                }
                else
                {
                    CropGrid.Visibility    = Visibility.Visible;
                    ImageView.Visibility   = Visibility.Collapsed;
                    UploadButton.IsEnabled = false;
                    //Helper.ShowNotify("Your photo is not in a acceptable aspect ratio." +
                    //    "\r\nYou need to crop it and then you can upload it.", 4500);


                    AspectRatioSlider.Value  = DefaultAspectRatio;
                    ImageCropper.AspectRatio = DefaultAspectRatio;
                    ImageCropper.CropShape   = CropShape.Rectangular;
                    await ImageCropper.LoadImageFromFile(file);
                }
            }
            catch { }
        }
Esempio n. 2
0
        public async Task SetFileAsync(StorageFile file)
        {
            try
            {
                Editing = true;
                CanCrop = false;
                LoadingUc.Start();
                if (file.IsVideo())
                {
                    VideoButton.Visibility = Visibility.Visible;
                    IsVideo       = true;
                    FileToUpload  = file;
                    ThumbnailFile = await file.GetSnapshotFromD3D(TimeSpan.Zero, true);

                    ThumbnailFile = await new PhotoHelper().SaveToImage(ThumbnailFile, false);

                    double width = 0, height = 0;
                    var    decoder = await BitmapDecoder.CreateAsync(await ThumbnailFile.OpenReadAsync());

                    width  = decoder.PixelWidth;
                    height = decoder.PixelHeight;
                    var wRatio = AspectRatioHelper.GetAspectRatioForMedia(width, height);
                    var hRatio = AspectRatioHelper.GetAspectRatioForMedia(height, width);
                    MainCanvas.Visibility = Visibility.Collapsed;

                    AspectRatioSlider.Value  = wRatio;
                    ImageCropper.AspectRatio = wRatio;
                    ImageCropper.CropShape   = CropShape.Rectangular;
                    await ImageCropper.LoadImageFromFile(ThumbnailFile);

                    CropGrid.Visibility = Visibility.Visible;

                    await Task.Delay(1500);

                    ImageCropper.AspectRatio = DefaultAspectRatio;
                    AspectRatioSlider.Value  = DefaultAspectRatio;
                    CanCrop = true;
                    LoadingUc.Stop();
                }
                else
                {
                    VideoButton.Visibility = Visibility.Collapsed;
                    IsVideo       = false;
                    ThumbnailFile = null;
                    BitmapDecoder = null;
                    var    editNeeded = false;
                    double width = 0, height = 0;
                    var    decoder = await BitmapDecoder.CreateAsync(await file.OpenReadAsync());

                    width  = decoder.PixelWidth;
                    height = decoder.PixelHeight;
                    var wRatio = AspectRatioHelper.GetAspectRatioForMedia(width, height);
                    var hRatio = AspectRatioHelper.GetAspectRatioForMedia(height, width);
                    if (wRatio > 1.91 && wRatio < 0.8)
                    {
                        editNeeded = true;
                    }
                    else
                    {
                        if (hRatio > 1.91 && hRatio < 0.8)
                        {
                            editNeeded = true;
                        }
                    }
                    if (height > width)
                    {
                        editNeeded = true;
                    }

                    //in paeini comment bod
                    FileToUpload = await new PhotoHelper().SaveToImage(file, false);

                    if (!editNeeded)
                    {
                        CropGrid.Visibility = Visibility.Visible;

                        MainCanvas.Visibility = Visibility.Collapsed;

                        AspectRatioSlider.Value  = wRatio;
                        ImageCropper.AspectRatio = wRatio;
                        ImageCropper.CropShape   = CropShape.Rectangular;
                        await ImageCropper.LoadImageFromFile(file);
                    }
                    else
                    {
                        CropGrid.Visibility      = Visibility.Visible;
                        MainCanvas.Visibility    = Visibility.Collapsed;
                        AspectRatioSlider.Value  = DefaultAspectRatio;
                        ImageCropper.AspectRatio = DefaultAspectRatio;
                        ImageCropper.CropShape   = CropShape.Rectangular;
                        await ImageCropper.LoadImageFromFile(file);
                    }
                    //await Task.Delay(1500);
                    CanCrop = true;
                    LoadingUc.Stop();
                }
            }
            catch { }
        }
Esempio n. 3
0
        async void ImportFile(StorageFile file)
        {
            try
            {
                if (Path.GetExtension(file.Path).ToLower() == ".mp4" || Path.GetExtension(file.Path).ToLower() == ".mkv")
                {
                    IsVideo       = true;
                    FileToUpload  = file;
                    ThumbnailFile = await file.GetSnapshotFromD3D(TimeSpan.Zero, true);

                    ThumbnailFile = await new PhotoHelper().SaveToImage(ThumbnailFile, false);

                    double width = 0, height = 0;
                    var    decoder = await BitmapDecoder.CreateAsync(await ThumbnailFile.OpenReadAsync());

                    width  = decoder.PixelWidth;
                    height = decoder.PixelHeight;
                    var wRatio = AspectRatioHelper.GetAspectRatioForMedia(width, height);
                    var hRatio = AspectRatioHelper.GetAspectRatioForMedia(height, width);



                    MainCanvas.Visibility  = /*ImageView.Visibility =*/ Visibility.Collapsed;
                    UploadButton.IsEnabled = false;

                    AspectRatioSlider.Value  = wRatio;
                    ImageCropper.AspectRatio = wRatio;
                    ImageCropper.CropShape   = CropShape.Rectangular;
                    await ImageCropper.LoadImageFromFile(ThumbnailFile);

                    AspectRatioSlider.Value  = DefaultAspectRatio;
                    ImageCropper.AspectRatio = DefaultAspectRatio;
                    //await Task.Delay(2500);
                    //using (var fileStream = await ThumbnailFile.OpenAsync(FileAccessMode.ReadWrite, StorageOpenOptions.None))
                    //    await ImageCropper.SaveAsync(fileStream, BitmapFileFormat.Jpeg);
                    //ThumbnailFile = await new PhotoHelper().SaveToImage(ThumbnailFile, false);
                    //decoder = await BitmapDecoder.CreateAsync(await ThumbnailFile.OpenReadAsync());
                    //VideoBitmapDecoder = decoder;
                    //CurrentCroppedRectForVideo = ImageCropper.CurrentCroppedRect;
                    //ShowImagePreview(ThumbnailFile);
                    //CropGrid.Visibility = Visibility.Collapsed;
                    //MainCanvas.Visibility = /*ImageView.Visibility =*/  Visibility.Visible;
                    //UploadButton.IsEnabled = true;

                    var editNeeded = false;

                    if (wRatio > 1.91 && wRatio < 0.8)
                    {
                        editNeeded = true;
                    }
                    else
                    {
                        if (hRatio > 1.91 && hRatio < 0.8)
                        {
                            editNeeded = true;
                        }
                    }
                    if (height > width)
                    {
                        editNeeded = true;
                    }

                    if (!editNeeded)
                    {
                        FileToUpload = await new PhotoHelper().SaveToImage(file, false);

                        CropGrid.Visibility = Visibility.Visible;

                        CropGrid.Opacity       = 1;
                        MainCanvas.Visibility  = /*ImageView.Visibility =*/ Visibility.Collapsed;
                        UploadButton.IsEnabled = false;

                        AspectRatioSlider.Value  = wRatio;
                        ImageCropper.AspectRatio = wRatio;
                        ImageCropper.CropShape   = CropShape.Rectangular;
                        await ImageCropper.LoadImageFromFile(file);
                    }
                    else
                    {
                        CropGrid.Opacity       = 1;
                        CropGrid.Visibility    = Visibility.Visible;
                        MainCanvas.Visibility  = /*ImageView.Visibility =*/ Visibility.Collapsed;
                        UploadButton.IsEnabled = false;

                        AspectRatioSlider.Value  = DefaultAspectRatio;
                        ImageCropper.AspectRatio = DefaultAspectRatio;
                        ImageCropper.CropShape   = CropShape.Rectangular;
                        await ImageCropper.LoadImageFromFile(file);
                    }
                }
                else
                {
                    IsVideo            = false;
                    ThumbnailFile      = null;
                    VideoBitmapDecoder = null;
                    var    editNeeded = false;
                    double width = 0, height = 0;
                    var    decoder = await BitmapDecoder.CreateAsync(await file.OpenReadAsync());

                    width  = decoder.PixelWidth;
                    height = decoder.PixelHeight;
                    var wRatio = AspectRatioHelper.GetAspectRatioForMedia(width, height);
                    var hRatio = AspectRatioHelper.GetAspectRatioForMedia(height, width);
                    if (wRatio > 1.91 && wRatio < 0.8)
                    {
                        editNeeded = true;
                    }
                    else
                    {
                        if (hRatio > 1.91 && hRatio < 0.8)
                        {
                            editNeeded = true;
                        }
                    }
                    if (height > width)
                    {
                        editNeeded = true;
                    }

                    if (!editNeeded)
                    {
                        //CropGrid.Visibility = Visibility.Collapsed;

                        //ImageView.Visibility = Visibility.Visible;
                        //UploadButton.IsEnabled = true;
                        //ShowImagePreview(file);

                        //in paeini comment bod
                        FileToUpload = await new PhotoHelper().SaveToImage(file, false);



                        CropGrid.Visibility = Visibility.Visible;

                        CropGrid.Opacity       = 1;
                        MainCanvas.Visibility  = /*ImageView.Visibility =*/ Visibility.Collapsed;
                        UploadButton.IsEnabled = false;

                        AspectRatioSlider.Value  = wRatio;
                        ImageCropper.AspectRatio = wRatio;
                        ImageCropper.CropShape   = CropShape.Rectangular;
                        await ImageCropper.LoadImageFromFile(file);
                    }
                    else
                    {
                        CropGrid.Opacity       = 1;
                        CropGrid.Visibility    = Visibility.Visible;
                        MainCanvas.Visibility  = /*ImageView.Visibility =*/ Visibility.Collapsed;
                        UploadButton.IsEnabled = false;
                        //Helper.ShowNotify("Your photo is not in a acceptable aspect ratio." +
                        //    "\r\nYou need to crop it and then you can upload it.", 4500);


                        AspectRatioSlider.Value  = DefaultAspectRatio;
                        ImageCropper.AspectRatio = DefaultAspectRatio;
                        ImageCropper.CropShape   = CropShape.Rectangular;
                        await ImageCropper.LoadImageFromFile(file);
                    }
                    //using (var source = new StorageFileImageSource(file))
                    //using (var renderer = new JpegRenderer(source, JpegOutputColorMode.Yuv420, OutputOption.PreserveAspectRatio))
                    //{
                    //    var info = await source.GetInfoAsync();
                    //    width = info.ImageSize.Width;
                    //    height = info.ImageSize.Height;
                    //}
                }
            }
            catch { }
        }