是否有一个ImageSource的转换到Android的位图,反之亦然在Xamarin.Forms解决方案

问题描述 投票:0回答:1

我目前正在对修改当前位于在PCL项目的图片的应用程序。而我目前具有转换数据类型的麻烦。

目前,我试图找出我怎么能一个ImageSource的转换为位图。我读过一些网络上的答案,但他们似乎并没有为我工作。

我叫了DependencyService特定于平台的代码并通过ImageSource的作为参数。

函数签名如下:

        public ImageSource BlurImage(ImageSource ImageSource)
        {

            return null;
        }

这个函数应该创建一个从ImageSource的第一的位图,一旦所有的逻辑已经做了它应该转换回一个ImageSource的。

能否给我有人解释我应该如何转换的ImageSource成位图,反之亦然?

在此先感谢,汤姆

c# android xamarin bitmap imagesource
1个回答
0
投票

您可以使用下面的函数转换ImageSourceBitmap

 private async Task<Bitmap> GetImageFromImageSource(ImageSource imageSource, Context context)
    {
        IImageSourceHandler handler;

        if (imageSource is FileImageSource)
        {
            handler = new FileImageSourceHandler();
        }
        else if (imageSource is StreamImageSource)
        {
            handler = new StreamImagesourceHandler(); // sic
        }
        else if (imageSource is UriImageSource)
        {
            handler = new ImageLoaderSourceHandler(); // sic
        }
        else
        {
            throw new NotImplementedException();
        }

        var originalBitmap = await handler.LoadImageAsync(imageSource, context);         

        return originalBitmap;
    }

和下一个用于BitmapImageSource

public async Task<ImageSource> GetBytesFromImage(Bitmap bitmap)
 {
    ImageSource imgSource;
    using (var stream = new MemoryStream())
    {
        bitmap.Compress(Bitmap.CompressFormat.Png, 0, stream); // You can change the compression asper your understanding
        imgSource=ImageSource.FromStream(stream);
    }
   return imgSource;
  }
© www.soinside.com 2019 - 2024. All rights reserved.