• 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));
            }
        }
  • 相关阅读:
    ORM框架
    js获取浏览器和元素对象的尺寸
    js中的兼容问题
    JS页面上的流氓广告功能
    JS计算1到10的每一个数字的阶乘之和
    JS中 有一个棋盘,有64个方格,在第一个方格里面放1粒芝麻重量是0.00001kg,第二个里面放2粒,第三个里面放4,棋盘上放的所有芝麻的重量
    JS中99乘法表
    JS 中计算 1
    JS中判断一个数是否为质数
    JS水仙花数
  • 原文地址:https://www.cnblogs.com/fishes/p/2545310.html
Copyright © 2020-2023  润新知