2017-04-19 23 views
1

當前我正在從圖庫中保存圖片的相機圖片及其在sq lite表格中的路徑。xamarin.forms獲取圖庫中圖片的字節數組xamarin.forms

我需要在API調用期間保存的這個圖像的字節數組。

所以我可以通過它的名字得到圖像的字節數組?

請幫我。

+0

我不認爲它可以直接與相關性服務Xamarin.Forms可以做,你可以轉換的文件 VAR的ByteArray = File.ReadAllBytes(ImagePath的); – Dilmah

回答

2

如果文件路徑,你就應該能夠通過File.ReadAllBytes(imagePath);得到它。

然而,這是不是在Xamarin.Forms內通用事項可用。您將需要使用DependencyService

它看起來是這樣的:

定義您共享代碼的接口

public interface ILocalFileProvider 
{ 
    byte[] GetFileBytes(string filePath); 
} 

然後實現它的平臺的項目,這樣

public class LocalFileProvider_iOS : ILoclFileProvider 
{ 
    public byte[] GetFileBytes(string filePath) 
    { 
     return File.ReadAllBytes(filePath); 
    } 
} 

它看起來非常在Android中是一樣的,但是當然你應該處理錯誤,異常等。另外不要忘記在命名空間上添加[assembly: Dependency(typeof(LocalFileProvider_iOS))]

您現在可以使用它在你的共享代碼:var bytes = DependencyService.Get<ILocalFileProvider>().GetFileBytes(file.Path);

而且,在這裏需要一些細化和微調。

你現在正在做的是從你的共享代碼調用通用接口。運行時確定接口獲得哪種實現,以及平臺特定代碼如何實現爲接口。

+1

很棒....感謝您的詳細解釋,爲此+1。 –