Ejemplo n.º 1
0
        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);
                }
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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);
            }
        }
Ejemplo n.º 4
0
        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)));
        }