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:
...
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:
...
<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:
MainWindow (Unexpected behavior):
Expected behavior
or
Avalonia version
11.1.2
OS
Windows
Additional context
No response
Source: AvaloniaUI/Avalonia