小编Bob*_*y Z的帖子

GZipStream和DeflateStream不会解压缩所有字节

我需要一种在.net中压缩图像的方法,所以我研究了使用.net GZipStream类(或DeflateStream).然而,我发现解压缩并不总是成功,有时图像会很好地解压缩,而有时我会得到GDI +错误,表明某些内容已损坏.

在调查问题后,我发现解压缩没有回复它压缩的所有字节.因此,如果我压缩2257974字节,我有时会回来2257870字节(实数).

最有趣的是,有时它会起作用.所以我创建了这个只压缩10个字节的小测试方法,现在我根本没有回复任何东西.

我用压缩类GZipStream和DeflateStream尝试了它,我仔细检查了我的代码是否存在可能的错误.我甚至尝试将流定位到0并冲洗所有流但没有运气.

这是我的代码:

    public static void TestCompression()
    {
        byte[] test = new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };

        byte[] result = Decompress(Compress(test));

        // This will fail, result.Length is 0
        Debug.Assert(result.Length == test.Length);
    }

    public static byte[] Compress(byte[] data)
    {
        var compressedStream = new MemoryStream();
        var zipStream = new GZipStream(compressedStream, CompressionMode.Compress);
        zipStream.Write(data, 0, data.Length);
        return compressedStream.ToArray();
    }

    public static byte[] Decompress(byte[] data)
    {
        var compressedStream = new MemoryStream(data);
        var zipStream …
Run Code Online (Sandbox Code Playgroud)

c# compression zip image bitmap

35
推荐指数
1
解决办法
2万
查看次数

访问实体类中的LINQ-2-SQL DataContext

是否有任何简单的方法来访问DataContextlinq2sql实体类.

我正在尝试创建类似EntitySet但我无法弄清楚如何EntitySet访问创建实体对象的上下文.

我希望有一个常规的linq2sql实体类,让类可以访问DataContext创建它的方法.我知道这是可能的,因为当你有一个带有主键的实体类时,linq2sql可以让你选择加载所有子进程而不创建新的DataContext.

.net c# linq linq-to-sql

9
推荐指数
2
解决办法
6577
查看次数

标签 统计

c# ×2

.net ×1

bitmap ×1

compression ×1

image ×1

linq ×1

linq-to-sql ×1

zip ×1