Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
As APIs de Super Resolução de Imagem permitem nitidez e escala de imagem.
O dimensionamento é limitado a um fator máximo de 8x, pois fatores de escala mais altos podem introduzir artefatos e comprometer a precisão da imagem. Se a largura ou altura final for maior que 8x seus valores originais, uma exceção será lançada.
Para obter detalhes da API, consulte referência de API para recursos de imagem de IA.
Para obter detalhes de moderação de conteúdo, consulte Segurança de conteúdo com APIs de IA generativas.
Importante
Requisitos de manifesto do pacote: para usar APIs de imagem de IA do Windows, seu aplicativo deve ser empacotado como um pacote MSIX com a systemAIModels funcionalidade declarada em seu Package.appxmanifest. Além disso, verifique se o atributo do manifesto está configurado para uma versão recente do MaxVersionTested Windows (por exemplo, 10.0.26226.0 ou posterior) para suportar adequadamente os recursos de IA do Windows. O uso de valores mais antigos pode causar erros "Não declarados por aplicativo" ao carregar o modelo.
<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>
Exemplo de Super Resolução de Imagem
O exemplo a seguir mostra como alterar a escala (targetWidth, targetHeight) de uma imagem de bitmap de software existente (softwareBitmap) e melhorar a nitidez da imagem usando um ImageScaler objeto (para melhorar a nitidez sem dimensionar a imagem, basta especificar a largura e a altura da imagem existentes).
Verifique se o modelo de Super Resolução de Imagem está disponível chamando o método GetReadyState e aguardando o método EnsureReadyAsync retornar com êxito.
Depois que o modelo de Super Resolução de Imagem estiver disponível, crie um objeto ImageScaler para referenciá-lo.
Obtenha uma versão afiada e dimensionada da imagem existente passando a imagem existente e a largura e altura desejadas para o modelo usando o método 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);