DPI compensation effect

Use the DPI compensation effect to automatically adjust an input bitmap to match the DPI of the context. This is useful for situations where a bitmap is created or loaded at a different DPI than the screen.

The CLSID for this effect is CLSID_D2D1DpiCompensation.

Effect properties

Display name and index enumeration Description
InterpolationMode
D2D1_DPICOMPENSATION_PROP_INTERPOLATION_MODE
The interpolation mode the effect uses to scale the image.
The type is D2D1_DPICOMPENSATION_INTERPOLATION_MODE.
The default value is D2D1_DPICOMPENSATION_INTERPOLATION_MODE_LINEAR .
BorderMode
D2D1_DPICOMPENSATION_PROP_BORDER_MODE
The mode used to calculate the border of the image, soft or hard. See Border modes for more info.
The type is D2D1_BORDER_MODE.
The default value is D2D1_BORDER_MODE_SOFT.
InputDpi
D2D1_DPICOMPENSATION_PROP_INPUT_DPI
The DPI of the input image.
The type is FLOAT.
The default value is 96.0f.

Interpolation modes

Enumeration Description
D2D1_DPICOMPENSATION_INTERPOLATION_MODE_NEAREST_NEIGHBOR Samples the nearest single point and uses that. This mode uses less processing time, but outputs the lowest quality image.
D2D1_DPICOMPENSATION_INTERPOLATION_MODE_LINEAR Uses a four point sample and linear interpolation. This mode uses more processing time than the nearest neighbor mode, but outputs a higher quality image.
D2D1_DPICOMPENSATION_INTERPOLATION_MODE_CUBIC Uses a 16 sample cubic kernel for interpolation. This mode uses the most processing time, but outputs a higher quality image.
D2D1_DPICOMPENSATION_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR Uses 4 linear samples within a single pixel for good edge anti-aliasing. This mode is good for scaling down by small amounts on images with few pixels.
D2D1_DPICOMPENSATION_INTERPOLATION_MODE_ANISOTROPIC Uses anisotropic filtering to sample a pattern according to the transformed shape of the bitmap.
D2D1_DPICOMPENSATION_INTERPOLATION_MODE_HIGH_QUALITY_CUBIC Uses a variable size high quality cubic kernel to perform a pre-downscale the image if downscaling is involved in the transform matrix. Then uses the cubic interpolation mode for the final output.

Note

If you don't select a mode, the effect defaults to D2D1_DPICOMPENSTION_INTERPOLATION_MODE_LINEAR.

Border modes

Name Description
D2D1_BORDER_MODE_SOFT Pixels outside of the input boundaries are generated by the mirror border effect.
D2D1_BORDER_MODE_HARD Pixels outside of the input boundaries are transparent black.

Requirements

Requirement Value
Minimum supported client Windows 8 and Platform Update for Windows 7 [desktop apps | Windows Store apps]
Minimum supported server Windows 8 and Platform Update for Windows 7 [desktop apps | Windows Store apps]
Header d2d1effects.h
Library d2d1.lib, dxguid.lib

ID2D1Effect