private void ProcessCompressedPart(MemoryStream stream) { BinaryReader reader = new BinaryReader(stream); try { byte[] rect; int nbits, totalBits, totalBytes; nbits = reader.ReadByte() >> 3; totalBits = nbits * 4 + 5; totalBytes = totalBits / 8; if (totalBits % 8 != 0) { totalBytes++; } reader.BaseStream.Seek(-1, SeekOrigin.Current); rect = reader.ReadBytes(totalBytes); frameRate = float.Parse(string.Format("{1}.{0}", reader.ReadByte(), reader.ReadByte())); frameCount = Convert.ToInt32(reader.ReadInt16()); BitArray bits = new BitArray(rect); bool[] reversedBits = new bool[bits.Length]; for (int i = 0; i < totalBytes; i++) { int count = 7; for (int j = 8 * i; j < 8 * (i + 1); j++) { reversedBits[j + count] = bits[j]; count -= 2; } } bits = new BitArray(reversedBits); StringBuilder sbField = new StringBuilder(bits.Length); for (int i = 0; i < bits.Length; i++) { sbField.Append(bits[i] ? "1" : "0"); } string result = sbField.ToString(); string widthBinary = result.Substring(nbits + 5, nbits); string heightBinary = result.Substring(3 * nbits + 5, nbits); width = Convert.ToInt32(FlashInfo.BinaryToInt64(widthBinary) / 20); height = Convert.ToInt32(FlashInfo.BinaryToInt64(heightBinary) / 20); } finally { reader.Close(); } }
public void SetFormedioPathChange(MediaFileType mediaType) { string filepath = ""; string mediaId = _htmldesigner.OpenAudioDialog();//.OpenFlashDialog(); if (File.Exists(mediaId)) { filepath = mediaId; } else { filepath = _htmldesigner.GetResourceAbsolutePath(mediaId); } if (mediaType == MediaFileType.Flash) { flashInfo = new FlashInfo(filepath); widthNumUpDown.Value = flashInfo.Width; heightNumUpDown.Value = flashInfo.Height; ratio = widthNumUpDown.Value / heightNumUpDown.Value; limitScaleCheckBox.Visible = true; limitScaleCheckBox.Enabled = true; } else { widthNumUpDown.Value = 100; heightNumUpDown.Value = 100; limitScaleCheckBox.Visible = false; } widthUintComboBox.SelectedIndex = heightUintComboBox.SelectedIndex = 0; //设置窗体的一些默认值 this.widthCheckBox.Checked = true; this.heightCheckBox.Checked = true; this.loopCheckBox.Checked = true; this.autoPlayCheckBox.Checked = true; MediaPath = filepath; }