添加了 Xamarin SKEncodedImageFormat Jpeg 背景

Posted

技术标签:

【中文标题】添加了 Xamarin SKEncodedImageFormat Jpeg 背景【英文标题】:Xamarin SKEncodedImageFormat Jpeg background added 【发布时间】:2021-12-22 23:02:24 【问题描述】:

我正在使用带有 VS 2019 的 UWP(最终 android 但不是 ios)的 SkiaSharp 库在 Xamarin 中编码

使用此代码

SKBitmap signature = SKBitmap.Decode(canvasImg.Encode());
using (var image = SKImage.FromBitmap(signature))
using (var data = image.Encode(SKEncodedImageFormat.Jpeg, 80))

    // Save data to a stream
    using (var streamSign = File.OpenWrite(Path.Combine(PCLStorage.FileSystem.Current.LocalStorage.Path + "\\work\\Models", "signature.jpg")))
    
        data.SaveTo(streamSign);
    

我得到了我的画布的 jpg 文件。这是完美的工作。问题是用这一行定义的图像格式:

SKEncodedImageFormat.Jpeg

我需要 jpg 格式(绝对不是 png)。问题是这个转换器给我加了一个黑色的背景,黑色的画是不可见的。

谁知道如何设置背景添加白色?

【问题讨论】:

【参考方案1】:

有两种可能的解决方法

    将图片转换为Png类型并在其上添加透明背景。

    请参阅Adding transparency to a SKBitmap image results in black background。

    由于SKEncodedImageFormat 没有Jpg 选项,我们可以使用外部工具(如paint、photoshop)将图像传输到PngJpeg 类型。

    参考https://social.msdn.microsoft.com/Forums/en-US/b466c566-6666-4cc9-9cdc-88d8c0032e2b/adding-transparency-to-a-skbitmap-image-results-in-black-background?forum=xamarinlibraries

【讨论】:

以上是关于添加了 Xamarin SKEncodedImageFormat Jpeg 背景的主要内容,如果未能解决你的问题,请参考以下文章

从父布局中删除和添加 xamarin 表单图像时出现问题

Xamarin.android如何添加snackbar回调

如何在 xamarin 表单上添加室内地图

将 jar 文件添加到我的 Xamarin 项目

Xamarin 表单列表视图添加幻灯片功能

使用 Xamarin 在键盘上方添加自定义视图