Как преобразовать ImageSource.FromFile в поток в Xamarin.Forms? - PullRequest
0 голосов
/ 28 февраля 2020

Я хочу преобразовать изображение в поток из ImageSource.FromFile.

Мой код:

   string location = Path.Combine(FileSystem.AppDataDirectory, "data", "Demo.jpg");
   image.Source = ImageSource.FromFile(location);

Изображение отображается правильно, но я хочу преобразовать это изображение в поток в формах .UWP. Я пытался await StorageFile.GetFileFromApplicationUriAsyn c () этот код, чтобы получить поток изображения из местоположения, но он выдает исключение.

Пожалуйста, предложите мне, как преобразовать изображение из файла для потоковой передачи в UWP?

  • Santhiya A

1 Ответ

0 голосов
/ 02 марта 2020

Этот путь Path.Combine(FileSystem.AppDataDirectory, "data", "Demo.jpg"); является локальным путем приложения на платформе UWP. И это не путь установки приложения. если поместить Demo.jpg в папку вашего проекта, вы не найдете его с указанным выше путем. И параметр ImageSource.FromFile(string file) - это имя файла, но не полный путь. Подробнее см. Этот случай ответ .

Я попытался await StorageFile.GetFileFromApplicationUriAsyn c () этот код, чтобы получить поток изображения из местоположения, но это выдает исключение.

Для платформы UWP вы можете использовать следующее для преобразования файла образа (свойство build - Content) в steam. Для получения дополнительной информации, пожалуйста, обратитесь к этому документу .

private async Task<Stream> GetStreamAsync()
{
    var file = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Assets/Demo.jpg"));
    var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read);
    return stream.AsStream();
}

. И если вы хотите использовать вышеприведенное в клиентском проекте Xamarin Forms, вам нужен пакет выше метода с DependencyService .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...