Windows tag images with

Метаданные изображений Image Metadata

В этой статье показано, как считывать и записывать свойства метаданных изображения, а также как жеотаг файлы с помощью класса служебной программы жеотагхелпер . This article shows how to read and write image metadata properties and how to geotag files using the GeotagHelper utility class.

Свойства образа Image properties

Свойство StorageFile.Properties возвращает объект StorageItemContentProperties, предоставляющий доступ к связанным с содержимым сведениям о файле. The StorageFile.Properties property returns a StorageItemContentProperties object that provides access to content-related information about the file. Чтобы получить свойства изображения, вызовите GetImagePropertiesAsync. Get the image-specific properties by calling GetImagePropertiesAsync. Возвращенный объект ImageProperties предоставляет члены, содержащие поля основных метаданных изображения, такие как название изображения и дата захвата. The returned ImageProperties object exposes members that contain basic image metadata fields, like the title of the image and the capture date.

Для получения доступа к более широкому спектру метаданных файла используйте систему свойств Windows — набор свойств метаданных файла, которые можно получить с помощью уникального идентификатора строки. To access a larger set of file metadata, use the Windows Property System, a set of file metadata properties that can be retrieved with a unique string identifier. Создайте список строк и добавьте идентификаторы для всех свойств, которые требуется получить. Create a list of strings and add the identifier for each property you want to retrieve. Метод ImageProperties.RetrievePropertiesAsync использует этот список строк и возвращает словарь пар «ключ-значение», где ключ — идентификатор свойства, а значение — значение свойства. The ImageProperties.RetrievePropertiesAsync method takes this list of strings and returns a dictionary of key/value pairs where the key is the property identifier and the value is the property value.

Полный список свойств Windows, включая идентификаторы и типы для каждого свойства, см. в разделе Свойства Windows. For a complete list of Windows Properties, including the identifiers and type for each property, see Windows Properties.

Некоторые свойства поддерживаются только для определенных контейнеров файлов и кодеков изображения. Some properties are only supported for certain file containers and image codecs. Список метаданных изображения, поддерживаемых для каждого типа изображения, см. в разделе Политика метаданных фотографии. For a listing of the image metadata supported for each image type, see Photo Metadata Policies.

Поскольку неподдерживаемые свойства при получении могут возвращать значение NULL, обязательно проверьте это, прежде чем использовать возвращенное значение метаданных. Because properties that are unsupported may return a null value when retrieved, always check for null before using a returned metadata value.

GeotagHelper Geotag helper

GeotagHelper — это служебный класс, который помогает отмечать изображения с географическими данными, используя непосредственно API Windows.Devices.Geolocation, без необходимости анализировать или создавать формат метаданных вручную. GeotagHelper is a utility class that makes it easy to tag images with geographic data using the Windows.Devices.Geolocation APIs directly, without having to manually parse or construct the metadata format.

Если уже имеется объект Geopoint, представляющий расположение, которое нужно отметить на изображении, после предыдущего использования API географического расположения или из другого источника, то вы можете задать данные геотега, вызвав метод GeotagHelper.SetGeotagAsync и передав StorageFile и Geopoint. If you already have a Geopoint object representing the location you want to tag in the image, either from a previous use of the geolocation APIs or some other source, you can set the geotag data by calling GeotagHelper.SetGeotagAsync and passing in a StorageFile and the Geopoint.

Читайте также:  Apple chrome mac os

Чтобы задать данные геотега с текущим расположением устройства, создайте новый объект Geolocator и вызовите метод GeotagHelper.SetGeotagFromGeolocatorAsync, передав Geolocator и файл, который нужно отметить. To set the geotag data using the device’s current location, create a new Geolocator object and call GeotagHelper.SetGeotagFromGeolocatorAsync passing in the Geolocator and the file to be tagged.

Необходимо включить возможность устройства location в манифест приложения для использования API SetGeotagFromGeolocatorAsync. You must include the location device capability in your app manifest in order to use the SetGeotagFromGeolocatorAsync API.

Прежде чем вызвать RequestAccessAsync, необходимо вызвать SetGeotagFromGeolocatorAsync, чтобы убедиться, что пользователь предоставил приложению разрешение использовать его расположение. You must call RequestAccessAsync before calling SetGeotagFromGeolocatorAsync to ensure the user has granted your app permission to use their location.

Дополнительные сведения об API географического расположения см. в разделе Карты и расположение. For more information on the geolocation APIs, see Maps and location.

