private void MergeImage(object sender, EventArgs e)
        {
            OpenFileDialog openDialog = new OpenFileDialog()
            {
                Filter = "FDI Files (*.fdi)|*.fdi|All Files (*.*)|*.*"
            };

            if (openDialog.ShowDialog() != DialogResult.OK)
            {
                return;
            }
            IsDosImage image = new IsDosImage();
            string     text;

            if (image.LoadFdi(openDialog.FileName, File.ReadAllBytes(openDialog.FileName), out text) != 0)
            {
                Log.Error?.Out($"Ошибка при чтении файла: {openDialog.FileName}");
                return;
            }
            int addedReadSectors;

            Image.Merge(image, out addedReadSectors);
            map.Repaint();
            stats.Repaint();
            Log.Info?.Out($"Образ слит с образом из файла: {openDialog.FileName}. Добавлено прочитанных секторов: {addedReadSectors}");
        }
        private void LoadImage(object sender, EventArgs e)
        {
            if (Image != null && Image.Modified)
            {
                if (MessageBox.Show("Образ не был сохранен. Продолжить?", "", MessageBoxButtons.YesNo) != DialogResult.Yes)
                {
                    return;
                }
            }
            OpenFileDialog openDialog = new OpenFileDialog()
            {
                Filter = "FDI Files (*.fdi)|*.fdi|All Files (*.*)|*.*"
            };

            if (openDialog.ShowDialog() != DialogResult.OK)
            {
                return;
            }
            IsDosImage image = new IsDosImage();
            string     text;

            if (image.LoadFdi(openDialog.FileName, File.ReadAllBytes(openDialog.FileName), out text, map) != 0)
            {
                Log.Error?.Out($"Ошибка при чтении файла: {openDialog.FileName}");
                return;
            }
            Image       = image;
            map.Image   = Image;
            stats.Image = Image;
            map.Repaint();
            stats.Repaint();
            SetEnabled();
            int loadedSize = Image.SizeTracks;

            Log.Info?.Out($"Образ загружен. Имя: {Image.Name} | Размер: {loadedSize} треков | FileName: {openDialog.FileName}");
        }