public static void WriteZip(this PixelFloat p, string zipfilename, string statusname = "000", bool append = false, CompressionLevel level = CompressionLevel.Fastest) { XML.PixelModelDependent.ModelDataXML buf = new XML.PixelModelDependent.ModelDataXML(); buf.Width = p.Width; buf.Height = p.Height; buf.FileName = new List <string> { $"^{statusname}.bin$" }; buf.FileSize = -1; buf.SetFileType(typeof(PixelFloat)); //buf.SetFileType(p.GetType()); ZipArchiveMode mode = append ? ZipArchiveMode.Update : ZipArchiveMode.Create; using (var archive = ZipFile.Open(zipfilename, mode)) { using (var z = archive.CreateEntry($"PixelsModel\\{statusname}.model", level).Open()) { Pixels.IO.XMLSetter.Write <PixelModelDependent.ModelDataXML>(buf, z); } using (var z = archive.CreateEntry($"{statusname}.bin").Open()) { PixelStream.WriteBin(z, p); } } }
public static PixelByte ReadZipPixelByte(string zipfilename, string statusname = "000") { var sta = XML.ReadZipStatus(zipfilename, statusname); byte[] buf = new byte[sta.Width * sta.Height]; switch (sta.type) { case "byte": using (var archive = ZipFile.Open(zipfilename, ZipArchiveMode.Read)) using (var reader = archive.GetEntry(sta.filename).Open()) return((PixelByte)PixelStream.ReadBinToPixelByte(reader, sta.Width, sta.Height, sta.offset)); case "ushort": using (var archive = ZipFile.Open(zipfilename, ZipArchiveMode.Read)) using (var reader = archive.GetEntry(sta.filename).Open()) return((PixelByte)PixelStream.ReadBinToPixelUShort(reader, sta.Width, sta.Height, sta.offset)); case "uint": using (var archive = ZipFile.Open(zipfilename, ZipArchiveMode.Read)) using (var reader = archive.GetEntry(sta.filename).Open()) return((PixelByte)PixelStream.ReadBinToPixelUInt(reader, sta.Width, sta.Height, sta.offset)); case "ulong": using (var archive = ZipFile.Open(zipfilename, ZipArchiveMode.Read)) using (var reader = archive.GetEntry(sta.filename).Open()) return((PixelByte)PixelStream.ReadBinToPixelULong(reader, sta.Width, sta.Height, sta.offset)); case "short": using (var archive = ZipFile.Open(zipfilename, ZipArchiveMode.Read)) using (var reader = archive.GetEntry(sta.filename).Open()) return((PixelByte)PixelStream.ReadBinToPixelShort(reader, sta.Width, sta.Height, sta.offset)); case "int": using (var archive = ZipFile.Open(zipfilename, ZipArchiveMode.Read)) using (var reader = archive.GetEntry(sta.filename).Open()) return((PixelByte)PixelStream.ReadBinToPixelInt(reader, sta.Width, sta.Height, sta.offset)); case "long": using (var archive = ZipFile.Open(zipfilename, ZipArchiveMode.Read)) using (var reader = archive.GetEntry(sta.filename).Open()) return((PixelByte)PixelStream.ReadBinToPixelLong(reader, sta.Width, sta.Height, sta.offset)); case "float": using (var archive = ZipFile.Open(zipfilename, ZipArchiveMode.Read)) using (var reader = archive.GetEntry(sta.filename).Open()) return((PixelByte)PixelStream.ReadBinToPixelFloat(reader, sta.Width, sta.Height, sta.offset)); case "double": using (var archive = ZipFile.Open(zipfilename, ZipArchiveMode.Read)) using (var reader = archive.GetEntry(sta.filename).Open()) return((PixelByte)PixelStream.ReadBinToPixelDouble(reader, sta.Width, sta.Height, sta.offset)); default: return(null); } }
public static void WriteZipTxt(this PixelDouble p, string zipfilename, string statusname = "000", bool append = false, CompressionLevel level = CompressionLevel.Fastest) { var sta = new StaPara(); sta.Width = p.Width; sta.Height = p.Height; sta.filename = statusname + ".txt"; sta.type = "txt"; ZipArchiveMode mode = append ? ZipArchiveMode.Update : ZipArchiveMode.Create; using (var archive = ZipFile.Open(zipfilename, mode)) { using (var z = archive.CreateEntry(statusname + ext_status, level).Open()) WriteStatus(z, sta); using (var z = archive.CreateEntry(sta.filename).Open()) PixelStream.WriteTxt(z, p); } }
protected PixelDouble ReadPixs(Illuminant i, Register r, FileType f, Area a) { string filename = "current_dir" + IllDic[i] + RegDic[r] + FileDic[f]; return(AreaDic[a](PixelStream.ReadTxtDouble(filename, 1408, 1032))); }