Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows;
- using System.Windows.Controls;
- using System.Windows.Data;
- using System.Windows.Documents;
- using System.Windows.Input;
- using System.Windows.Media;
- using System.Windows.Media.Imaging;
- using System.Windows.Navigation;
- using System.Windows.Shapes;
- using System.IO;
- using Microsoft.Win32;
- namespace recznePisanie
- {
- /// <summary>
- /// Jak zapisać obrazek do pliku JPEG
- /// </summary>
- public partial class MainWindow : Window
- {
- string nazwaPliku = "";
- public MainWindow()
- {
- InitializeComponent();
- }
- private void btnCzysc_Click(object sender, RoutedEventArgs e)
- {
- //czyść obszar pisania
- recznePisanie.Strokes.Clear();
- }
- //zapisz obrazek jako plik JPG
- public void EskportDoJPEG(InkCanvas obszar)
- {
- double
- x1 = obszar.Margin.Left,
- x2 = obszar.Margin.Top,
- x3 = obszar.Margin.Right,
- x4 = obszar.Margin.Bottom;
- obszar.Margin = new Thickness(0, 0, 0, 0);
- Size size = new Size(obszar.Width, obszar.Height);
- obszar.Measure(size);
- obszar.Arrange(new Rect(size));
- RenderTargetBitmap renderBitmap =
- new RenderTargetBitmap(
- (int)size.Width,
- (int)size.Height,
- 96,
- 96,
- PixelFormats.Default);
- renderBitmap.Render(obszar);
- otworzOknoDialogoZapisz();
- using (FileStream fs = File.Open(nazwaPliku, FileMode.Create))
- {
- JpegBitmapEncoder encoder = new JpegBitmapEncoder();
- encoder.Frames.Add(BitmapFrame.Create(renderBitmap));
- encoder.Save(fs);
- }
- obszar.Margin = new Thickness(x1, x2, x3, x4);
- }
- private void Button_Click(object sender, RoutedEventArgs e)
- {
- EskportDoJPEG(recznePisanie);
- }
- void otworzOknoDialogoZapisz()
- {
- //otworz save dialog box
- // konfiguracja okna dialogowego Zapisu
- SaveFileDialog dlg = new SaveFileDialog();
- dlg.FileName = "nazwa_pliku"; // domyślna nazwa pliku
- dlg.DefaultExt = ".jpg"; // domyśle rozszerzenie pliku
- dlg.Filter = "Image (.jpg)|*.jpg"; // pokauj tylko pliku *.jpg
- // Pokaz okno dialogowe Zapisu
- Nullable<bool> result = dlg.ShowDialog();
- // Sprawdź zmienna result z okna Dialogowe Zapis
- if (result == true)
- {
- // Zapisanie dokumentu
- nazwaPliku = dlg.FileName;
- }
- //------
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement