private void ButtonSendText_Click(object sender, RoutedEventArgs e) { var toUser = ComboBoxToUser.Text.Trim() != "Všetci" ? ComboBoxToUser.Text : ""; _server.SendMessage(toUser, TextBoxText.Text); TextBoxText.Clear(); RefreshListMessages(); }
/// <summary> /// Событие при нажатии по кнопке «Открыть файл изображения» (локально) /// </summary> private void ButtonOpenLocalFile_Click(object sender, EventArgs e) { try { ProgressBarStatus.Maximum = 100; ProgressBarStatus.Value = 0; DeletedCurrentImage(); OpenFileDialog ofdOpenImage = new OpenFileDialog(); ofdOpenImage.Filter = "Изображения(*.bmp *.jpg *.png)|*.bmp;*jpg;*png|Все файлы(*.*)|*.*"; ofdOpenImage.FileName = ""; ProgressBarStatus.Maximum = 20; if (ofdOpenImage.ShowDialog() == DialogResult.OK) { ProgressBarStatus.Maximum = 40; string filetype = ofdOpenImage.FileName.Substring(ofdOpenImage.FileName.Length - 3); if ((filetype == "jpg") || (filetype == "JPG")) { bitmapCurrentImage = ConvertToBitmap(ofdOpenImage.FileName); } else { bitmapCurrentImage = (Bitmap)System.Drawing.Image.FromFile(ofdOpenImage.FileName); } ProgressBarStatus.Maximum = 60; ViewCurrentImage(bitmapCurrentImage); sCurrentNameImage = ofdOpenImage.SafeFileName; LabelImageTitle.Text = sCurrentNameImage; ProgressBarStatus.Maximum = 100; } else { DeletedCurrentImage(); } TextBoxText.Clear(); ProgressBarStatus.Value = 0; } catch (Exception excError) { MessageBox.Show(excError.Message + "\n\nПодробное описание:\n" + excError.StackTrace, "Ошибка!"); DeletedCurrentImage(); ProgressBarStatus.Value = 0; } }
/// <summary> /// Событие при нажатии по кнопке «Открыть файл изображения» (Google) /// </summary> private void ButtonGoogleOpenFile_Click(object sender, EventArgs e) { ProgressBarStatus.Value = 0; ProgressBarStatus.Maximum = 100; // Проверка подключения к Google Drive if (!varGoogleDrive.isConnection) { MessageBox.Show("Вы не авторизованы в системе Google Drive.", "Внимание!"); return; } // Загрузка окна с файлами из Google Drive try { ProgressBarStatus.Maximum = 100; ProgressBarStatus.Value = 0; TextBoxText.Clear(); GoogleDriveForm formGoogleDriveFiles = new GoogleDriveForm(varGoogleDrive.getListFiles()); formGoogleDriveFiles.ShowDialog(); ProgressBarStatus.Value = 25; if (formGoogleDriveFiles.GetGoogleDriveFileCurrent() != null) { Google.Apis.Drive.v3.Data.File varGoogleDriveFile = formGoogleDriveFiles.GetGoogleDriveFileCurrent(); sCurrentNameImage = varGoogleDriveFile.Name; if ((System.IO.Path.GetExtension(sCurrentNameImage) != ".jpg") && (System.IO.Path.GetExtension(sCurrentNameImage) != ".JPG") && (System.IO.Path.GetExtension(sCurrentNameImage) != ".jpeg") && (System.IO.Path.GetExtension(sCurrentNameImage) != ".JPEG") && (System.IO.Path.GetExtension(sCurrentNameImage) != ".png") && (System.IO.Path.GetExtension(sCurrentNameImage) != ".PNG") && (System.IO.Path.GetExtension(sCurrentNameImage) != ".bmp") && (System.IO.Path.GetExtension(sCurrentNameImage) != ".BMP")) { MessageBox.Show("Данный формат не поддерживается!", "Внимание!"); DeletedCurrentImage(); return; } ProgressBarStatus.Value = 50; LabelImageTitle.Text = sCurrentNameImage; Stream stream_SECRET_IMAGE = varGoogleDrive.downloadFileFromGoogleDrive(varGoogleDriveFile); if (stream_SECRET_IMAGE == null) { MessageBox.Show(varGoogleDrive.sError, "Ошибка!"); DeletedCurrentImage(); return; } if (stream_SECRET_IMAGE == null) { return; } ProgressBarStatus.Value = 75; System.Drawing.Image newImage = System.Drawing.Image.FromStream(stream_SECRET_IMAGE); bitmapCurrentImage = new Bitmap(newImage); ViewCurrentImage(bitmapCurrentImage); ProgressBarStatus.Value = 100; } else { DeletedCurrentImage(); } ProgressBarStatus.Value = 0; ProgressBarStatus.Maximum = 100; } catch (Exception ex) { MessageBox.Show(ex.Message + "\n\nПодробное описание:\n" + ex.StackTrace, "Ошибка!"); DeletedCurrentImage(); ProgressBarStatus.Value = 0; ProgressBarStatus.Maximum = 100; } }
/// <summary> /// Реализация дешифрование сообщения в изображение /// </summary> private bool Decryption() { try { System.Drawing.Color colorPixel; ArrayList array = new ArrayList(); bool f = false; ProgressBarStatus.Maximum = bitmapCurrentImage.Width; for (int i = 0; i < bitmapCurrentImage.Width; i++) { if (f) { break; } for (int j = 0; j < bitmapCurrentImage.Height; j++) { colorPixel = bitmapCurrentImage.GetPixel(i, j); Bits m = new Bits(255); Bits r = new Bits(colorPixel.R); while (r.Length != 8) { r.Insert(0, 0); } Bits g = new Bits(colorPixel.G); while (g.Length != 8) { g.Insert(0, 0); } Bits b = new Bits(colorPixel.B); while (b.Length != 8) { b.Insert(0, 0); } m[0] = r[6]; m[1] = r[7]; m[2] = g[5]; m[3] = g[6]; m[4] = g[7]; m[5] = b[5]; m[6] = b[6]; m[7] = b[7]; if (m.Char == '/') { f = true; break; } array.Add(m.Number); } } byte[] byteMsg = new byte[array.Count]; for (int i = 0; i < array.Count; i++) { byteMsg[i] = Convert.ToByte(array[i]); } sSecretText = Encoding.GetEncoding(1251).GetString(byteMsg); TextBoxText.Clear(); TextBoxText.Text = sSecretText; ProgressBarStatus.Value = ProgressBarStatus.Maximum; MessageBox.Show("Дешифрация выполнена!", "Зашифрованный текст"); } catch (Exception excError) { MessageBox.Show(excError.Message + "\n\nПодробное описание:\n" + excError.StackTrace, "Ошибка!"); return(false); } return(true); }