栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

C# 检测图片是否被旋转并修改到正真的旋转

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C# 检测图片是否被旋转并修改到正真的旋转

C# 检测图片是否被旋转并修改到正真的旋转

一、在利用jpg合并pdf的过程中发现大量的图片旋转,用看图软件打开旋转的照片发现是正常的,经过对比发现这些照片的image.PropertyItems.Value[0]值和没有发生旋转的照片有差异。故而写了下面的函数处理。

   /// 
        /// C# 检测图片是否被旋转并修改到正真的旋转
        /// 
        /// 
        /// 
        public static bool readPictureDegreeAndKiRotate(string path)
        {
            bool bl = false;
            try
            {
                //获取旋转角度
                int rotate = 0;
                using (var image = System.Drawing.Image.FromFile(path))
                {
                    foreach (var prop in image.PropertyItems)
                    {
                        if (prop.Id == 0x112)
                        {
                            if (prop.Value[0] == 6)
                                rotate = 90;
                            if (prop.Value[0] == 8)
                                rotate = -90;
                            if (prop.Value[0] == 3)
                                rotate = 180;
                            prop.Value[0] = 1;
                        }
                    }
                }

                //旋转图片

                using (Bitmap bitmap = new Bitmap(path))
                {
                    RotateFlipType rotateFlipType = new RotateFlipType();
                    if (rotate == 90)
                    {
                        rotateFlipType = RotateFlipType.Rotate90FlipNone;
                        bitmap.RotateFlip(rotateFlipType);
                        bitmap.Save(path);
                    }
                    else if (rotate == -90)
                    {
                        rotateFlipType = RotateFlipType.Rotate270FlipNone;
                        bitmap.RotateFlip(rotateFlipType);
                        bitmap.Save(path);
                    }
                    else if (rotate == 180)
                    {
                        rotateFlipType = RotateFlipType.Rotate180FlipNone;
                        bitmap.RotateFlip(rotateFlipType);
                        bitmap.Save(path);
                    }
                    
                    bitmap.Dispose();
                }

                bl = true;

            }
            catch (Exception ex)
            {
              
                bl = false;
            }
            return bl;
        }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1003960.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号