使用C#实现byte[]转UIImage、Image

不啰嗦,直接上代码

byte[]转UIImage

在Xamarin.iOS项目中用。

public UIImage bytesToUIImage(byte[] data){
    if (data == null) return null;

    GCHandle hObject = GCHandle.Alloc(data, GCHandleType.Pinned);
    IntPtr pObject = hObject.AddrOfPinnedObject();
    NSData nsdata = NSData.FromBytes(pObject, (System.nuint)data.Length);
    UIImage image = UIImage.LoadFromData(nsdata);

    if (hObject.IsAllocated)
        hObject.Free();
        return image;
    } catch (Exception e) {

    }
    return null;
}

byte[]转Image

在Xamarin.Form中用。

public Image bytesToImage(byte[] data){
    var image = new Image();
    image.Source = ImageSource.FromStream(() => new MemoryStream(data));
    return image;
}

Stream转byte[]

这个方法哪都能用,所以顺便贴出来。

public byte[] StreamTobytes(Stream stream){
    byte[] result;
    using (var memoryStream = new System.IO.MemoryStream()) {
        stream.CopyTo(memoryStream);
        result = memoryStream.ToArray();
    }
    return result;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,294评论 4 61
  • Swift版本点击这里欢迎加入QQ群交流: 594119878最新更新日期:18-09-17 About A cu...
    ylgwhyh阅读 25,649评论 7 249
  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一种新的协议。它实...
    香橙柚子阅读 24,222评论 8 184
  • 随笔。 健康”本身可能就相当不准确,甚至含糊不清,而“反脆弱性”超越了一般的健康状态,这帮助我们澄清了概念的混淆。...
    郑宇辰阅读 219评论 0 0
  • 是什么节日 鞭炮声声 是什么喜事 乐曲欢腾 是什么故事 烟花难述 是什么庆祝 酒染霓虹 所以仰望星空 看一片歌舞升...
    涛涛不绝82阅读 174评论 0 4