diff --git a/BCnEnc.Net/BCnEncoder.csproj b/BCnEnc.Net/BCnEncoder.csproj
index 624a44d..da61c8d 100644
--- a/BCnEnc.Net/BCnEncoder.csproj
+++ b/BCnEnc.Net/BCnEncoder.csproj
@@ -12,7 +12,7 @@
     <PackageLicenseExpression>MIT OR Unlicense</PackageLicenseExpression>
     <Copyright />
     <GeneratePackageOnBuild>false</GeneratePackageOnBuild>
-    <Version>1.2.2</Version>
+    <Version>1.2.3</Version>
     <Authors>Nominom</Authors>
     <Company />
     <Product>BCnEncoder.Net</Product>
@@ -31,7 +31,7 @@ Supported formats are:
     <RepositoryType>git</RepositoryType>
     <PackageTags>BCn BC BC1 BC2 BC3 BC4 BC5 BC7 BPTC RGTC S3TC DXT1 DXT3 DXT5 ktx dds texture compression encoding decoding decompression image gpu</PackageTags>
     <PackageProjectUrl>https://github.com/Nominom/BCnEncoder.NET</PackageProjectUrl>
-    <PackageReleaseNotes>Changed EncodingQuality to CompressionQuality.</PackageReleaseNotes>
+    <PackageReleaseNotes>Upgraded ImageSharp dependency from 1.0.0 beta 7 to version 1.0.1</PackageReleaseNotes>
   </PropertyGroup>
 
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
@@ -44,7 +44,7 @@ Supported formats are:
   </PropertyGroup>
 
   <ItemGroup>
-    <PackageReference Include="SixLabors.ImageSharp" Version="1.0.0-beta0007" />
+    <PackageReference Include="SixLabors.ImageSharp" Version="1.0.1" />
     <PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="All" />
   </ItemGroup>
 
diff --git a/BCnEnc.Net/Decoder/BcDecoder.cs b/BCnEnc.Net/Decoder/BcDecoder.cs
index 2b50ee1..d768a85 100644
--- a/BCnEnc.Net/Decoder/BcDecoder.cs
+++ b/BCnEnc.Net/Decoder/BcDecoder.cs
@@ -260,7 +260,9 @@ public Image<Rgba32> Decode(KtxFile file)
 
 				var image = new Image<Rgba32>((int)pixelWidth, (int)pixelHeight);
 				var output = decoder.Decode(data, (int)pixelWidth, (int)pixelHeight);
-				var pixels = image.GetPixelSpan();
+				if (!image.TryGetSinglePixelSpan(out var pixels)) {
+					throw new Exception("Cannot get pixel span.");
+				}
 
 				output.CopyTo(pixels);
 				return image;
@@ -299,7 +301,9 @@ public Image<Rgba32>[] DecodeAllMipMaps(KtxFile file)
 
 					var image = new Image<Rgba32>((int)pixelWidth, (int)pixelHeight);
 					var output = decoder.Decode(data, (int)pixelWidth, (int)pixelHeight);
-					var pixels = image.GetPixelSpan();
+					if (!image.TryGetSinglePixelSpan(out var pixels)) {
+						throw new Exception("Cannot get pixel span.");
+					}
 
 					output.CopyTo(pixels);
 					images[mip] = image;
@@ -345,7 +349,9 @@ public Image<Rgba32> Decode(DdsFile file)
 
 				var image = new Image<Rgba32>((int)pixelWidth, (int)pixelHeight);
 				var output = decoder.Decode(data, (int)pixelWidth, (int)pixelHeight);
-				var pixels = image.GetPixelSpan();
+				if (!image.TryGetSinglePixelSpan(out var pixels)) {
+					throw new Exception("Cannot get pixel span.");
+				}
 
 				output.CopyTo(pixels);
 				return image;
@@ -393,7 +399,9 @@ public Image<Rgba32>[] DecodeAllMipMaps(DdsFile file)
 
 					var image = new Image<Rgba32>((int) pixelWidth, (int) pixelHeight);
 					var output = decoder.Decode(data, (int) pixelWidth, (int) pixelHeight);
