public DDSControl(Stream s)
            : base(s)
        {
            if (s == null || s == Stream.Null)
                return;

            resStream = s;
            ddsPanel1 = new DDSPanel()
            {
                Fit = true,
                Channel1 = channel1,
                Channel2 = channel2,
                Channel3 = channel3,
                Channel4 = channel4,
                InvertCh4 = invertch4,
                Margin = new Padding(3),
            };
            ddsPanel1.Channel1Changed += (sn, e) => channel1 = ddsPanel1.Channel1;
            ddsPanel1.Channel2Changed += (sn, e) => channel2 = ddsPanel1.Channel2;
            ddsPanel1.Channel3Changed += (sn, e) => channel3 = ddsPanel1.Channel3;
            ddsPanel1.Channel4Changed += (sn, e) => channel4 = ddsPanel1.Channel4;
            ddsPanel1.InvertCh4Changed += (sn, e) => invertch4 = ddsPanel1.InvertCh4;
            ddsPanel1.DDSLoad(resStream);
        }
        public DDSControl(Stream s)
            : base(s)
        {
            if (s == null || s == Stream.Null)
                return;

            resStream = s;
            if (s == null || s.Length == 0) return;
            s.Position = 0;
            RLEResource.RLEInfo header = new RLEResource.RLEInfo();
            header.Parse(s);
            if (header.pixelFormat.Fourcc == FourCC.DST1 || header.pixelFormat.Fourcc == FourCC.DST3 || header.pixelFormat.Fourcc == FourCC.DST5)
            {
                s.Position = 0;
                resStream = (new DSTResource(1, s)).ToDDS();
            }

            resStream.Position = 0;

            ddsPanel1 = new DDSPanel()
            {
                Fit = true,
                Channel1 = channel1,
                Channel2 = channel2,
                Channel3 = channel3,
                Channel4 = channel4,
                InvertCh4 = invertch4,
                Margin = new Padding(3),
            };
            ddsPanel1.Channel1Changed += (sn, e) => channel1 = ddsPanel1.Channel1;
            ddsPanel1.Channel2Changed += (sn, e) => channel2 = ddsPanel1.Channel2;
            ddsPanel1.Channel3Changed += (sn, e) => channel3 = ddsPanel1.Channel3;
            ddsPanel1.Channel4Changed += (sn, e) => channel4 = ddsPanel1.Channel4;
            ddsPanel1.InvertCh4Changed += (sn, e) => invertch4 = ddsPanel1.InvertCh4;
            ddsPanel1.DDSLoad(resStream);
        }