添加了 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)将图像传输到Png
或Jpeg
类型。
参考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 背景的主要内容,如果未能解决你的问题,请参考以下文章