Effet d’échelle
Utilisez cet effet pour mettre à l’échelle une image. L’effet a six modes de mise à l’échelle : le plus proche voisin, linéaire, cubique, multi-échantillon linéaire, anisotrope et de haute qualité.
Le CLSID de cet effet est CLSID _ D2D1Scale.
- Exemple d’image
- Propriétés d’effet
- Modes d’interpolation
- Bitmap de sortie
- Configuration requise
- Rubriques connexes
Exemple d’image
Cet exemple montre l’effet de mise à l’échelle dans 2 fois l’entrée et le rognage à la taille d’origine.
| Avant |
|---|
![]() |
| Après |
![]() |
ComPtr<ID2D1Effect> scaleEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Scale, &scaleEffect);
scaleEffect->SetInput(0, bitmap);
scaleEffect->SetValue(D2D1_SCALE_PROP_CENTER_POINT, D2D1::Vector2F(256.0f, 192.0f));
scaleEffect->SetValue(D2D1_SCALE_PROP_SCALE, D2D1::Vector2F(2.0f, 2.0f));
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(scaleEffect.Get());
m_d2dContext->EndDraw();
Propriétés d’effet
| Nom complet et énumération d’index | Description |
|---|---|
| Scale D2D1_SCALE_PROP_SCALE |
Le montant de l’échelle de la direction X et Y en tant que rapport entre la taille de sortie et la taille d’entrée. Cette propriété a D2D1_VECTOR_2Fdefined en tant que : (X Scale, échelle Y). Les valeurs de mise à l’échelle sont FLOAT, sans unité, et doivent être positives ou égales à 0. Le type est D2D1_VECTOR_2F. La valeur par défaut est {1.0 f, 1.0 f}. |
| CenterPoint D2D1_SCALE_PROP_CENTER_POINT |
Point central de mise à l’échelle de l’image. Cette propriété est une D2D1_VECTOR_2F définie comme suit : (point X, point Y). Les unités sont en DIP. Utilisez la propriété point central pour mettre à l’échelle un point autre que l’angle supérieur gauche. Le type est D2D1_VECTOR_2F. La valeur par défaut est {0.0 f, 0.0 f}. |
| BorderMode D2D1_SCALE_PROP_BORDER_MODE |
Le mode utilisé pour calculer la bordure de l’image, soft ou Hard. Pour plus d’informations, consultez modes de bordure . Le type est D2D1_BORDER_MODE. La valeur par défaut est D2D1_BORDER_MODE_SOFT. |
| Netteté D2D1_SCALE_PROP_SHARPNESS |
Dans le mode d’interpolation cubique de haute qualité, le niveau de netteté du filtre de mise à l’échelle est une valeur float comprise entre 0 et 1. Les valeurs sont sans unité. Vous pouvez utiliser la netteté pour ajuster la qualité d’une image lors de la mise à l’échelle de l’image. Le facteur de netteté affecte la forme du noyau. Plus le facteur de netteté est élevé, plus le noyau est petit. [!Note] Le type est FLOAT. La valeur par défaut est 0.0 f. |
| InterpolationMode D2D1_SCALE_PROP_INTERPOLATION_MODE |
Mode d’interpolation utilisé par l’effet pour mettre l’image à l’échelle. Il existe 6 modes de mise à l’échelle qui vont de la qualité et de la vitesse. Pour plus d’informations, consultez modes d’interpolation . Le type est D2D1_SCALE_INTERPOLATION_MODE. La valeur par défaut est D2D1_SCALE_INTERPOLATION_MODE_LINEAR. |
Modes de bordure
| Nom | Description |
|---|---|
| _Mode de bordure d2d1 _ _ | L’effet remplit l’image d’entrée avec des pixels noirs transparents pour les échantillons en dehors des limites d’entrée lorsqu’elle applique le noyau de convolution. Cela crée une bordure douce pour l’image et, dans le processus, développe la bitmap de sortie de la taille du noyau. |
| D2D1 _ mode de bordure _ _ difficile | L’effet étend l’image d’entrée avec une transformation de bordure de type miroir pour les exemples en dehors des limites d’entrée. La taille de l’image bitmap de sortie est égale à la taille de l’image bitmap d’entrée. |
`
Modes d’interpolation
| Énumération | Description |
|---|---|
| D2D1 _ _ mode d’interpolation _ _ le plus proche _ voisin | Échantillonne le point unique le plus proche et l’utilise. Ce mode utilise moins de temps de traitement, mais génère l’image de qualité la plus faible. |
| D2D1 _ _ _ mode interpolation _ linéaire | Utilise un échantillon à quatre points et une interpolation linéaire. Ce mode utilise plus de temps de traitement que le mode voisin le plus proche, mais génère une image de qualité supérieure. |
| D2D1 _ _ _ mode interpolation _ cubique | Utilise un exemple de noyau cubique 16 pour l’interpolation. Ce mode utilise le plus de temps de traitement, mais génère une image de qualité supérieure. |
| _Mode interpolation à l’échelle d2d1 multi- _ _ _ _ exemple _ linéaire | Utilise 4 échantillons linéaires au sein d’un même pixel pour une bonne anticrénelage. Ce mode est adapté à la réduction de la taille des images avec quelques pixels. |
| D2D1 _ _ mode d’interpolation _ _ anisotrope | Utilise le filtrage anisotrope pour échantillonner un modèle en fonction de la forme transformée de l’image bitmap. |
| D2D1 mise à l' _ échelle _ _ en mode interpolation de _ haute _ qualité _ cubique | Utilise un noyau cubique de haute qualité variable pour effectuer une pré-réduire de l’image si downscaling est impliqué dans la matrice de transformation. Utilise ensuite le mode d’interpolation cubique pour la sortie finale. |
Notes
Si vous ne sélectionnez pas de mode, l’effet par défaut est D2D1 mettre à l' _ échelle le _ _ mode interpolation _ linéaire.
Notes
Le mode anisotrope génère des mipmaps lors de la mise à l’échelle. Toutefois, si vous affectez à la propriété Cached la valeur true sur les effets entrés dans cet effet, le des mipmaps ne sera pas généré à chaque fois pour des images suffisamment petites.
Bitmap de sortie
L’emplacement et la taille de l’image bitmap de sortie dépendent du facteur d’échelle et du point central spécifiés.
Vous pouvez calculer la taille de l’image bitmap de sortie à l’aide de cette équation :
- BitmapSize? (Pixels) = mettre à l’échelle ? * Taille de la bitmap d’origine ? (DIP) * (UserDPI/96)
BitmapSizey(pixels) = mettre à l’échelley * taille de bitmap d’originey (DIP) * (UserDPI/96)
L’effet arrondit les fractions de pixels au pixel entier le plus proche.
L’emplacement de la bitmap est (0,0) ou la valeur de la propriété du point central.
Spécifications
| Condition requise | Valeur |
|---|---|
| Client minimal pris en charge | mise à jour Windows 8 et de plateforme pour les applications de bureau Windows 7 Windows les applications du windows [ | Store] |
| Serveur minimal pris en charge | mise à jour Windows 8 et de plateforme pour les applications de bureau Windows 7 Windows les applications du windows [ | Store] |
| En-tête | d2d1effects. h |
| Bibliothèque | d2d1. lib, dxguid. lib |

