1. 程式人生 > >UWP 瀏覽本地圖片及對圖片的裁剪

UWP 瀏覽本地圖片及對圖片的裁剪

using System;
using System.Diagnostics;
using Windows.ApplicationModel.DataTransfer;
using Windows.Foundation.Collections;
using Windows.Storage;
using Windows.System;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Media.Imaging;

//“空白頁”項模板在 http://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409 上有介紹

namespace 圖片裁剪
{
    /// <summary>
    /// 可用於自身或導航至 Frame 內部的空白頁。
    /// </summary>
    public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();
        }

        private async void Button_Click(object sender, RoutedEventArgs e)
        {
            //建立和自定義 FileOpenPicker
            var picker = new Windows.Storage.Pickers.FileOpenPicker();
            picker.ViewMode = Windows.Storage.Pickers.PickerViewMode.Thumbnail; //可通過使用圖片縮圖建立豐富的視覺顯示,以顯示檔案選取器中的檔案
            picker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.PicturesLibrary;
            picker.FileTypeFilter.Add(".jpg");
            picker.FileTypeFilter.Add(".jpeg");
            picker.FileTypeFilter.Add(".png");
            picker.FileTypeFilter.Add(".gif");

            //選取單個檔案
            Windows.Storage.StorageFile file = await picker.PickSingleFileAsync();

            //檔案處理
            if (file != null)
            {
                var inputFile = SharedStorageAccessManager.AddFile(file);
                var destination = await ApplicationData.Current.LocalFolder.CreateFileAsync("Cropped.jpg", CreationCollisionOption.ReplaceExisting);//在應用資料夾中建立檔案用來儲存裁剪後的影象
                var destinationFile = SharedStorageAccessManager.AddFile(destination);
                var options = new LauncherOptions();
                options.TargetApplicationPackageFamilyName = "Microsoft.Windows.Photos_8wekyb3d8bbwe";

                //待會要傳入的引數
                var parameters = new ValueSet();
                parameters.Add("InputToken", inputFile);                //輸入檔案
                parameters.Add("DestinationToken", destinationFile);    //輸出檔案
                parameters.Add("ShowCamera", false);                    //它允許我們顯示一個按鈕,以允許使用者採取當場圖象(但是好像並沒有什麼卵用)
                parameters.Add("EllipticalCrop", true);                 //截圖區域顯示為圓(最後截出來還是方形)
                parameters.Add("CropWidthPixals", 300);
                parameters.Add("CropHeightPixals", 300);

                //呼叫系統自帶截圖並返回結果
                var result = await Launcher.LaunchUriForResultsAsync(new Uri("microsoft.windows.photos.crop:"), options, parameters);

                //按理說下面這個判斷應該沒問題呀,但是如果裁剪介面點了取消的話後面會出現異常,所以後面我加了try catch
                if (result.Status == LaunchUriStatus.Success && result.Result != null)
                {
                    //對裁剪後圖像的下一步處理
                    try
                    {
                        // 載入已儲存的裁剪後圖片
                        var stream = await destination.OpenReadAsync();
                        var bitmap = new BitmapImage();
                        await bitmap.SetSourceAsync(stream);

                        // 顯示
                        Img.Source = bitmap;
                    }
                    catch (Exception ex)
                    {
                        Debug.WriteLine(ex.Message + ex.StackTrace);
                    }
                }
            }
        }
    }
}


相關推薦

UWP 瀏覽本地圖片圖片裁剪

using System; using System.Diagnostics; using Windows.ApplicationModel.DataTransfer; using Windows.Foundation.Collections; using Windows.Storage; using Win

從視頻中提取圖片圖片做人臉檢測並截取人臉區域

rep pan details 一個 ons sprintf imread href multipl 環境配置:VS2013+opencv2.4.10+libface.lib 參考博客:http://blog.csdn.net/augusdi/article/details

asp.net core 通過ajax上傳圖片wangEditor圖片上傳

images use class multi jquery 開始 load als org asp.net core 通過ajax上傳圖片 .net core前端代碼,因為是通過ajax調用,首先要保證ajax能調用後臺代碼,具體參見上一篇.net core 使用ajax

Android 獲取手機模擬器sd卡圖片擷取圖片

需把圖片儲存到找到手機模擬器(夜神模擬器)sd卡中的圖片路徑:檔案管理器/mnt/sdcard/images(images是自己創的資料夾) java程式碼: package com.example.android_07; import android.graphics.Bitmap

前端實現手機相簿或照相預覽圖片壓縮圖片的方法

總體思路是: 1、FileReader.readAsDataURL將上傳的圖片檔案轉為Base64格式 2、將img繪製到canvas上,canvas.toDataURL壓縮圖片 3、new Blob將壓縮後的Base64轉為Blob格式 4、FormData.append將圖片檔案資料存入formdata

OpenCV成長之路6:實現讀入圖片並且圖片進行復制

複製: cvCopy(img1,img2); 儲存:cvSaveImage(filename,img); OpenCV實現對圖的儲存和複製大概就是這兩個函式把 必須要提的是:OpenCV不支援中文路

