Есть вот такое юдо
Сейчас ватермарки добавляются только по зараннее проложенному пути и зараннее добавленное изображение, но надо чтобы ватермарку и изображение для ватермарки реально было выбрать через 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");
}
}
}
}