我将内存流传递给ImageBuilder.Current.DecodeStream()方法,并使用了一些调整大小设置,但它没有调整生成的位图大小。
var bitmapData = Convert.FromBase64String(base64Image.FixBase64ForImage()); var streamBitmap = new MemoryStream(bitmapData); var bitImage = ImageBuilder.Current.DecodeStream(streamBitmap,settings,"");
FixBase64ForImage()
只是我用来删除数据的扩展方法:image / jpg ;; base64,来自提交的base64编码照片。
我将640x640方形照片传递给ImageBuilder.Current.DecodeStream()
方法,并将其设置为通过
var settings = new ResizeSettings(string.Format("maxwidth={0}&maxheight={1}&format={2}&crop={3}&quality={4}", maxwidth, maxheight,format, crop, quality));
无论我传递的是什么最大宽度/高度,它总是返回完整的640x640照片(似乎也没有质量压缩)。
这让我相信简单地忽略调整大小设置。还有另一种方法可以完成同样的事情,或者我做错了吗?
答案 0 :(得分:1)
ImageBuilder.Current.DecodeStream不进行任何图像处理;它仅用于将图像流解码为图像位图。它由.LoadImage()等调用。
使用.Build()重载来执行图像处理。