この問題に光を当てていただければ幸いです。2つの画像があります。1つはメタデータを含むTIFファイルから作成されたもので、もう1つはjpegとして保存されるメモリ内の画像です。次に、このルーチンを使用して、exifメタデータを最初のイメージから2番目のイメージ(つまり、tifファイルから作成されたイメージからメモリ内のイメージ)に転送します。
For Each _p In image1.PropertyItems
image2.SetPropertyItem(_p)
Next
そして、これは完全にうまく機能します。すべてのexifアイテムが正常にコピーされます。デバッグモードで時計を使用してこれを確認しました。これを使用して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のすべてのプロパティがそこに表示されます。誰かがそれがなぜであるか説明できますか?
ありがとう。