내 응용 프로그램으로 그림을 가져오고 EXIF 메타 데이터에 따라 이미지를 회전합니다. 이 후 회전 된 이미지를 디스크에 저장하고 있지만 회전 된 이미지 메타 데이터를 이미지에 남겨두고 창에서 다시 회전해야한다고 생각하므로 기본적으로 내 이미지가 거꾸로되어 있습니다.
지금까지 :
using (Stream sourceStream = File.Open(dlg.FileName, FileMode.Open, FileAccess.Read))
{
BitmapDecoder sourceDecoder = BitmapDecoder.Create(sourceStream, createOptions, BitmapCacheOption.OnLoad);
// Check source is has valid frames
if (sourceDecoder.Frames[0] != null && sourceDecoder.Frames[0].Metadata != null)
{
sourceDecoder.Frames[0].Metadata.Freeze();
// Get a clone copy of the metadata
BitmapMetadata sourceMetadata = sourceDecoder.Frames[0].Metadata.Clone() as BitmapMetadata;
ImportedPhotoMetaData = sourceMetadata;
}
}
과
using (var image = Image.FromFile(dlg.FileName))
{
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;
}
}
}
그러나 prop.Value [0] = 1; 라인이 이미지 메타 데이터를 재설정하지 않는 것 같습니다. ImportedPhotoMetaData 속성에서 이미지 방향을 재설정해야합니다.
알겠습니다 ... 교체
prop.Value[0] = 1;
와
ImportedPhotoMetaData.SetQuery("System.Photo.Orientation", 1);
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다