编辑内存中的 ZipArchive 条目(图像)
Editing ZipArchiveEntries (images) in memory
我不确定下面的代码示例有什么问题。
我没有收到任何错误,应用压缩后图像看起来像这样:
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
注意:如果我将图像写入磁盘,它仍然可以工作。不过,我想避免删除和重新插入 zip 存档条目。
Using _stm = _ZipArchiveEntry.Open
Image.FromStream(_stm, True, True).Save("C:\test.jpeg", _codec, params)
End Using
我忘记将“_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
我不确定下面的代码示例有什么问题。
我没有收到任何错误,应用压缩后图像看起来像这样:
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
注意:如果我将图像写入磁盘,它仍然可以工作。不过,我想避免删除和重新插入 zip 存档条目。
Using _stm = _ZipArchiveEntry.Open
Image.FromStream(_stm, True, True).Save("C:\test.jpeg", _codec, params)
End Using
我忘记将“_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