如何解决SKBitmap.Decode 为某些图像文件返回 NULL
有人可以帮忙吗。
我在 .Net Core 3.1 框架中使用 SkiaSharp 1.68.3 版本。 我的要求是读取图像文件(大于 3 MB 的原始文件,具有各种类型,如 bmp、jpeg、jpg、tiff、png、gift 等)并需要使用白色背景颜色等调整大小并上传到 blob 存储中。
问题是当我通过传递图像文件的流对象来使用 SKBitmap.Decode() 方法时,我偶尔会得到 NULL。这是代码,我正在使用,但我不明白我在哪里做错了。
try
{
if (stream == null)
{
return (null,ImageErrorType.ImageFormatError,"Invalid Stream");
}
stream.Seek(0,SeekOrigin.Begin);
var data = new BinaryReader(stream).ReadBytes((int)stream.Length);
var imgInfo = SKBitmap.DecodeBounds(data);
if (imgInfo.IsEmpty)
{
return (null,"Invalid Stream");
}
var bmp = SKBitmap.Decode(data,imgInfo);
return (bmp,ImageErrorType.NoError,string.Empty);
}
catch (Exception ex)
{
return (null,ImageErrorType.UnknownError,ex.Message);
}
finally
{
stream?.Seek(0,SeekOrigin.Begin);
}
这里有两张能用和不能用的图片。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。