diff --git a/src/ImageSharp/Image/ImageBase{TPixel}.cs b/src/ImageSharp/Image/ImageBase{TPixel}.cs
index ec458e676..b55b88f60 100644
--- a/src/ImageSharp/Image/ImageBase{TPixel}.cs
+++ b/src/ImageSharp/Image/ImageBase{TPixel}.cs
@@ -167,6 +167,7 @@ namespace ImageSharp
int newHeight = pixelSource.Height;
// Push my memory into the accessor (which in turn unpins the old puffer ready for the images use)
+ TPixel[] newPixels = pixelSource.ReturnCurrentColorsAndReplaceThemInternally(this.Width, this.Height, this.pixelBuffer);
this.Width = newWidth;
this.Height = newHeight;
this.pixelBuffer = newPixels;
@@ -240,4 +241,4 @@ namespace ImageSharp
Array.Clear(this.pixelBuffer, 0, this.Width * this.Height);
}
}
-}
+}
\ No newline at end of file
diff --git a/src/ImageSharp/Image/PixelAccessor{TPixel}.cs b/src/ImageSharp/Image/PixelAccessor{TPixel}.cs
index 5cb19c2e8..f3f9546fd 100644
--- a/src/ImageSharp/Image/PixelAccessor{TPixel}.cs
+++ b/src/ImageSharp/Image/PixelAccessor{TPixel}.cs
@@ -236,6 +236,7 @@ namespace ImageSharp
/// The pixels.
/// Returns the old pixel data thats has gust been replaced.
/// If is true then caller is responsible for ensuring is called.
+ internal TPixel[] ReturnCurrentColorsAndReplaceThemInternally(int width, int height, TPixel[] pixels)
{
TPixel[] oldPixels = this.pixelBuffer.TakeArrayOwnership();
this.SetPixelBufferUnsafe(width, height, pixels);
@@ -538,4 +539,4 @@ namespace ImageSharp
}
}
}
-}
+}
\ No newline at end of file