Korzystanie WIC jestem w stanie napisać XMP informacje o ludziach Tagged: People Tagging OverviewJak napisać XMP „Ludzie Tagged” w Uniwersalny Aplikacje [UWP]
Teraz staram się zrobić to samo w UWP ale nie jest działa:
Kiedy próbuję zmieniać tylko zwykły tag, taki jak "/ xmp/Title", działa.
Ale kiedy próbuję zmienić "PersonDisplayName" lub "Rectangle", to nie działa.
Przykładowy kod:
public async void SaveNewPeopleTagged(StorageFile file, string name , string rect)
{
try
{
using (IRandomAccessStream fileStream = await file.OpenAsync(FileAccessMode.ReadWrite),
memStream = new InMemoryRandomAccessStream())
{
BitmapDecoder decoder = await BitmapDecoder.CreateAsync(fileStream);
// Set the encoder's destination to the temporary, in-memory stream.
BitmapEncoder encoder = await BitmapEncoder.CreateForTranscodingAsync(memStream, decoder);
var propertySet = new Windows.Graphics.Imaging.BitmapPropertySet();
BitmapTypedValue btName = new BitmapTypedValue(name, Windows.Foundation.PropertyType.String);
//"/xmp/<xmpstruct>MP:RegionInfo/<xmpbag>MPRI:Regions/PersonDisplayName" **is not working**
propertySet.Add("/xmp/RegionInfo/Regions/PersonDisplayName", btName);
BitmapTypedValue btRect = new BitmapTypedValue(rect, Windows.Foundation.PropertyType.String);
//"/xmp/<xmpstruct>MP:RegionInfo/<xmpbag>MPRI:Regions/Rectangle" **is not working**
propertySet.Add("/xmp/RegionInfo/Regions/Rectangle", btRect);
await encoder.BitmapProperties.SetPropertiesAsync(propertySet);
//**Give a exception... "Value does not fall within the expected range."**
//If I use only : propertySet.Add("/xmp/Title", ...); it is working
await encoder.FlushAsync();
await memStream.FlushAsync();
memStream.Seek(0);
fileStream.Seek(0);
fileStream.Size = 0;
await RandomAccessStream.CopyAsync(memStream, fileStream);
}
}
catch (Exception err)
{
Debug.WriteLine(err.Message);
}
}
Czy ktoś ma pomysły lub sugestie?
Dzięki
widzę tylko, że czytasz plik (możliwe plik obrazu) z 'InstalledLocation' i włączyć go do strumienia, a następnie użyć dekoder i koder 'Bitmap' do zrobienia czegoś z tym strumieniem, a następnie przywrócić go jako plik, co chcesz zrobić z tym plikiem? –
Próbuję wstawić metadane do bitmapy w UWP, jestem w stanie odczytać wszystkie metadane. Jestem w stanie zapisać wszystkie metadane w bitmapie, z wyjątkiem tagu osób. W C++/Desktop działa on przy użyciu WIC, ale w wersji UWP nie działa, – Cassius
Próbowałem również do mojego obecnego projektu, aby oznaczyć ludzi tagami, ale to nie zadziałało. Czy ktoś znalazł rozwiązanie tego problemu? – ctron