-					var pixels = image.GetPixelSpan();
+					if (!image.TryGetSinglePixelSpan(out var pixels)) {
+						throw new Exception("Cannot get pixel span.");
+					}
 
 					output.CopyTo(pixels);
 					images[mip] = image;
diff --git a/BCnEnc.Net/Encoder/BcEncoder.cs b/BCnEnc.Net/Encoder/BcEncoder.cs
index e8f8982..3424d55 100644
--- a/BCnEnc.Net/Encoder/BcEncoder.cs
+++ b/BCnEnc.Net/Encoder/BcEncoder.cs
@@ -189,7 +189,10 @@ public KtxFile EncodeToKtx(Image<Rgba32> inputImage)
 				}
 				else
 				{
-					encoded = uncompressedEncoder.Encode(mipChain[i].GetPixelSpan());
+					if (!mipChain[i].TryGetSinglePixelSpan(out var mipPixels)) {
+						throw new Exception("Cannot get pixel span.");
+					}
+					encoded = uncompressedEncoder.Encode(mipPixels);
 				}
 
 				output.MipMaps.Add(new KtxMipmap((uint)encoded.Length,
@@ -264,7 +267,10 @@ public DdsFile EncodeToDds(Image<Rgba32> inputImage)
 				}
 				else
 				{
-					encoded = uncompressedEncoder.Encode(mipChain[mip].GetPixelSpan());
+					if (!mipChain[mip].TryGetSinglePixelSpan(out var mipPixels)) {
+						throw new Exception("Cannot get pixel span.");
+					}
+					encoded = uncompressedEncoder.Encode(mipPixels);
 				}
 
 				if (mip == 0)
@@ -334,7 +340,10 @@ public List<byte[]> EncodeToRawBytes(Image<Rgba32> inputImage)
 				}
 				else
 				{
-					encoded = uncompressedEncoder.Encode(mipChain[i].GetPixelSpan());
+					if (!mipChain[i].TryGetSinglePixelSpan(out var mipPixels)) {
+						throw new Exception("Cannot get pixel span.");
+					}
+					encoded = uncompressedEncoder.Encode(mipPixels);
 				}
 
 				output.Add(encoded);
@@ -400,7 +409,10 @@ public byte[] EncodeToRawBytes(Image<Rgba32> inputImage, int mipLevel, out int m
 			}
 			else
 			{
-				encoded = uncompressedEncoder.Encode(mipChain[mipLevel].GetPixelSpan());
+				if (!mipChain[mipLevel].TryGetSinglePixelSpan(out var mipPixels)) {
+					throw new Exception("Cannot get pixel span.");
+				}
+				encoded = uncompressedEncoder.Encode(mipPixels);
 			}
 
 			mipWidth = mipChain[mipLevel].Width;
@@ -506,7 +518,10 @@ public KtxFile EncodeCubeMapToKtx(Image<Rgba32> right, Image<Rgba32> left, Image
 					}
 					else
 					{
-						encoded = uncompressedEncoder.Encode(mipChain[i].GetPixelSpan());
+						if (!mipChain[i].TryGetSinglePixelSpan(out var mipPixels)) {
+							throw new Exception("Cannot get pixel span.");
+						}
+						encoded = uncompressedEncoder.Encode(mipPixels);
 					}
 
 					if (f == 0)
@@ -603,7 +618,10 @@ public DdsFile EncodeCubeMapToDds(Image<Rgba32> right, Image<Rgba32> left, Image
 					}
 					else
 					{
-						encoded = uncompressedEncoder.Encode(mipChain[mip].GetPixelSpan());
+						if (!mipChain[mip].TryGetSinglePixelSpan(out var mipPixels)) {
+							throw new Exception("Cannot get pixel span.");
+						}
+						encoded = uncompressedEncoder.Encode(mipPixels);
 					}
 
 					if (mip == 0)
