Скопируйте метаданные EXIF из TIF в JPEG на C # / VB.NET

StackOverflow https://stackoverflow.com/questions/1073667

  •  21-08-2019
  •  | 
  •  

Вопрос

Я был бы очень признателен, если бы вы могли пролить свет на эту проблему.У меня есть 2 изображения, одно было создано из TIF-файла с метаданными, другое - изображение в памяти, которое будет сохранено в формате jpeg.Затем я использую эту процедуру для передачи метаданных exif из первого изображения во второе (то есть из файла, созданного из tif, в изображение в памяти):

For Each _p In image1.PropertyItems
   image2.SetPropertyItem(_p)
Next

И это работает совершенно нормально.Все элементы exif успешно скопированы.Я подтвердил это, используя watches в режиме отладки.Проблема возникает, когда вы сохраняете image2 в формате jpeg, используя это:

    Dim eps As EncoderParameters = New EncoderParameters(1)
    eps.Param(0) = New EncoderParameter(Encoder.Quality, 85)
    Dim ici As ImageCodecInfo = GetEncoderInfo("image/jpeg")
    image2.Save("C:\1.jpg", ici, eps)

Однако в файле image2 jpeg сохраняется только очень мало свойств EXIF, а именно только модель камеры и производитель камеры.Однако, если я сохраню image2 как TIF, все свойства из исходного tif будут там.Кто-нибудь может объяснить, почему это так?

Спасибо.

Это было полезно?

Решение

Взгляните на Exiv2Sharp - эта оболочка вокруг Exiv2 должна предоставить то, что вы ищете.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top