Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Met de API's voor superresolutie van afbeeldingen kunt u afbeeldingen verscherpen en schalen.
Schalen is beperkt tot een maximumfactor van 8x, omdat hogere schalingsfactoren artefacten kunnen introduceren en de nauwkeurigheid van de afbeelding kunnen in gevaar brengen. Als de uiteindelijke breedte of hoogte groter is dan 8x de oorspronkelijke waarden, wordt er een uitzondering gegenereerd.
Voor API-details, zie API-referentie voor AI-imagingfuncties.
Zie Inhoudsveiligheid met generatieve AI-API's voor meer informatie over inhoudsbeheer.
Belangrijk
Vereisten voor pakketmanifest: Als u Windows AI imaging-API's wilt gebruiken, moet uw app worden verpakt als een MSIX-pakket met de systemAIModels mogelijkheid die is gedeclareerd in uw Package.appxmanifest. Zorg er bovendien voor dat het kenmerk van MaxVersionTested uw manifest is ingesteld op een recente Windows-versie (bijvoorbeeld 10.0.26226.0 of hoger) om de Windows AI-functies goed te ondersteunen. Het gebruik van oudere waarden kan fouten veroorzaken die niet door app zijn gedeclareerd bij het laden van het model.
<Dependencies>
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.17763.0" MaxVersionTested="10.0.26226.0" />
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.26226.0" />
</Dependencies>
Voorbeeld van Afbeelding superresolutie
In het volgende voorbeeld ziet u hoe u de schaal (, targetWidth) van een bestaande software bitmapafbeeldingtargetHeight (softwareBitmap) wijzigt en de scherpte van de afbeelding verbetert met behulp van een ImageScaler object (om de scherpte te verbeteren zonder de afbeelding te schalen, hoeft u alleen de bestaande breedte en hoogte van de afbeelding op te geven).
Zorg ervoor dat het model Image Super Resolution beschikbaar is door de GetReadyState-methode aan te roepen en vervolgens te wachten tot de EnsureReadyAsync-methode met succes wordt geretourneerd.
Zodra het Image Super Resolution-model beschikbaar is, maakt u een ImageScaler-object om ernaar te verwijzen.
Haal een verscherpte en geschaalde versie van de bestaande afbeelding op door de bestaande afbeelding en de gewenste breedte en hoogte door te geven aan het model met behulp van de methode ScaleSoftwareBitmap .
using Microsoft.Graphics.Imaging;
using Microsoft.Windows.Management.Deployment;
using Microsoft.Windows.AI;
using Windows.Graphics.Imaging;
if (ImageScaler.GetReadyState() == AIFeatureReadyState.NotReady)
{
var result = await ImageScaler.EnsureReadyAsync();
if (result.Status != AIFeatureReadyResultState.Success)
{
throw result.ExtendedError;
}
}
ImageScaler imageScaler = await ImageScaler.CreateAsync();
SoftwareBitmap finalImage = imageScaler.ScaleSoftwareBitmap(softwareBitmap, targetWidth, targetHeight);
#include <winrt/Microsoft.Graphics.Imaging.h>
#include <winrt/Microsoft.Windows.AI.h>
#include <winrt/Windows.Foundation.h>
#include <winrt/Windows.Graphics.Imaging.h>
using namespace winrt::Microsoft::Graphics::Imaging;
using namespace winrt::Microsoft::Windows::AI;
using namespace winrt::Windows::Foundation;
using namespace winrt::Windows::Graphics::Imaging;
if (ImageScaler::GetReadyState() == AIFeatureReadyState::NotReady)
{
auto loadResult = ImageScaler::EnsureReadyAsync().get();
if (loadResult.Status() != AIFeatureReadyResultState::Success)
{
throw winrt::hresult_error(loadResult.ExtendedError());
}
}
int targetWidth = 100;
int targetHeight = 100;
ImageScaler imageScaler = ImageScaler::CreateAsync().get();
Windows::Graphics::Imaging::SoftwareBitmap finalImage =
imageScaler.ScaleSoftwareBitmap(softwareBitmap, targetWidth, targetHeight);