在内存中编辑ZipArchiveEntries(图像)

时间:2016-10-10 15:18:51

标签: vb.net gdi+ zipfile

我不确定下面的代码示例我做错了什么。

我没有收到任何错误,并且在应用压缩后图像看起来像这样:

but

Corrupt image

注意:如果我将图像写入磁盘,它可以工作。我想避免删除和重新插入zip存档条目。

    Using _stm = _ZipArchiveEntry.Open
        Dim _ims = New MemoryStream
        Image.FromStream(_stm, True, True).Save(_ims, _codec, params)
        _stm.Seek(0, SeekOrigin.Begin)
        _stm.SetLength(_ims.Length)
        _ims.CopyTo(_stm)
    End Using

Image written to disk

1 个答案:

答案 0 :(得分:0)

我忘了重置" _ims"流的位置回到0.悲伤的部分是,我假设.CopyTo()会为我做这个。这是我实际检查的最后一件事......

这有效:

    Using _stm = p_ZipArchiveEntry.Open
        Using _ims As New MemoryStream
            Image.FromStream(_stm, True, True).Save(_ims, _codec, params)
            _stm.SetLength(_ims.Length)
            _stm.Seek(0, SeekOrigin.Begin)
            _ims.Seek(0, SeekOrigin.Begin)
            _ims.CopyTo(_stm)
        End Using
    End Using