Чтобы получить объект GeoPoint, представляющий географическое расположение, отмеченное в файле изображения, вызовите метод GetGeotagAsync. To get a GeoPoint representing the geotagged location of an image file, call GetGeotagAsync.

Декодирование и кодирование метаданных изображения Decode and encode image metadata

Наиболее современный способ работы с данными изображения — чтение и запись свойств на уровне потока с помощью BitmapDecoder или BitmapEncoder. The most advanced way of working with image data is to read and write the properties on the stream level using a BitmapDecoder or a BitmapEncoder. Для этих операций можно использовать свойства Windows, чтобы указать данные для чтения или записи. Однако вы также можете использовать язык запросов метаданных, предоставленный компонентом обработки изображений Windows (WIC), чтобы указать путь к запрашиваемому свойству. For these operations you can use Windows Properties to specify the data you are reading or writing, but you can also use the metadata query language provided by the Windows Imaging Component (WIC) to specify the path to a requested property.

Для чтения метаданных изображения с помощью этого метода требуется наличие BitmapDecoder, созданного с использованием потока файла исходного изображения. Reading image metadata using this technique requires you to have a BitmapDecoder that was created with the source image file stream. Сведения о том, как это сделать, см. в разделе Обработка изображений. For information on how to do this, see Imaging.

Получив декодер, создайте список строк и добавьте новые записи для всех свойств метаданных, которые требуется получить, используя строку идентификатора свойства Windows или запрос метаданных WIC. Once you have the decoder, create a list of strings and add a new entry for each metadata property you want to retrieve, using either the Windows Property identifier string or a WIC metadata query. Вызовите метод BitmapPropertiesView.GetPropertiesAsync в члене декодера BitmapProperties для запроса указанных свойств. Call the BitmapPropertiesView.GetPropertiesAsync method on the decoder’s BitmapProperties member to request the specified properties. Свойства возвращаются в словаре пар «ключ-значение», в котором содержатся имя свойства или путь и значение свойства. The properties are returned in a dictionary of key/value pairs containing the property name or path and the property value.

Читайте также:  Iperf mac os install

Подробные сведения о поддерживаемых свойствах и языке запросов метаданных WIC см. в разделе Запросы собственных метаданных формата изображений WIC. For information on the WIC metadata query language and the properties supported, see WIC image format native metadata queries.

Многие свойства метаданных поддерживаются только некоторыми типами изображений. Many metadata properties are only supported by a subset of image types. Вызов метода GetPropertiesAsync приведет к сбою с кодом ошибки 0x88982F41, если одно из запрашиваемых свойств не поддерживается изображением, связанным с декодером, и с кодом ошибки 0x88982F81, если изображение полностью не поддерживает метаданные. GetPropertiesAsync will fail with the error code 0x88982F41 if one of the requested properties is not supported by the image associated with the decoder and 0x88982F81 if the image does not support metadata at all. Константы, связанные с этими кодами ошибок: ВИНКОДЕК _ Err _ ПРОПЕРТИНОТСУППОРТЕД и винкодек _ Err _ унсуппортедоператион и определены в файле заголовка Winerror. h. The constants associated with these error codes are WINCODEC_ERR_PROPERTYNOTSUPPORTED and WINCODEC_ERR_UNSUPPORTEDOPERATION and are defined in the winerror.h header file.

Так как изображение может не содержать значение для указанного свойства, используйте IDictionary.ContainsKey, чтобы проверить, присутствует ли свойство в результатах, прежде чем получить доступ к нему. Because an image may or may not contain a value for a particular property, use the IDictionary.ContainsKey to verify that a property is present in the results before attempting to access it.

Для записи метаданных изображения в поток требуется BitmapEncoder, связанный с файлом выходного изображения. Writing image metadata to the stream requires a BitmapEncoder associated with the image output file.

Создайте объект BitmapPropertySet, который будет содержать необходимые значения свойств. Create a BitmapPropertySet object to contain the property values you want set. Создайте объект BitmapTypedValue, который будет представлять значение свойства. Create a BitmapTypedValue object to represent the property value. Этот объект использует object в качестве значения и члена перечисления PropertyType, определяющего тип значения. This object uses an object as the value and member of the PropertyType enumeration that defines the type of the value. Добавьте BitmapTypedValue в BitmapPropertySet, а затем вызовите BitmapProperties.SetPropertiesAsync, чтобы кодировщик записал свойства в поток. Add the BitmapTypedValue to the BitmapPropertySet and then call BitmapProperties.SetPropertiesAsync to cause the encoder to write the properties to the stream.

