Skip to content

Commit

Permalink
DXCanvas: use NearestNeighbor for 100% scale
Browse files Browse the repository at this point in the history
  • Loading branch information
d2phap committed Nov 28, 2023
1 parent 9f4224b commit 88c50d1
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 6 deletions.
2 changes: 1 addition & 1 deletion Source/Components/ImageGlass.Base/Language/IgLang.cs
Original file line number Diff line number Diff line change
Expand Up @@ -599,7 +599,7 @@ public void InitDefaultLanguage()
// Viewer > Zooming
_ = TryAdd("FrmSettings._Zooming", "Zooming");
_ = TryAdd("FrmSettings._ImageInterpolation", "Image interpolation");
_ = TryAdd("FrmSettings._ImageInterpolation._ScaleDown", "When zoom 100%");
_ = TryAdd("FrmSettings._ImageInterpolation._ScaleDown", "When zoom < 100%");
_ = TryAdd("FrmSettings._ImageInterpolation._ScaleUp", "When zoom > 100%");
_ = TryAdd("FrmSettings._ZoomSpeed", "Zoom speed");
_ = TryAdd("FrmSettings._ZoomLevels", "Zoom levels");
Expand Down
19 changes: 14 additions & 5 deletions Source/Components/ImageGlass.Views/DXCanvas.cs
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ public partial class DXCanvas : DXControl
private float _maxZoom = 100f; // 10_000%
private float[] _zoomLevels = [];
private ImageInterpolation _interpolationScaleDown = ImageInterpolation.MultiSampleLinear;
private ImageInterpolation _interpolationScaledUp = ImageInterpolation.NearestNeighbor;
private ImageInterpolation _interpolationScaleUp = ImageInterpolation.NearestNeighbor;

// checkerboard
private CheckerboardMode _checkerboardMode = CheckerboardMode.None;
Expand Down Expand Up @@ -706,12 +706,12 @@ public ImageInterpolation InterpolationScaleDown
[DefaultValue(ImageInterpolation.NearestNeighbor)]
public ImageInterpolation InterpolationScaleUp
{
get => _interpolationScaledUp;
get => _interpolationScaleUp;
set
{
if (_interpolationScaledUp != value)
if (_interpolationScaleUp != value)
{
_interpolationScaledUp = value;
_interpolationScaleUp = value;
Invalidate();
}
}
Expand All @@ -722,7 +722,16 @@ public ImageInterpolation InterpolationScaleUp
/// Gets the current <see cref="ImageInterpolation"/> mode.
/// </summary>
[Browsable(false)]
public ImageInterpolation CurrentInterpolation => ZoomFactor > 1f ? _interpolationScaledUp : _interpolationScaleDown;
public ImageInterpolation CurrentInterpolation
{
get
{
if (ZoomFactor < 1f) return _interpolationScaleDown;
if (ZoomFactor > 1f) return _interpolationScaleUp;

return ImageInterpolation.NearestNeighbor;
}
}


#endregion
Expand Down

0 comments on commit 88c50d1

Please sign in to comment.