zoukankan      html  css  js  c++  java
  • Bitmap\Bytes\BitmapImage相互转换

    public class ImageHelper
        {
            /// <summary>
            /// 将Bitmap图片转换成byte字节数组
            /// </summary>
            /// <param name="bmp"></param>
            /// <returns></returns>
            public static byte[] BitmapToBytes(Bitmap bmp)
            {
                MemoryStream ms = new MemoryStream();
                bmp.Save(ms, ImageFormat.Bmp);
                ms.Close();
                return ms.ToArray();
            }
    
            /// <summary>
            /// 将byte字节数组转换成Bitmap图片
            /// </summary>
            /// <param name="bytes"></param>
            /// <returns></returns>
            public static Bitmap BytesToBitmap(byte[] bytes)
            {
                MemoryStream ms = new MemoryStream(bytes);
                Bitmap bmp = new Bitmap(ms);
                ms.Close();
                return bmp;
            }
    
            /// <summary>
            /// 将BitmapImage图片转换成byte字节数组
            /// </summary>
            /// <param name="bmp"></param>
            /// <returns></returns>
            public static byte[] BitmapImageToBytes(BitmapImage bmp)
            {
                byte[] bytes = null;
                Stream s = bmp.StreamSource;
                s.Position = 0; //很重要,因为Position经常位于Stream的末尾,导致下面读取到的长度为0。 
                using (BinaryReader br = new BinaryReader(s))
                {
                    bytes = br.ReadBytes((int)s.Length);
                }
                return bytes;
            }
    
    
            /// <summary>
            /// 将byte字节数组转换成BitmapImage图片
            /// </summary>
            /// <param name="bytes"></param>
            /// <returns></returns>
            public static BitmapImage BytesToBitmapImage(byte[] bytes)
            {
                BitmapImage bitmapImage = new BitmapImage();
                bitmapImage.BeginInit();
                bitmapImage.StreamSource = new MemoryStream(bytes);
                bitmapImage.EndInit();
                return bitmapImage;
            }
    
            /// <summary>
            /// 将Bitmap图片转换成BitmapImage图片
            /// </summary>
            /// <param name="bitmap"></param>
            /// <returns></returns>
            public static BitmapImage BitmapToBitmapImage(Bitmap bitmap)
            {
                return BytesToBitmapImage(BitmapToBytes(bitmap));
            }
    
            /// <summary>
            /// 将BitmapImage图片转换成Bitmap图片
            /// </summary>
            /// <param name="bitmap"></param>
            /// <returns></returns>
            public static Bitmap BitmapImageToBitmap(BitmapImage bitmapImage)
            {
                return BytesToBitmap(BitmapImageToBytes(bitmapImage));
            }
        }
  • 相关阅读:
    azkaban使用--指定executor
    azkaban使用--依赖dependencies作业
    azkaban用户管理及权限配置
    azkaban架构介绍
    azkaban工作流调度器及相关工具对比
    azkaban的简单使用
    Azkaban安装及分布式部署(multiple-executor)
    配置yum源
    idea搭建Eureka注册中心及配置密码登陆
    kudu导入文件(基于impala)
  • 原文地址:https://www.cnblogs.com/fishes/p/2545310.html
Copyright © 2011-2022 走看看