1

xamarin フォーム イメージを base64 形式に変換する必要があります。

これは私がやろうとしている方法ですが、うまくいきません。

var inputStream = signatureImage.Source.GetValue(UriImageSource.UriProperty);

            //Getting Stream as a Memorystream
            var signatureMemoryStream = inputStream as MemoryStream;

            if (signatureMemoryStream == null)
            {
                signatureMemoryStream = new MemoryStream();
                inputStream.CopyTo(signatureMemoryStream);
            }

            //Adding memorystream into a byte array
            var byteArray = signatureMemoryStream.ToArray();

            //Converting byte array into Base64 string
            base64String = Convert.ToBase64String(byteArray);

「signatureImage」はイメージ名です。

4

3 に答える 3

0

画像は、画像を表示するための Xamarin フォームの単なるコントロールです。画像のバイト配列を取得できるものではありません。

Media Pluginを使用してディスクに保存することをお勧めします。次に、メモリストリームを介してロードして変換します。

FFImageLoadingも使用できます。それはあなたのために役立つことができる2つの方法を持っています:

  1. GetImageAsJpgAsync(int 品質 = 90、int 希望幅 = 0、int 希望高さ = 0)
  2. GetImageAsPngAsync(int desiredWidth = 0, int desiredHeight = 0)

SO の質問 - Xamarin.Forms で画像をバイト配列に変換する方法は、ここでプラットフォーム固有のコードで行う方法を示しています。

フォーラム スレッド ( Convert Image to byte[] ) には、コントロールから取得できない理由についての良い議論があります。

于 2016-08-24T07:34:57.617 に答える
0

以下のようにこれを行うこともできます

var base64String = Convert.ToBase64String(File.ReadAllBytes(file.Path))
于 2020-11-18T18:39:31.917 に答える