放置在 byte[] 数组中的图像大小(不知道图像的类型)。
我必须生成另一个 byte[] 数组,其大小应达到 50kB。
我怎样才能进行某种缩放?
除非您想进行一些严肃的数学运算,否则您需要将字节数组加载到内存流中,从该内存流加载图像,并使用 System.Drawing 命名空间中的内置 GDI 函数。
缩放 25% 或 50% 很容易。除此之外,您需要开始进行插值和差分,以使二进制数据操作中的任何内容看起来都不错。您需要花几天时间才能与 GDI 中已有的功能相匹配。
System.IO.MemoryStream myMemStream = new System.IO.MemoryStream(myBytes);
System.Drawing.Image fullsizeImage = System.Drawing.Image.FromStream(myMemStream);
System.Drawing.Image newImage = fullsizeImage .GetThumbnailImage(newWidth, newHeight, null, IntPtr.Zero);
System.IO.MemoryStream myResult = new System.IO.MemoryStream();
newImage.Save(myResult ,System.Drawing.Imaging.ImageFormat.Gif); //Or whatever format you want.
return myResult.ToArray(); //Returns a new byte array.
顺便说一句 - 如果您确实需要弄清楚源图像类型,请参阅:如何检查字节数组是否是有效图像 https://stackoverflow.com/questions/8349693/how-to-check-if-a-byte-array-is-a-valid-image
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)