none
请问C#如何判断一个照片是横向还是竖向?

    问题

  • 问题是这样的,我使用如下代码对图片文件缩放:

                    Image im = Image.FromFile(sFile);
                    Bitmap bm = new Bitmap(200, 200);
                    //新建一个画板
                    Graphics g = Graphics.FromImage(bm);
                    g.CompositingQuality = CompositingQuality.HighQuality;
                    g.InterpolationMode = InterpolationMode.HighQualityBicubic;
                    g.SmoothingMode = SmoothingMode.HighQuality;
                    g.DrawImage(im, new Rectangle(0, 0, 200, 200));
    
                    ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();
                    ImageCodecInfo imageCodec = null;
                    foreach (ImageCodecInfo codec in codecs)
                    {
                        if (codec.MimeType == "image/jpeg")
                            imageCodec = codec;
                    }
                    EncoderParameters ep = new EncoderParameters(1);
                    ep.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 95L);
    
                    if (imFormat == ImageFormat.Jpeg && imageCodec != null)
                        bm.Save(targetFile, imageCodec, ep);
                    else
                        bm.Save(targetFile, imFormat);
                    im.Dispose();
    

    一般情况都是没有问题的,最近发现一些照片,我在windows上查看的时候是好的,不知道为何经过这个程序处理之后,照片就变成横向了(倒着了),有人知道是为什么吗?如何解决?

    补充:你将相机旋转90度以拍摄全身像,将照片导出到windows,看到是OK的,人物就是正常的站立状态,而经过上面的程序处理后,人物就被“放倒”了,变成了横向。就是这个意思。。。。


    da jia hao!

    2016年1月11日 9:36

答案

全部回复