Дополнительные сведения о том, какие свойства поддерживаются для определенных типов файлов изображений, см. в разделах Свойства Windows, Политика метаданных фотографии и Запросы собственных метаданных формата изображений WIC. For details on which properties are supported for which image file types, see Windows Properties, Photo Metadata Policies, and WIC image format native metadata queries.

Вызов метода SetPropertiesAsync приведет к сбою с кодом ошибки 0x88982F41, если одно из запрашиваемых свойств не поддерживается изображением, связанным с кодировщиком. SetPropertiesAsync will fail with the error code 0x88982F41 if one of the requested properties is not supported by the image associated with the encoder.

Общие сведения о компоненте создания образов Windows

Компонент Windows Imaging Component (WIC) предоставляет расширяемую платформу для работы с изображениями и метаданными изображений. WIC позволяет независимым поставщикам программного обеспечения и независимым поставщикам оборудования (IHV) разрабатывать собственные кодеки изображений и поддерживать ту же самую платформу, что и стандартные форматы изображений (например, TIFF, JPEG, PNG, GIF, BMP и Хдфото). Один последовательный набор интерфейсов используется для обработки изображений независимо от формата изображения, поэтому любое приложение, использующее WIC, получает автоматическую поддержку новых форматов изображений сразу после установки кодека. Расширяемая платформа метаданных позволяет приложениям считывать и записывать собственные конфиденциальные метаданные непосредственно в файлы изображений, поэтому метаданные никогда не теряются или не отделяются от изображения.

Читайте также:  Windows no root cause

Этот раздел включает следующие подразделы:

Компоненты компонента работы с образами Windows

Основные возможности WIC:

  • Позволяет разработчикам приложений выполнять операции обработки изображений в любом формате изображения через единый последовательный набор общих интерфейсов, не требуя перед этим знания о конкретных форматах изображений.
  • Предоставляет расширяемую архитектуру «Plug and Play» для кодеков изображений, форматов пикселей и метаданных с автоматическим обнаружением новых форматов во время выполнения.
  • Поддерживает чтение и запись произвольных метаданных в файлах изображений с возможностью сохранять нераспознанные метаданные во время редактирования.
  • Сохраняет данные изображений с высоким уровнем глубины, до 32 бит на канал в течение всего конвейера обработки изображений.
  • Предоставляет встроенную поддержку для большинства популярных форматов изображений, форматов пикселей и схем метаданных.

Собственные кодеки

Компонент WIC включает несколько встроенных кодеков. С платформой поставляются следующие стандартные кодеки.

Tagging photos in Windows 10

Replies (2) 

Hello, I’m Sheri a Microsoft Community Advisor. I’ll be happy to assist you.

1. Go into your file explorer to the photos you want to tag.

2. Select the picture(s) you wish to tag and right click.

3. At the bottom of the drop-down list, choose Properties.

4. Click the tab marked Details, and under the Description section is a category marked Tags.

5. Click to the right of this to get the text box open and add your tags.

6. Don’t forget to click OK at the bottom once you’re done!

Sheri D.
Microsoft Community Advisor

21 people found this reply helpful

Was this reply helpful?

Sorry this didn’t help.

Great! Thanks for your feedback.

How satisfied are you with this reply?

Thanks for your feedback, it helps us improve the site.

How satisfied are you with this reply?

Thanks for your feedback.

You will have to use File Explorer’s tag capability. Right click on a picture > Properties > Details > Put tags here (You can do mass change also by selecting multiple photos and then right clicking it)

I will recommend you should download Irfan View which is the most popular image viewer from Microsoft Store.

Open a picture in Irfan View > Press T to open Thumbnails of your pictures > Select the file(s) which you want to tag > Right click > JPG Lossless Operation > Set IPTC Data to Selected Files > Use Keywords to tag your pictures.

Best regards
Vijay A. Verma @ http://www.eforexcel.com/

Timezone: UTC+05:30, PST+12:30
Availability Hours (UTC) : 05:00 AM — 05:00 PM

10 people found this reply helpful

Was this reply helpful?

Sorry this didn’t help.

Great! Thanks for your feedback.

How satisfied are you with this reply?

Thanks for your feedback, it helps us improve the site.

Оцените статью