public void SubsetEncodesSubset(float xRatio, float yRatio, float wRatio, float hRatio) { var path = Path.Combine(PathToImages, "baboon.jpg"); using var image = SKImage.FromEncodedData(path); var width = image.Width; var height = image.Height; var rect = new SKRectI(0, 0, width, height); var subset = image; if (xRatio != 0 || yRatio != 0 || wRatio != 0 || hRatio != 0) { var floatingRect = new SKRect(width * xRatio, height * yRatio, width * wRatio, height * hRatio); rect = SKRectI.Floor(floatingRect); subset = image.Subset(rect); } using var encoded = subset.Encode(); using var img2 = SKImage.FromEncodedData(encoded); Assert.Equal(rect.Width, img2.Width); Assert.Equal(rect.Height, img2.Height); var subsetPixels = GetPixels(subset); var img2Pixels = GetPixels(img2); Assert.Equal(subsetPixels, img2Pixels);
public void SKRectIFloorWorksAsExpected() { Assert.Equal(new SKRectI(5, 5, 20, 20), SKRectI.Floor(new SKRect(5.5f, 5.5f, 20.5f, 20.5f))); Assert.Equal(new SKRectI(6, 6, 20, 20), SKRectI.Floor(new SKRect(5.5f, 5.5f, 20.5f, 20.5f), true)); Assert.Equal(new SKRectI(5, 5, 20, 20), SKRectI.Floor(new SKRect(5.4f, 5.6f, 20.4f, 20.6f))); Assert.Equal(new SKRectI(6, 6, 20, 20), SKRectI.Floor(new SKRect(5.4f, 5.6f, 20.4f, 20.6f), true)); Assert.Equal(new SKRectI(20, 20, 5, 5), SKRectI.Floor(new SKRect(20.4f, 20.6f, 5.4f, 5.6f))); Assert.Equal(new SKRectI(20, 20, 6, 6), SKRectI.Floor(new SKRect(20.4f, 20.6f, 5.4f, 5.6f), true)); }