C# 如何基于方向值正确旋转缩略图图像?
我目前正在开发一个API,它将视频中的一个参数作为参数,然后从中生成一个缩略图。当稍后显示缩略图时,缩略图以错误的方式旋转,我知道这与方向有关,但我在PropertyIdList中似乎找不到0x0112 274或0x5029 20521。我得到的只有771769375120753,20753,20754。据我所知,这些都不是聚焦于图像的方向。我用Nreco生成了缩略图,如果有任何关联的话。这是我迄今为止的代码:C# 如何基于方向值正确旋转缩略图图像?,c#,rotation,orientation,thumbnails,C#,Rotation,Orientation,Thumbnails,我目前正在开发一个API,它将视频中的一个参数作为参数,然后从中生成一个缩略图。当稍后显示缩略图时,缩略图以错误的方式旋转,我知道这与方向有关,但我在PropertyIdList中似乎找不到0x0112 274或0x5029 20521。我得到的只有771769375120753,20753,20754。据我所知,这些都不是聚焦于图像的方向。我用Nreco生成了缩略图,如果有任何关联的话。这是我迄今为止的代码: if(Array.IndexOf(image.Img.PropertyIdLis
if(Array.IndexOf(image.Img.PropertyIdList,20521)>-1)
{
var orientation = (int)image.Img.GetPropertyItem(20521).Value[0];
switch(orientation)
{
case 1:
break;
case 2:
image.Img.RotateFlip(RotateFlipType.RotateNoneFlipX);
break;
case 3:
image.Img.RotateFlip(RotateFlipType.Rotate180FlipNone);
break;
case 4:
image.Img.RotateFlip(RotateFlipType.Rotate180FlipX);
break;
case 5:
image.Img.RotateFlip(RotateFlipType.Rotate90FlipX);
break;
case 6:
image.Img.RotateFlip(RotateFlipType.Rotate90FlipNone);
break;
case 7:
image.Img.RotateFlip(RotateFlipType.Rotate270FlipX);
break;
case 8:
image.Img.RotateFlip(RotateFlipType.Rotate270FlipNone);
break;
}
}
但它从未进入这段代码,因为它找不到propertyIdList 20521的索引
任何帮助都将受到高度赞赏!
多谢各位
编辑:视频是用iphone6拍摄的你检查过了吗?-也许财产根本不存在?你明确地创建了它吗?是的,我之前就遵循了这个例子,它以视频开始,然后我在NReco.VideoConverter.FFMpegConverter的帮助下从视频中提取一个缩略图,这本身就创建了一个缩略图,并将其保存到磁盘上的一个文件夹中,然后我将其检索并转换为bytearray,然后将其转换为一个新图像,然后我尝试修复方向,因此我不知道是否可以显式地正确创建方向,而不知道我正在用手机录制的是什么如果缩略图是使用用于ffmpeg的NReco.VideoConverter包装器提取,您可以从视频元数据中检测方向,并在缩略图提取期间执行必要的旋转。