






















从网上搜索的结果来看,在之前的版本(2.x)中
应该是设置 FilterQuality = SKFilterQuality.High 来提高处理质量
升级到 3.x 版本后,发现该属性被标记已过时,不再使用了
新的选项是 SKSamplingOptions,但并没有声明是如何使用
根据 AI 给出的代码,新的缩放质量选项用法如下:
// 使用 Mitchell 三次重采样算法获得最佳缩放质量
var sampling = new SKSamplingOptions(SKCubicResampler.Mitchell);
// 使用 Resize 方法进行高质量缩放
var resizedSKBitmap = skbitmap.Resize(new SKSizeI(newWidth, newHeight), sampling);
但结果就是缩小后的图像锯齿感非常明显。
经过查询,原来这个缩放质量选项是适用于放大图像,缩小图像应该是另外的选项。
var isUpscaling = bitmap.Width < newWidth && bitmap.Height < newHeight;
// 选定采样算法
var samplingOptions = isUpscaling
// For upscaling - use cubic
? new SKSamplingOptions(SKCubicResampler.Mitchell)
// For downscaling - consider using linear with mipmaps instead
: new SKSamplingOptions(SKFilterMode.Linear, SKMipmapMode.Linear);
// 使用 Resize 方法进行高质量缩放
var resizedBitmap = bitmap.Resize(new SKSizeI(newWidth, newHeight), samplingOptions);
这样得到的图像质量明显好了。
参考:https://github.com/mono/SkiaSharp/issues/3159
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。