Ватермарки и C#?

Есть вот такое юдо
Сейчас ватермарки добавляются только по зараннее проложенному пути и зараннее добавленное изображение, но надо чтобы ватермарку и изображение для ватермарки реально было выбрать через openfiledialog и потом изображение с ватермаркой сохранялось по нажатию кнопки

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Imaging;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;


namespace FlipToFlip
{
    public partial class Form1 : Form
    {


        public Form1()
        {

            InitializeComponent();
        }

        private void openButton_Click(object sender, EventArgs e)     //Открываем картинку
        {
            Bitmap image; //Bitmap для открываемого изображения
            {
                if (openFileDialog.ShowDialog() == DialogResult.OK)
                {

                    textbox.Text = openFileDialog.FileName;
                }
            }

            {
                try
                {
                    image = new Bitmap(openFileDialog.FileName);   //Bitmap для открываемой картинки

                    pictureBox1.Size = image.Size;    //Картинка подгоняется под размер picturebox
                    pictureBox1.Image = image;
                    pictureBox1.Invalidate();
                }
                catch
                {
                    DialogResult result = MessageBox.Show("Невозможно открыть выбранный файл",
                    "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);    //Если это НЕ картинка
                }
            }

        }

        private void saveButton_Click(object sender, EventArgs e)    //Сохранение картинки с watermark
        {
            Bitmap pngSave = (Bitmap)pictureBox1.Image;
            SaveFileDialog sfd = new SaveFileDialog();
            sfd.DefaultExt = "png";
            sfd.Filter = "Image files (*.png;*jpg;*gif)|*.png; *jpg; *gif;|All files (*.*)|*.*";
            if (sfd.ShowDialog() == DialogResult.OK) ;

        }



        private void watermark_Click(object sender, EventArgs e)
        {
            using (Image image = Image.FromFile(@"C:\Users\User\Documents\AccessDB\veterinar-dly-krolikov.jpg"))
            using (Image watermarkImage = Image.FromFile(@"C:\Users\User\Desktop\watermark.png"))
            using (Graphics imageGraphics = Graphics.FromImage(image))
            using (TextureBrush watermarkBrush = new TextureBrush(watermarkImage))
            {
                int x = (image.Width / 2 - watermarkImage.Width / 2);
                int y = (image.Height / 2 - watermarkImage.Height / 2);
                watermarkBrush.TranslateTransform(x, y);
                imageGraphics.FillRectangle(watermarkBrush, new Rectangle(new Point(x, y), new Size(watermarkImage.Width + 1, watermarkImage.Height)));
                image.Save(@"C:\Users\User\Documents\AccessDB\veterinar-dly-krolikov_watermark.jpg");
            }
        }
    }
}
  • Вопрос задан
  • 137 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы