/// <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("文件全部解压完成");
            }
        }
Exemplo n.º 2
0
        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;
            }
        }
Exemplo n.º 3
0
        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);
                }
            }
        }