我是asp.net的新手。我现在有问题。我需要在存储到我的数据库之前压缩我的图像。我在Google上搜索很多时间。
但是大部分教程都指导我需要在存储到数据库之前调整宽度和高度。所以我的问题是,在存储到数据库之前,可以在没有调整宽度和高度的情况下压缩图像。请指导我的解决方案。
答案 0 :(得分:0)
您可能想要使用GZIP
byte[] fileBytes = File.ReadAllBytes(FilePath);
byte[] compressedFileBytes = Compress(fileBytes); //compress
byte[] decompressedFileBytes = Decompress(compressedFileBytes); //decompress
byte[] Compress(byte[] b)
{
using (MemoryStream ms = new MemoryStream())
{
using (GZipStream z = new GZipStream(ms, CompressionMode.Compress, true))
z.Write(b, 0, b.Length);
return ms.ToArray();
}
}
byte[] Decompress(byte[] b)
{
using (var ms = new MemoryStream())
{
using (var bs = new MemoryStream(b))
using (var z = new GZipStream(bs, CompressionMode.Decompress))
z.CopyTo(ms);
return ms.ToArray();
}
}