首先,我将一个大小为7KB的.bmp图像上传到服务器,然后在需要时向服务器发送请求以获取该图像,并且图像将以base64编码格式发送。如果我将该文件保存为.bmp格式,则保存的图像看起来与我上传的图像完全相同,但大小约为4KB。C#:如何解压缩以base64编码格式接收的图像?
我认为,虽然上传图像被压缩。如果是这样,我该如何解压缩它。
我在用下面的代码保存图像:
MemoryStream stream = new MemoryStream(Convert.FromBase64String(strImageInBase64Format));
Bitmap bmp = new Bitmap(stream);
bmp.Save("some.bmp");
如果通过像素比较两者的像素,有什么不同?元数据说了什么?一个可以保存为24 bpp,另一个可以保存为32 bpp。你也确定*返回的文件是BMP? Windows和大多数图像浏览器可能会忽略错误的扩展名,并根据其真实的编解码器来显示图像。 另外,你为什么需要*解压*它?如果使用BMP 24位RLE或PNG进行无损压缩,有什么危害?如果使用JPG损失压缩,则信息无论如何都会丢失。 – Martheen
良好的压缩图像不能被我正在使用的某些硬件打印。我会看看bpp的东西 – pasha
然后只需将解码的字节加载为Image,并将其保存为BMP。这种方式即使网络服务器返回JPG或WEBP,你仍然饲料硬件普通BMP – Martheen