using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; #pragma warning disable 1690 namespace Jpeg2000Test { public partial class MainForm : Form { readonly AVSImageJpeg2000.CJ2kFile m_oJ2kFile = new AVSImageJpeg2000.CJ2kFile(); readonly AVSImageFile3.ImageFile3 m_oImageFile = new AVSImageFile3.ImageFile3(); object m_oImage = null; OptionsForm m_oOptionsForm = new OptionsForm(); public MainForm() { InitializeComponent(); } private void btOpen_Click(object sender, EventArgs e) { openFileDialog1.Filter = "Jpeg2000 (*.j2k);(.jp2);(.jpx)|*.j2k;*.jp2;*.jpx|Bitmap (*.bmp)|*.bmp"; openFileDialog1.FileName = ""; if (openFileDialog1.ShowDialog() != DialogResult.OK) return; string sOpenFile = openFileDialog1.FileName; TOpenSettings oOptions = new TOpenSettings(); if (!m_oOptionsForm.radioBtOpenCustom.Checked) oOptions.DoDefault(); else oOptions.Copy(m_oOptionsForm.m_oOpenSettings); // Составляем XML с настроками string sOptions = ""; sOptions += ""; sOptions += ""; sOptions += ""; sOptions += ""; sOptions += ""; if (1 == openFileDialog1.FilterIndex) m_oJ2kFile.J2kToInterface(sOpenFile, out m_oImage, sOptions); else m_oImageFile.LoadImage2(sOpenFile, out m_oImage); axImageView31.BeginInit(); axImageView31.Visible = false; axImageView31.SetMediaData(m_oImage); axImageView31.ZoomToFit(); axImageView31.Visible = true; axImageView31.EndInit(); } private void btSave_Click(object sender, EventArgs e) { if (m_oOptionsForm.radioBtSaveCustom.Checked && m_oOptionsForm.m_oSaveSettings.nFormat == 1) saveFileDialog1.Filter = "Jpeg2000 wrapper (*.jp2)|*.jp2"; else saveFileDialog1.Filter = "Jpeg2000 (*.j2k)|*.j2k"; saveFileDialog1.FileName = ""; if (saveFileDialog1.ShowDialog() != DialogResult.OK) return; string sSaveFile = saveFileDialog1.FileName; TSaveSettings oOptions = new TSaveSettings(); if (!m_oOptionsForm.radioBtSaveCustom.Checked) oOptions.DoDefault(); else oOptions.Copy(m_oOptionsForm.m_oSaveSettings); // Составляем XML с настроками string sOptions = ""; sOptions += ""; sOptions += ""; sOptions += ""; sOptions += ""; sOptions += ""; sOptions += oOptions.sPrecinctValues; sOptions += ""; sOptions += ""; sOptions += ""; sOptions += ""; sOptions += (oOptions.bSOPmarker ? "" : ""); sOptions += (oOptions.bEPHmarker ? "" : ""); sOptions += ""; sOptions += ""; if (oOptions.bRateDisto) { sOptions += ""; sOptions += oOptions.sCompressionValues; sOptions += ""; } else if (oOptions.bFixedQuality) { sOptions += ""; sOptions += oOptions.sCompressionValues; sOptions += ""; } else if (oOptions.bFixedLayer) { sOptions += ""; sOptions += oOptions.sCompressionValues; sOptions += ""; } sOptions += ""; sOptions += ""; m_oJ2kFile.InterfaceToJ2k(ref m_oImage, sSaveFile, sOptions); } private void btOptions_Click(object sender, EventArgs e) { // Сохраняем предыдущие настройки TOpenSettings oOpenSettings = new TOpenSettings(); oOpenSettings.Copy(m_oOptionsForm.m_oOpenSettings); TSaveSettings oSaveSettings = new TSaveSettings(); oSaveSettings.Copy(m_oOptionsForm.m_oSaveSettings); if (m_oOptionsForm.ShowDialog() == DialogResult.OK) return; else { // Восстанавливаем предыдущие настройки m_oOptionsForm.m_oSaveSettings.Copy(oSaveSettings); m_oOptionsForm.m_oOpenSettings.Copy(oOpenSettings); } } private void btClose_Click(object sender, EventArgs e) { axImageView31.BeginInit(); axImageView31.Visible = false; axImageView31.SetMediaData(null); axImageView31.ZoomToFit(); axImageView31.Visible = true; axImageView31.EndInit(); m_oImage = null; } } }