caiyongxi

渐进式Jpg图片

        网速比较慢的时候,会出现图片的空白,为了提升用户体验,可以先加载一个缩略图,然后加载一个渐进式图片(从模糊到清晰);实现中暂时只放出来图片byte[]的转换,其实可以实现stream,bitmap等的转换,不再列举;

       ps:需要借助Magick.NET

 

        /// <summary>
        /// 转换Jpg渐进式
        /// </summary>
        /// <param name="data">图片数据</param> 
        /// <returns></returns>
        public byte[] ConvertProgressive(byte[] data)
        {
            byte[] resData = null;
            using (MemoryStream mStream = new MemoryStream())
            {
                using (MagickImage image = new MagickImage(data))
                {
                    image.Format = MagickFormat.Pjpeg;
                    image.Write(mStream);
                }
                resData = mStream.ToArray();
            }
            return resData;
        }

        /// <summary>
        /// 固定宽度等比缩放图片
        /// </summary>
        /// <param name="data"></param>
        /// <param name="width"></param>
        /// <returns></returns>
        public byte[] ScaleImageByWith(byte[] data, int width)
        {
            byte[] resData = null;
            using (MagickImage image = new MagickImage(data))
            {
                var imageSmall = image.Clone();
                imageSmall.Scale(width, image.Height * width / image.Width);
                using (MemoryStream mStream = new MemoryStream())
                {
                    imageSmall.Write(mStream);
                    resData = ConvertProgressive(mStream.ToArray()) ;
                }
            }
            return resData;
        }

  

发表于 2017-07-21 09:01  布雷客·希  阅读(746)  评论(0编辑  收藏  举报
 

分类:

技术点:

相关文章:

  • 2021-05-11
  • 2021-05-15
  • 2021-11-17
  • 2021-09-20
  • 2022-01-12
  • 2021-06-06
  • 2022-12-23
  • 2021-04-24
猜你喜欢
  • 2021-08-03
  • 2021-07-13
  • 2021-09-11
  • 2022-12-23
  • 2021-08-17
  • 2021-11-21
  • 2021-04-19
相关资源
相似解决方案