Сбой InPlaceBitmapMetadataWriter при записи ключевых слов на фотографии из последних камер - PullRequest
0 голосов
/ 29 октября 2018

Я успешно использовал InPlaceBitmapMetadataWriter для записи ключевых слов на многие фотографии, сделанные многими камерами, в том числе, когда мне нужно расширить заполнение метаданными. Однако для фотографий, сделанных последними камерами, метод TrySave всегда возвращает false для ключевых слов. Кто-нибудь знает, почему это может быть и как я могу решить это?

        using (Stream jpgFileStream = File.Open(tempPath, FileMode.Open, FileAccess.ReadWrite))
        {
            // BitmapCacheOption.None tells the decoder to delay decoding until encoding. The JPEG 
            // encoder understands that the input was a JPEG and just copies over the image bits without decompressing 
            // and recompressing them to perform a lossless operation.
            BitmapDecoder jpgDecoder = BitmapDecoder.Create(jpgFileStream, BitmapCreateOptions.None, BitmapCacheOption.None);

            if (jpgDecoder.Frames[0] != null && jpgDecoder.Frames[0].Metadata != null)
            {
                InPlaceBitmapMetadataWriter metadataJpgWriter = jpgDecoder.Frames[0].CreateInPlaceBitmapMetadataWriter();

                metadataJpgWriter.SetQuery("System.Keywords", Keywords.ToArray());;

                if (metadataJpgWriter.TrySave())
                {
                    traySaveSuccessful = true;
                }
            }
        }
...