Как отобразить изображения в CollectionView из строки Base64? - PullRequest
0 голосов
/ 07 февраля 2020

Я пытаюсь отобразить изображения в CollectionView, которые хранятся в виде строк Base64 в базе данных SQLite.

XAML:

<CollectionView x:Name="PhotoView" HeightRequest="100" WidthRequest="400" HorizontalOptions="EndAndExpand">
   <CollectionView.ItemTemplate>
      <DataTemplate>
         <ViewCell>
             <Image Source="{Binding Image}"/>
         </ViewCell>
      </DataTemplate>
    </CollectionView.ItemTemplate>
</CollectionView>

C#:

// This class is NOT stored in SQLite, I don't think you can store type ImageSource in a SQLite instance. It is only used for setting the CollectionView's ItemsSource.
private class Photos
        {
            public string UUID { get; set; }
            public string Base64 { get; set; }
            public ImageSource Image { get; set; }
        }

// Method called in constructor to update CollectionView
private void UpdatePhotoView()
{
   using (SQLiteConnection conn = new SQLiteConnection(App.DatabaseLocation))
   {
      PhotoView.ItemsSource = null;
      List<string> base64strings = conn.Query<Base64Table>("select * from Base64Table where Id = ?", thisPage.Id)
         .Select(x => x.Base64String)
         .ToList();
      List<Photos> photoview = new List<Photos>();
      foreach(var b64 in base64strings)
      {
         ImageSource i = Xamarin.Forms.ImageSource.FromStream(
                            () => new MemoryStream(Convert.FromBase64String(image)));
         Photos p = new Photos()
         {
            UUID = thisPage.Id,
            Base64 = b64,
            Image = i
         };
         photoview.Add(p);
      }
      PhotoView.ItemsSource = photoview;
   }
}

Все, что происходит при загрузке страницы, которую она выдает System.InvalidCastException: 'Specified cast is not valid.'

Я попытался поменять ImageCell для ViewCell -закрытого Image объекта, но возникает та же ошибка.

Я также попытался установить необработанные строки Base64 в List<string> как ItemsSource но опять же возвращает ту же ошибку.

Ответы [ 2 ]

2 голосов
/ 07 февраля 2020

Я чувствую, что проще всего справиться с этим, используя преобразователи непосредственно на base64

Converter

using System;
using System.Globalization;
using Xamarin.Forms;

namespace xxxx
{

public class Base64ToImageSource : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        string base64Image = (string)value;
        return base64Image.GetImageSourceFromBase64String();
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return value;
    }
}
}

Затем добавьте этот метод расширения строки

 public static ImageSource GetImageSourceFromBase64String(this string base64)
    {
        if (base64 == null)
        {
            return null;
        }

        byte[] Base64Stream = Convert.FromBase64String(base64);
        return ImageSource.FromStream(() => new MemoryStream(Base64Stream));
    }

А затем напрямую используйте этот конвертер для вашего источника

<Image Source="{Binding Base64,Converter={StaticResource Base64ToImageSource}}"

Обязательно добавьте это в ресурсы своей страницы,

Goodluck, не стесняйтесь возвращаться, если у вас есть вопросы

1 голос
/ 12 февраля 2020

Если вы получаете сообщение об ошибке, не можете привести.

Ваш CollectionView не может использовать ViewCell, я изменяю код, как показано ниже.

    <ContentPage.Resources>
    <ResourceDictionary>
        <local:Base64ToImageSource x:Key="Base64ToImageSource" />
    </ResourceDictionary>
</ContentPage.Resources>
<StackLayout>

    <CollectionView x:Name="PhotoView"  ItemsSource="{Binding Myphotos}" >
        <CollectionView.ItemTemplate>
            <DataTemplate>
                <StackLayout>
                    <Image Source="{Binding Base64,Converter={StaticResource Base64ToImageSource}}"></Image>
                </StackLayout>
            </DataTemplate>
        </CollectionView.ItemTemplate>
    </CollectionView>

