问题描述
我将JPEG存储为字节数组,我想将其转换为System.Drawing.Image,如下所示:
using(var ms = new MemoryStream(myArray))
{
img = System.Drawing.Image.FromStream(ms);
Console.WriteLine(ImageToByteArray(img).Length);
}
但是,我遇到的问题是我正在迷失并且我的形象下降。我的初始数组长为2673030字节,MemoryStream也是如此,但是当我查看img的长度时,它的长度仅为2672013字节。甚至更奇怪的是,当我在docker容器上运行此代码段时,图像会一直缩小到1700324字节。这些大小来自所示的打印语句,因此与文件格式无关。
我尝试将流作为BitMap读取,并且还尝试将字节数组写入文件并直接从文件中创建图像/位图,所有操作都具有完全相同的调整大小结果。
问题的核心是将图像保存到服务器时图像质量下降。据我所知,唯一的区别是FromStream()返回大小不同的图像,因此有人知道a)一种创建我的图像而不丢失数据的方法,以及b)为什么在不同的机器上以不同的方式调整它的大小吗? A)是优先级更高的答案。
private byte[] ImageToByteArray(System.Drawing.Image imageIn)
{
using (var ms = new MemoryStream())
{
imageIn.Save(ms,imageIn.RawFormat);
return ms.ToArray();
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)