refactor: do not upscale images

Signed-off-by: leo <longshuang@msn.cn>
This commit is contained in:
leo 2025-06-09 17:22:31 +08:00
parent 1b1dc2f666
commit 69792b3262
No known key found for this signature in database
3 changed files with 12 additions and 26 deletions

View file

@ -86,26 +86,12 @@ namespace SourceGit.Views
var imageSize = image.Size;
var scaleW = availableSize.Width / imageSize.Width;
var scaleH = availableSize.Height / imageSize.Height;
var scale = Math.Min(scaleW, scaleH);
var scale = Math.Min(1, Math.Min(scaleW, scaleH));
return new Size(scale * imageSize.Width, scale * imageSize.Height);
}
return availableSize;
}
protected override Size ArrangeOverride(Size finalSize)
{
if (Image is { } image)
{
var imageSize = image.Size;
var scaleW = finalSize.Width / imageSize.Width;
var scaleH = finalSize.Height / imageSize.Height;
var scale = Math.Min(scaleW, scaleH);
return new Size(scale * imageSize.Width, scale * imageSize.Height);
}
return base.ArrangeOverride(finalSize);
}
}
public class ImageSwipeControl : ImageContainer
@ -243,7 +229,7 @@ namespace SourceGit.Views
{
var sw = available.Width / img.Width;
var sh = available.Height / img.Height;
var scale = Math.Min(sw, sh);
var scale = Math.Min(1, Math.Min(sw, sh));
return new Size(scale * img.Width, scale * img.Height);
}
@ -348,7 +334,7 @@ namespace SourceGit.Views
{
var sw = available.Width / img.Width;
var sh = available.Height / img.Height;
var scale = Math.Min(sw, sh);
var scale = Math.Min(1, Math.Min(sw, sh));
return new Size(scale * img.Width, scale * img.Height);
}

View file

@ -32,8 +32,8 @@
<TextBlock Classes="primary" Text="{DynamicResource Text.Bytes}" Foreground="{DynamicResource Brush.FG2}" Margin="2,0,0,0"/>
</StackPanel>
<Border Grid.Row="1" Margin="0,12,0,0" Effect="drop-shadow(0 0 8 #A0000000)">
<Border Background="{DynamicResource Brush.Popup}" HorizontalAlignment="Center" Padding="8">
<Border Grid.Row="1" Margin="0,12,0,0" HorizontalAlignment="Center" VerticalAlignment="Center" Effect="drop-shadow(0 0 8 #A0000000)">
<Border Background="{DynamicResource Brush.Popup}" Padding="8">
<Border BorderThickness="1" BorderBrush="{DynamicResource Brush.Border1}">
<v:ImageView Image="{Binding Old}"/>
</Border>
@ -52,8 +52,8 @@
<TextBlock Classes="primary" Text="{DynamicResource Text.Bytes}" Foreground="{DynamicResource Brush.FG2}" Margin="2,0,0,0"/>
</StackPanel>
<Border Grid.Row="1" Margin="0,12,0,0" Effect="drop-shadow(0 0 8 #A0000000)">
<Border Background="{DynamicResource Brush.Popup}" HorizontalAlignment="Center" Padding="8">
<Border Grid.Row="1" Margin="0,12,0,0" HorizontalAlignment="Center" VerticalAlignment="Center" Effect="drop-shadow(0 0 8 #A0000000)">
<Border Background="{DynamicResource Brush.Popup}" Padding="8">
<Border BorderThickness="1" BorderBrush="{DynamicResource Brush.Border1}">
<v:ImageView Image="{Binding New}"/>
</Border>
@ -87,8 +87,8 @@
<TextBlock Grid.Column="7" Classes="primary" Text="{DynamicResource Text.Bytes}" Foreground="{DynamicResource Brush.FG2}" Margin="2,0,0,0"/>
</Grid>
<Border Grid.Row="1" Margin="0,12,0,0" Effect="drop-shadow(0 0 8 #A0000000)">
<Border HorizontalAlignment="Center" Background="{DynamicResource Brush.Window}">
<Border Grid.Row="1" Margin="0,12,0,0" HorizontalAlignment="Center" Effect="drop-shadow(0 0 8 #A0000000)">
<Border Background="{DynamicResource Brush.Window}">
<Border BorderThickness="1" BorderBrush="{DynamicResource Brush.Border1}" Margin="8">
<v:ImageSwipeControl OldImage="{Binding Old}"
NewImage="{Binding New}"
@ -123,8 +123,8 @@
<TextBlock Grid.Column="7" Classes="primary" Text="{DynamicResource Text.Bytes}" Foreground="{DynamicResource Brush.FG2}" Margin="2,0,0,0"/>
</Grid>
<Border Grid.Row="1" Margin="0,12,0,0" Effect="drop-shadow(0 0 8 #A0000000)">
<Border HorizontalAlignment="Center" Background="{DynamicResource Brush.Window}">
<Border Grid.Row="1" Margin="0,12,0,0" HorizontalAlignment="Center" Effect="drop-shadow(0 0 8 #A0000000)">
<Border Background="{DynamicResource Brush.Window}">
<Border BorderThickness="1" BorderBrush="{DynamicResource Brush.Border1}" Margin="8">
<v:ImageBlendControl Alpha="{Binding #ImageBlendSlider.Value}"
OldImage="{Binding Old}"

View file

@ -29,7 +29,7 @@
<DataTemplate DataType="m:RevisionImageFile">
<Grid RowDefinitions="*,Auto" Margin="0,8" VerticalAlignment="Center" HorizontalAlignment="Center">
<Border Grid.Row="0" Effect="drop-shadow(0 0 8 #A0000000)">
<Border Grid.Row="0" HorizontalAlignment="Center" Effect="drop-shadow(0 0 8 #A0000000)">
<Border Background="{DynamicResource Brush.Window}">
<Border BorderThickness="1" BorderBrush="{DynamicResource Brush.Border1}" Margin="8">
<v:ImageView Image="{Binding Image}"/>