Android studio2.0在app中設定背景圖片新增圖片資源

我還處於摸索階段,也是在慢慢倒騰,持續更新,希望能幫助到有需要的人 首先將需要的圖片轉成png格式(png格式的圖片顏色過渡平滑且支援透明度),牆紙或啟動畫面的圖片資源儲存為jpg格式。 將圖片儲存到相應的工程之下,不要放錯了。 某工程/app/src/m

js正則匹配出所有圖片所有圖片地址src

//思路分兩步:作者(yanue). //1,匹配出圖片img標籤(即匹配出所有圖片),過濾其他不需要的字元 //2.從匹配出來的結果(img標籤中)迴圈匹配出圖片地址(即src屬性) var str = "this is test string <img src=\"http:yanue.NET/t

python PIL和CV 圖片的讀取,顯示,裁剪,儲存

PIL 圖片操作 讀取圖片 img = Image.open(“a.jpg”) 顯示圖片 im.show() # im是Image物件,im是numpy型別,通過Image.fromarray(nparr, mode='RGB')函式轉換為Image物件 圖片的size (w

MATLAB:批量圖片進行裁剪

程式碼: %% crop the im into 256*256 clear;clc; file_path = 'path\to\your\images\'; % 設定你存放圖片的目錄 img_path_list = dir(strcat(file_path, '*.jpg'));

文字包含圖片路徑 roi感興趣 提取 圖片分類

//文件類似於上述圖片截圖  第一行為圖片路徑 ,接下來四個為感興趣區域的左上角和右下角座標 ,然後是影象類別。接下來四個又是座標,然後又是類別 #include "stdafx.h" #include <stdio.h> #include <string.h&

【python】實現 2:3 或者3:2的圖片進行1:1裁剪

每張圖片裁剪三次 ,實現argument ,並resize成256*256。 from PIL import Image import os for pic_name in os.listdir("/Users/wangyouzhuo/Desktop/pooma_new/

[UWP]使用Picker構建應用內圖片公共裁剪組件

按鍵 mat edev 項目 quest media 平臺 Locator fig 原文:[UWP]使用Picker構建應用內圖片公共裁剪組件在上一篇博文《[UWP]如何實現UWP平臺最佳圖片裁剪控件》中我講解了編寫ImageCropper控件的過程及知識分享。在那篇文章裏

[Swift3] 圖片進行裁剪

如果單獨的對已有圖片進行裁剪,可以使用系統自帶的函式,但是這個函式需要對圖片進行一些處理。我這裡自己實現了一個對UIImage的extension。 extension UIImage { func subImage(rect: CGRect) -> UIImage

用MATLAB圖片進行切割復原

SkipStep=8;%每一個切割後的圖片塊的大小 和遍歷的補償 M=8;%圖片塊的長 N=8;%圖片塊的寬n=0;%圖片塊的編號 I=imread('79.png');%要切割的圖片 I = im2

Android 啟動系統相機,相簿,裁剪圖片6.0許可權管理

在日常開發中,我們經常需要用到上傳圖片的 功能,這個時候通常有兩種做法,第一種,從相機獲取,第二種,從相簿獲取。今天這篇部落格主要講解利用系統的Intent怎樣獲取? 主要內容如下 - 怎樣通過相機獲取我們的圖片 - 怎樣啟動相簿獲取我們想要的圖片 -

Android開源庫之使用ZXing開源庫生成二維碼識別本地二維碼圖片

/** * 解析二維碼(使用解析RGB編碼資料的方式) * * @param path * @return */ public static Result decodeBarcodeRGB(String path) { if (Text

利用base64圖片進行編碼解碼

試圖將圖片通過json進行傳輸,這個時候就想到利用base64編碼的方法來圖片。主要步驟有 1、對圖片檔案進行編碼,轉換為base64編碼的格式,及一長串字元; 2、可將字元通過json進行傳送; 3、目的方接收json陣列,取出編碼字串,並進行解碼,顯示圖片 該方法難點主

Android 可變裁剪縮放裁剪圖片

大多圖片裁剪大多兩種操作:改變裁剪區圖片不能縮放、裁剪區固定圖片縮放,兩種方法都可以裁剪到不同圖片,本次介紹的是可變裁剪區同時能縮放圖片,同時記錄自己的開發專案過程。 裁剪檢視一共三個view,最底層的縮放CilpImageView ,中間是可變裁剪區Cilp

javaCV開發詳解之4:轉流器實現(也可作為本地收流器、推流器,新增新增圖片文字水印,視訊影象幀儲存),實現rtsp/rtmp/本地檔案轉發到rtmp流媒體伺服器(基於javaCV-FFMPEG)

javaCV系列文章: 補充篇: 歡迎大家積極開心的加入討論群 javacpp-ffmpeg: 前言: 本章基於javaCV實現轉流器和收流器功能,測試採用監控rtsp地址轉發至rtmp伺服器地址 新增openCV儲存圖片功能。 補充: