public static SKImage Resize(this SKImage input, int width, int height) { var imageInfo = new SKImageInfo(width, height); SKImage image = SKImage.Create(imageInfo); input.ScalePixels(image.PeekPixels(), SKFilterQuality.High); return(image); }
protected virtual SKImage ConvertProfile(SKImage data, float width, float height) { using SKImage srcImg = data; SKImageInfo info = new SKImageInfo((int)width, (int)height, SKImageInfo.PlatformColorType, SKAlphaType.Opaque, SKColorSpace.CreateSrgb()); // this is the important part. set the destination ColorSpace as // `SKColorSpace.CreateSrgb()`. Skia will then be able to automatically convert // the original CMYK colorspace, to this new sRGB colorspace. SKImage newImg = SKImage.Create(info); srcImg.ScalePixels(newImg.PeekPixels(), SKFilterQuality.None); // Remove transparency var bitmap = RemoveTransparency(srcImg); newImg = SKImage.FromBitmap(bitmap); // now when doing this resize, Skia knows the original ColorSpace, and the // destination ColorSpace, and converts the colors from CMYK to sRGB. return(newImg); }