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));
            }
        }
  • 相关阅读:
    2017的结束2018的开始
    .NET Core使用swagger进行API接口文档管理
    数据库可扩展设计方案
    容量估算--随时更新
    分库分表设计基础
    利用bucardo搭建PostgreSQL数据库双活
    通过pgAgent实现PostgreSQL上的自动作业
    MySQL主主配置
    Oracle统计信息不准(谓词越界)造成的性能问题
    获取Oracle中SQL语句的执行计划
  • 原文地址:https://www.cnblogs.com/fishes/p/2545310.html
Copyright © 2011-2022 走看看