</StackLayout>

Вот фоновый код layout.

    public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();
        BindingContext = new MyModelView();
    }
}

Вот мой код конвертации.

 using System;
 using System.Collections.Generic;
 using System.Text;
 using System.Globalization;
 using System.IO;
 using Xamarin.Forms;

 namespace ImageBa54C
 {
  public class Base64ToImageSource : IValueConverter
  {
    ImageSource image;
    public object Convert(object value, Type targetType, object parameter, CultureInfo 
   culture)
    {

        byte[] bytes = System.Convert.FromBase64String(value.ToString());
        image = ImageSource.FromStream(() => new MemoryStream(bytes));

        return image;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return value;
    }
    }
 }

Вот мой Viewmodel.

     public class MyModelView
{
    public ObservableCollection<Photos> Myphotos { get; set; }
    public MyModelView()
    {
      Myphotos = new ObservableCollection<Photos>();

        Myphotos.Add( new Photos() { Base64 = "iVBORw0KGgoAAAANSUhEUgAAATgAAABgCAIAAAAGt/kTAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAAFGSURBVHhe7dOhCYAAAABBBzE6scFBxLWsgs1uExR8OLj0/Yd9nICfMyoEGBUCjAoBRoUAo0KAUSHAqBBgVAgwKgQYFQKMCgFGhQCjQoBRIcCoEGBUCDAqBBgVAowKAUaFAKNCgFEhwKgQYFQIMCoEGBUCjAoBRoUAo0KAUSHAqBBgVAgwKgQYFQKMCgFGhQCj8q1z3Y55uUWeMirfcukrjAoBRoUAo0KAUSHAqBBgVAgwKgQYFQKMCgFGhQCjQoBRIcCoEGBUCDAqBBgVAowKAUaFAKNCgFEhwKgQYFQIMCoEGBUCjAoBRoUAo0KAUSHAqBBgVAgwKgQYFQKMCgFGhQCjQoBRIcCoEGBUCDAqBBgVAowKAUaFAKNCgFEhwKgQYFQIMCoEGBUCjAoBRoUAo0KAUSHAqBBgVAgwKgQYFQKMCr83Thd2mJwcg+PUfAAAAABJRU5ErkJggg==" });
        Myphotos.Add(new Photos() { Base64 = "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" });
        Myphotos.Add(new Photos() { Base64 = "iVBORw0KGgoAAAANSUhEUgAAATgAAABgCAIAAAAGt/kTAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAAFGSURBVHhe7dOhCYAAAABBBzE6scFBxLWsgs1uExR8OLj0/Yd9nICfMyoEGBUCjAoBRoUAo0KAUSHAqBBgVAgwKgQYFQKMCgFGhQCjQoBRIcCoEGBUCDAqBBgVAowKAUaFAKNCgFEhwKgQYFQIMCoEGBUCjAoBRoUAo0KAUSHAqBBgVAgwKgQYFQKMCgFGhQCj8q1z3Y55uUWeMirfcukrjAoBRoUAo0KAUSHAqBBgVAgwKgQYFQKMCgFGhQCjQoBRIcCoEGBUCDAqBBgVAowKAUaFAKNCgFEhwKgQYFQIMCoEGBUCjAoBRoUAo0KAUSHAqBBgVAgwKgQYFQKMCgFGhQCjQoBRIcCoEGBUCDAqBBgVAowKAUaFAKNCgFEhwKgQYFQIMCoEGBUCjAoBRoUAo0KAUSHAqBBgVAgwKgQYFQKMCr83Thd2mJwcg+PUfAAAAABJRU5ErkJggg==" });
        Myphotos.Add(new Photos() { Base64 = "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" });
    }
}

Вот мой рабочий скриншот.

enter image description here

Вы можете загрузить мое демо, чтобы сделать тест.

https://github.com/851265601/ImageBa54C

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