Kailas_ Ответов: 1

C#: Как изменить свойство ориентации изображения?


foreach (var prop in img.PropertyItems)
{
      if (prop.Id == 0x0112) //value of EXIF
      {
         var orientation = img.GetPropertyItem(prop.Id).Value[0];
         switch (orientation)
         {
            case 1:
            // No rotation required.
            break;
            case 2:
            img.RotateFlip(RotateFlipType.RotateNoneFlipX);
            break;
            case 3:
            img.RotateFlip(RotateFlipType.Rotate180FlipNone);


Я использовал приведенный выше код, чтобы определить, изменяется ли ориентация изображения по сравнению с оригиналом. Предположим, у меня есть значение ориентации как "3", и я хочу установить его в нормальное значение, то есть" 1", так как же я могу заменить это значение свойства ориентации 3 на 1?

1 Ответов

Рейтинг:
6

Leo Chapiro

Попробуйте это с помощью Изображение.Метод SetPropertyItem [^] подобный этому:

foreach (var prop in img.PropertyItems)
{
      if (prop.Id == 0x0112) //value of EXIF
      {
         var orientation = prop.Value;
         if (orientation == 3)
         {
             prop.Value[0] = 1;
             img.SetPropertyItem(prop);
         }
     }
}


Kailas_

Невозможно неявно преобразовать тип int в byte[] в следующей строке, как это сделать..
prop. Value = 1;

Kailas_

Спасибо, я сделал глупую ошибку..!