Mise à l’échelle d’une source bitmap
Cette rubrique montre comment mettre à l’échelle un IWICBitmapSource à l’aide du composant IWICBitmapScaler .
Pour mettre à l’échelle une source bitmap
Créez un objet IWICImagingFactory pour créer des objets WIC (Windows Imaging Component).
// Create WIC factory hr = CoCreateInstance( CLSID_WICImagingFactory, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&m_pIWICFactory) );
Utilisez la méthode CreateDecoderFromFilename pour créer un IWICBitmapDecoder à partir d’un fichier image.
HRESULT hr = S_OK; IWICBitmapDecoder *pIDecoder = NULL; IWICBitmapFrameDecode *pIDecoderFrame = NULL; IWICBitmapScaler *pIScaler = NULL; hr = m_pIWICFactory->CreateDecoderFromFilename( L"turtle.jpg", // Image to be decoded NULL, // Do not prefer a particular vendor GENERIC_READ, // Desired read access to the file WICDecodeMetadataCacheOnDemand, // Cache metadata when needed &pIDecoder // Pointer to the decoder );
Obtenez le premier IWICBitmapFrameDecode de l’image.
// Retrieve the first bitmap frame. if (SUCCEEDED(hr)) { hr = pIDecoder->GetFrame(0, &pIDecoderFrame); }
Le format de fichier JPEG ne prend en charge qu’une seule image. Étant donné que le fichier dans cet exemple est un fichier JPEG, le premier frame (
0
) est utilisé. Pour les formats d’image qui ont plusieurs images, consultez Comment récupérer les images d’une image pour accéder à chaque image de l’image.Créez le IWICBitmapScaler à utiliser pour la mise à l’échelle de l’image.
// Create the scaler. if (SUCCEEDED(hr)) { hr = m_pIWICFactory->CreateBitmapScaler(&pIScaler); }
Initialisez l’objet scaler avec les données d’image du frame bitmap à la moitié de la taille.
// Initialize the scaler to half the size of the original source. if (SUCCEEDED(hr)) { hr = pIScaler->Initialize( pIDecoderFrame, // Bitmap source to scale. uiWidth/2, // Scale width to half of original. uiHeight/2, // Scale height to half of original. WICBitmapInterpolationModeFant); // Use Fant mode interpolation. }
Dessinez ou traitez la source bitmap mise à l’échelle.
L’illustration suivante illustre la mise à l’échelle de l’imagerie. L’image d’origine à gauche est de 200 x 130 pixels. L’image de droite est l’image d’origine mise à l’échelle à la moitié de la taille.
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour