#17235·Avalonia

Incorrect Image Rendering with Bitmap of DPI other than 96

Author: SeWZCCreated Oct 10, 2024Updated Sep 17, 2026
Labelsbug

Describe the bug

When using a Bitmap with a DPI other than 96, the rendering of the Image is not as expected.

To Reproduce

MainWindow.axaml.cs:

cs
...
 var renderTargetBitmap = new RenderTargetBitmap(new PixelSize(200, 200), new Vector(48, 48));
 using (var ctx = renderTargetBitmap.CreateDrawingContext())
 {
     ctx.DrawRectangle(Brushes.Red, null, new Rect(0, 0, 400, 400));
     ctx.DrawRectangle(Brushes.Yellow, null, new Rect(200, 200, 200, 200));
     ctx.DrawRectangle(Brushes.Blue, null, new Rect(300, 300, 100, 100));
 }

 if (!Design.IsDesignMode)
 {
     renderTargetBitmap.Save("test.png");
     Process.Start(new ProcessStartInfo("test.png") { UseShellExecute = true });
 }

 Image1.Source = renderTargetBitmap;
 Image2.Source = renderTargetBitmap;
 Image3.Source = renderTargetBitmap;
...

MainWindow.axaml:

xaml
...
<StackPanel Orientation="Horizontal">

    <StackPanel.Styles>
        <Style Selector="Border">
            <Setter Property="BorderBrush" Value="Black" />
            <Setter Property="BorderThickness" Value="1" />
        </Style>
    </StackPanel.Styles>

    <Border Width="400" Height="400">
        <Image x:Name="Image1" Stretch="None" />
    </Border>
    <Border Width="200" Height="200">
        <Image x:Name="Image2" Stretch="None" />
    </Border>
    <Border Width="200" Height="200">
        <Image x:Name="Image3" Stretch="Fill" />
    </Border>

</StackPanel>
...

test.png: image

MainWindow (Unexpected behavior): image

Expected behavior

image

or

image

Avalonia version

11.1.2

OS

Windows

Additional context

No response