diff --git a/BCnEnc.Net/Shared/ImageToBlocks.cs b/BCnEnc.Net/Shared/ImageToBlocks.cs
index 2285ebf..fb8b7bb 100644
--- a/BCnEnc.Net/Shared/ImageToBlocks.cs
+++ b/BCnEnc.Net/Shared/ImageToBlocks.cs
@@ -13,7 +13,10 @@ internal static RawBlock4X4Rgba32[] ImageTo4X4(ImageFrame<Rgba32> image, out int
 			blocksWidth = (int)MathF.Ceiling(image.Width / 4.0f);
 			blocksHeight = (int)MathF.Ceiling(image.Height / 4.0f);
 			RawBlock4X4Rgba32[] output = new RawBlock4X4Rgba32[blocksWidth * blocksHeight];
-			Span<Rgba32> pixels = image.GetPixelSpan();
+
+			if (!image.TryGetSinglePixelSpan(out var pixels)) {
+				throw new Exception("Cannot get pixel span.");
+			}
 
 			for (int y = 0; y < image.Height; y++)
 			{
@@ -75,7 +78,10 @@ internal static Image<Rgba32> ImageFromRawBlocks(RawBlock4X4Rgba32[,] blocks, in
 		internal static Image<Rgba32> ImageFromRawBlocks(RawBlock4X4Rgba32[,] blocks, int blocksWidth, int blocksHeight, int pixelWidth, int pixelHeight)
 		{
 			Image<Rgba32> output = new Image<Rgba32>(pixelWidth, pixelHeight);
-			Span<Rgba32> pixels = output.GetPixelSpan();
+			
+			if (!output.TryGetSinglePixelSpan(out var pixels)) {
+				throw new Exception("Cannot get pixel span.");
+			}
 
 			for (int y = 0; y < output.Height; y++)
 			{
@@ -102,7 +108,10 @@ internal static Image<Rgba32> ImageFromRawBlocks(RawBlock4X4Rgba32[] blocks, int
 		internal static Image<Rgba32> ImageFromRawBlocks(RawBlock4X4Rgba32[] blocks, int blocksWidth, int blocksHeight, int pixelWidth, int pixelHeight)
 		{
 			Image<Rgba32> output = new Image<Rgba32>(pixelWidth, pixelHeight);
-			Span<Rgba32> pixels = output.GetPixelSpan();
+			
+			if (!output.TryGetSinglePixelSpan(out var pixels)) {
+				throw new Exception("Cannot get pixel span.");
+			}
 
 			for (int y = 0; y < output.Height; y++)
 			{
diff --git a/BCnEncTests/BC1Tests.cs b/BCnEncTests/BC1Tests.cs
index 189f9ac..77492f4 100644
--- a/BCnEncTests/BC1Tests.cs
+++ b/BCnEncTests/BC1Tests.cs
@@ -35,10 +35,10 @@ public void Decode() {
 			block[15] = 0;
 
 			var raw = block.Decode(false);
-			Assert.Equal(Rgba32.Black, raw.p00);
-			Assert.Equal(Rgba32.Black, raw.p10);
-			Assert.Equal(Rgba32.Black, raw.p20);
-			Assert.Equal(Rgba32.Black, raw.p30);
+			Assert.Equal(new Rgba32(0, 0, 0), raw.p00);
+			Assert.Equal(new Rgba32(0, 0, 0), raw.p10);
+			Assert.Equal(new Rgba32(0, 0, 0), raw.p20);
+			Assert.Equal(new Rgba32(0, 0, 0), raw.p30);
 
 			Assert.Equal(new Rgba32(85, 85, 85), raw.p01);
 			Assert.Equal(new Rgba32(85, 85, 85), raw.p11);
@@ -50,10 +50,10 @@ public void Decode() {
 			Assert.Equal(new Rgba32(170, 170, 170), raw.p22);
 			Assert.Equal(new Rgba32(170, 170, 170), raw.p32);
 
-			Assert.Equal(Rgba32.White, raw.p03);
-			Assert.Equal(Rgba32.White, raw.p13);
-			Assert.Equal(Rgba32.White, raw.p23);
-			Assert.Equal(Rgba32.White, raw.p33);
+			Assert.Equal(new Rgba32(255, 255, 255), raw.p03);
+			Assert.Equal(new Rgba32(255, 255, 255), raw.p13);
+			Assert.Equal(new Rgba32(255, 255, 255), raw.p23);
+			Assert.Equal(new Rgba32(255, 255, 255), raw.p33);
 		}
 
 		[Fact]
@@ -89,20 +89,20 @@ public void DecodeBlack() {
 			Assert.Equal(new Rgba32(206, 203, 206), raw.p20);
 			Assert.Equal(new Rgba32(206, 203, 206), raw.p30);
 
-			Assert.Equal(Rgba32.Black, raw.p01);
-			Assert.Equal(Rgba32.Black, raw.p11);
-			Assert.Equal(Rgba32.Black, raw.p21);
-			Assert.Equal(Rgba32.Black, raw.p31);
+			Assert.Equal(new Rgba32(0, 0, 0), raw.p01);
+			Assert.Equal(new Rgba32(0, 0, 0), raw.p11);
+			Assert.Equal(new Rgba32(0, 0, 0), raw.p21);
+			Assert.Equal(new Rgba32(0, 0, 0), raw.p31);
 
 			Assert.Equal(new Rgba32(230, 228, 230), raw.p02);
 			Assert.Equal(new Rgba32(230, 228, 230), raw.p12);
 			Assert.Equal(new Rgba32(230, 228, 230), raw.p22);
 			Assert.Equal(new Rgba32(230, 228, 230), raw.p32);
 
-			Assert.Equal(Rgba32.White, raw.p03);
-			Assert.Equal(Rgba32.White, raw.p13);
-			Assert.Equal(Rgba32.White, raw.p23);
-			Assert.Equal(Rgba32.White, raw.p33);
+			Assert.Equal(new Rgba32(255, 255, 255), raw.p03);
+			Assert.Equal(new Rgba32(255, 255, 255), raw.p13);
+			Assert.Equal(new Rgba32(255, 255, 255), raw.p23);
+			Assert.Equal(new Rgba32(255, 255, 255), raw.p33);
 		}
 
 		[Fact]
@@ -148,10 +148,10 @@ public void DecodeAlpha() {
 			Assert.Equal(new Rgba32(230, 228, 230), raw.p22);
 			Assert.Equal(new Rgba32(230, 228, 230), raw.p32);
 
-			Assert.Equal(Rgba32.White, raw.p03);
-			Assert.Equal(Rgba32.White, raw.p13);
-			Assert.Equal(Rgba32.White, raw.p23);
-			Assert.Equal(Rgba32.White, raw.p33);
+			Assert.Equal(new Rgba32(255, 255, 255), raw.p03);
+			Assert.Equal(new Rgba32(255, 255, 255), raw.p13);
+			Assert.Equal(new Rgba32(255, 255, 255), raw.p23);
+			Assert.Equal(new Rgba32(255, 255, 255), raw.p33);
 		}
 
 	}
diff --git a/BCnEncTests/BlockTests.cs b/BCnEncTests/BlockTests.cs
index 7cfd6e1..2213ed6 100644
--- a/BCnEncTests/BlockTests.cs
+++ b/BCnEncTests/BlockTests.cs
@@ -38,9 +38,11 @@ public void PaddingColor()
 		{
 			using Image<Rgba32> testImage = new Image<Rgba32>(13, 13);
 
-			var pixels = testImage.GetPixelSpan();
+			if (!testImage.TryGetSinglePixelSpan(out var pixels)) {
+				throw new Exception("Cannot get pixel span.");
+			}
 			for (int i = 0; i < pixels.Length; i++) {
-				pixels[i] = Rgba32.Aquamarine;
+				pixels[i] = new Rgba32(0, 125, 125);
 			}
 
 			var blocks = ImageToBlocks.ImageTo4X4(testImage.Frames[0], out var blocksWidth, out var blocksHeight);
@@ -52,7 +54,7 @@ public void PaddingColor()
 			for (int x = 0; x < blocksWidth; x++) {
 				for (int y = 0; y < blocksHeight; y++) {
 					foreach (var color in blocks[x + y * blocksWidth].AsSpan) {
-						Assert.Equal(Rgba32.Aquamarine, color);
+						Assert.Equal(new Rgba32(0, 125, 125), color);
 					}
 				}
 			}
@@ -64,7 +66,9 @@ public void BlocksToImage()
 			Random r = new Random(0);
 			using Image<Rgba32> testImage = new Image<Rgba32>(16, 16);
 
-			var pixels = testImage.GetPixelSpan();
+			if (!testImage.TryGetSinglePixelSpan(out var pixels)) {
+				throw new Exception("Cannot get pixel span.");
+			}
 			for (int i = 0; i < pixels.Length; i++) {
 				pixels[i] = new Rgba32(
 					(byte)r.Next(255),
@@ -80,7 +84,10 @@ public void BlocksToImage()
 			Assert.Equal(4, blocksHeight);
 
 			using var output = ImageToBlocks.ImageFromRawBlocks(blocks, blocksWidth, blocksHeight);
-			var pixels2 = output.GetPixelSpan();
+			
+			if (!output.TryGetSinglePixelSpan(out var pixels2)) {
+				throw new Exception("Cannot get pixel span.");
+			}
 
 			Assert.Equal(pixels.Length, pixels2.Length);
 			for (int i = 0; i < pixels.Length; i++) {
diff --git a/BCnEncTests/ClusterTests.cs b/BCnEncTests/ClusterTests.cs
index dbd5ab8..26e613c 100644
--- a/BCnEncTests/ClusterTests.cs
+++ b/BCnEncTests/ClusterTests.cs
@@ -16,7 +16,11 @@ public class ClusterTests
 		[Fact]
 		public void Clusterize() {
 			using var testImage = ImageLoader.testBlur1.Clone();
-			var pixels = testImage.GetPixelSpan();
+			
+			if (!testImage.TryGetSinglePixelSpan(out var pixels)) {
+				throw new Exception("Cannot get pixel span.");
+			}
+
 			int numClusters = (testImage.Width / 32) * (testImage.Height / 32);
 			
 			var clusters = LinearClustering.ClusterPixels(pixels, testImage.Width, testImage.Height, numClusters, 10, 10);
diff --git a/BCnEncTests/DdsReadTests.cs b/BCnEncTests/DdsReadTests.cs
index d1423ef..3e94ff2 100644
--- a/BCnEncTests/DdsReadTests.cs
+++ b/BCnEncTests/DdsReadTests.cs
@@ -70,7 +70,10 @@ public void ReadBc1a() {
 			Assert.Equal((uint)image.Width, file.Header.dwWidth);
 			Assert.Equal((uint)image.Height, file.Header.dwHeight);
 
-			Assert.Contains(image.GetPixelSpan().ToArray(), x => x.A == 0);
+			if (!image.TryGetSinglePixelSpan(out var pixels)) {
+				throw new Exception("Cannot get pixel span.");
+			}
+			Assert.Contains(pixels.ToArray(), x => x.A == 0);
 
 			using FileStream outFs = File.OpenWrite($"decoding_test_dds_bc1a.png");
 			image.SaveAsPng(outFs);
diff --git a/BCnEncTests/TestHelper.cs b/BCnEncTests/TestHelper.cs
index 42cf292..e99bbd2 100644
--- a/BCnEncTests/TestHelper.cs
+++ b/BCnEncTests/TestHelper.cs
@@ -20,8 +20,13 @@ public static float DecodeCheckPSNR(string filename, Image<Rgba32> original) {
 			var ktx = KtxFile.Load(fs);
 			var decoder = new BcDecoder();
 			using var img = decoder.Decode(ktx);
-			var pixels = original.GetPixelSpan();
-			var pixels2 = img.GetPixelSpan();
+
+			if (!original.TryGetSinglePixelSpan(out var pixels)) {
+				throw new Exception("Cannot get pixel span.");
+			}
+			if (!img.TryGetSinglePixelSpan(out var pixels2)) {
+				throw new Exception("Cannot get pixel span.");
+			}
 
 			return ImageQuality.PeakSignalToNoiseRatio(pixels, pixels2, true);
 		}