私の状況:私はバイト配列の形式でJPEG画像の束を持っています。私は、これらのオブジェクトのリストを持っている:バイト配列イメージをzipアーカイブに追加するにはどうすればよいですか?
public class MyImage
{
public byte[] ImageData { get; set; }
}
私の希望状況:私はメモリにzipファイルを作成し、変数に入れたいです。これらのzipファイルをRESTサービスで作成しています。理想的には、このziparchiveをバイト配列に変換して、他の言語で書かれたシステムに送ることができます。
私はziparchiveを作成し、それに画像バイト配列を追加するコードを持っています。しかし、私はどのようにバイト配列にziparchive自体を有効にするのですか?
var images = new List<MyImage>();
//add data to images
using (var ms = new MemoryStream())
{
using (var zipArchive = new ZipArchive(ms, ZipArchiveMode.Create, true))
{
var i = 1;
foreach (var image in images)
{
var entry = zipArchive.CreateEntry("image" + i + ".jpg", CompressionLevel.Fastest);
using (var entryStream = entry.Open())
{
entryStream.Write(image.ImageData, 0, photo.ImageOriginal.Length);
}
i++;
}
//var zipBytes = magic method for turning my archive into a zipfile
}
}
私の質問:これを動作させるにはどうすればよいですか? ボーナスの質問:ziparchiveは他の言語と互換性のあるバイト配列になっていますか?
「ZipArchive」はどこから来たのですか?そしてなぜ組み込みの 'ZipPackage'クラスを使わないのですか? – lokusking
@lokusking:ZipArchiveはSystem.IO.Compressionのものです。それはかなり組み込みです。 :) –