diff --git a/src/Magick.NET/MagickImage.cs b/src/Magick.NET/MagickImage.cs
index e873129de6..4ef8337e79 100644
--- a/src/Magick.NET/MagickImage.cs
+++ b/src/Magick.NET/MagickImage.cs
@@ -5784,7 +5784,11 @@ public void SetBitDepth(int value)
/// The channel to set the depth for.
/// Thrown when an error is raised by ImageMagick.
public void SetBitDepth(int value, Channels channels)
- => _nativeInstance.SetBitDepth(value, channels);
+ {
+ Throw.IfNegative(nameof(value), value);
+
+ _nativeInstance.SetBitDepth(value, channels);
+ }
///
/// Sets the default clipping path.
diff --git a/tests/Magick.NET.Tests/MagickImageTests/TheSetBitDepthMethod.cs b/tests/Magick.NET.Tests/MagickImageTests/TheSetBitDepthMethod.cs
index 97918f7ee4..b5dd82e9d6 100644
--- a/tests/Magick.NET.Tests/MagickImageTests/TheSetBitDepthMethod.cs
+++ b/tests/Magick.NET.Tests/MagickImageTests/TheSetBitDepthMethod.cs
@@ -1,6 +1,7 @@
// Copyright Dirk Lemstra https://github.com/dlemstra/Magick.NET.
// Licensed under the Apache License, Version 2.0.
+using System;
using ImageMagick;
using Xunit;
@@ -10,6 +11,14 @@ public partial class MagickImageTests
{
public class TheSetBitDepthMethod
{
+ [Fact]
+ public void ShouldThrowExceptionWhenValueIsNegative()
+ {
+ using var image = new MagickImage(Files.RoseSparkleGIF);
+
+ Assert.Throws("value", () => image.SetBitDepth(-1));
+ }
+
[Fact]
public void ShouldChangeTheBitDepth()
{