/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void axPushButton_ClickEvent(object sender, EventArgs e) { MessageBox.Show("解压的可能时间比较长 请等待分钟 或更长的时间"); if (m_FolderBrowserDialog.ShowDialog() == DialogResult.OK) { for (int i = 0; i < m_SGLEditorDocumentForm.m_SglFileInfo.SGLImage.Length; i++) { SGLImage sglImage = m_SGLEditorDocumentForm.m_SglFileInfo.SGLImage[i]; for (int i2 = 0; i2 < sglImage.SGLFrames.Length; i2++) { SGLFrame sglFrame = sglImage.SGLFrames[i2]; if (sglFrame.SGLFrameFormat11Or12Or22.DecodeFrame32Stream == null) { if (sglFrame.SGLFrameFormat11Or12Or22.LoadImage() == false) { break; } else { Workspace workspace = new Workspace(); workspace.Open(sglFrame.SGLFrameFormat11Or12Or22.DecodeFrame32Stream); TgaEncoder encoder = new TgaEncoder(); StringBuilder strBuilder = new StringBuilder(); strBuilder.Append(m_FolderBrowserDialog.SelectedPath); strBuilder.Append("\\["); strBuilder.Append(Path.GetFileNameWithoutExtension(m_SGLEditorDocumentForm.m_SglFileName)); strBuilder.Append("]Image["); strBuilder.Append(i.ToString("D5")); strBuilder.Append("]"); strBuilder.Append("Frame["); strBuilder.Append(i2.ToString("D3")); strBuilder.Append("]"); strBuilder.Append("Offset["); strBuilder.Append(sglFrame.CenterX.ToString("D4")); strBuilder.Append("X"); strBuilder.Append(sglFrame.CenterY.ToString("D4")); strBuilder.Append("]"); strBuilder.Append(".tga"); string imageName = strBuilder.ToString(); workspace.Save(imageName, encoder); } } } } MessageBox.Show("文件全部解压完成"); } }
private void ShowImage(SGLImage sglImage, SGLFrame sglFrame) { switch (sglImage.Format) { case 0x02: break; case 0x82: break; case 0x88: break; case 0x06: break; case 0x18: case 0x28: break; case 0x11: case 0x12: case 0x22: if (sglFrame.SGLFrameFormat11Or12Or22.DecodeFrame32Stream == null) { if (sglFrame.SGLFrameFormat11Or12Or22.LoadImage() == false) { break; } } PageCurrentImageControl.WorkspaceViewer.Open(sglFrame.SGLFrameFormat11Or12Or22.DecodeFrame32Stream); break; case 0x62: break; default: break; } }
private void ListViewSGLFrame_SelectedIndexChanged(object sender, EventArgs e) { if (ListViewSGLImage.SelectedIndices.Count > 1) { return; } else if (ListViewSGLImage.SelectedIndices.Count < 1) { if (PageCurrentImageControl.WorkspaceViewer.Image != null) { PageCurrentImageControl.WorkspaceViewer.Image = null; } } if (ListViewSGLFrame.SelectedIndices.Count > 1) { return; } else if (ListViewSGLFrame.SelectedIndices.Count < 1) { if (PageCurrentImageControl.WorkspaceViewer.Image != null) { PageCurrentImageControl.WorkspaceViewer.Image = null; } } foreach (int index in ListViewSGLImage.SelectedIndices) { SGLImage sglImage = m_SglFileInfo.SGLImage[index]; foreach (int index2 in ListViewSGLFrame.SelectedIndices) { SGLFrame sglFrame = sglImage.SGLFrames[index2]; ShowImage(sglImage, sglFrame); } } }