Как добавить изображение на изображени?

  • Автор темы Автор темы TotKto
  • Дата начала Дата начала

TotKto

Client
Регистрация
12.07.2013
Сообщения
123
Реакции
12
Баллы
18
Добрый день

Подскажите, пожалуйста, код для наложения изображение (watermark) на изображение.

Есть статья на форуме о том, как наложить свой текст на картинку.
Мне нужно тоже самое, только наложить мою картинку на картинку.
В C# не силен.

Большое спасибо(=
 
Что-то подобное написал (на основе кода Radzhab)

Код:
Развернуть Свернуть Копировать
ImageLayer imaga = new ImageLayer(); // Создаем экземпляр класса
imaga.Image = @"D:\photo\1.bmp";
imaga.Opacity = 100;
imaga.Size = new Size(100, 100);
imaga.Position = new Point(0,0);

Но первая же ошибка:
The type of namespace name 'ImageLayer' could not be found
 
Таки дошел:)

Код:
Развернуть Свернуть Копировать
        using (Image image = Image.FromFile(@"D:\photo\Slide-1.png")) //оригинал
        using (Image watermarkImage = Image.FromFile(@"D:\photo\1.jpg")) //вотемарк имага
        using (Graphics imageGraphics = Graphics.FromImage(image))
        using (Brush watermarkBrush = new TextureBrush(watermarkImage))
        {
            int x = (image.Width - watermarkImage.Width)/2;
            int y = (image.Height - watermarkImage.Height)/2;
            imageGraphics.FillRectangle(watermarkBrush, new Rectangle(new Point(0, 0), watermarkImage.Size));
            image.Save(@"D:\photo\new.png"); //куда сохраняем
        }
 
В новом билде будет возможность наложение watermark на изображение стандартным эхкшном, причем как текста, так и картинки. Подождите немного.
 
  • Оценить
Реакции: barkasian
Таки дошел:-)



using (Image watermarkImage = Image.FromFile(@"D:\photo\1.jpg")) //вотемарк имага
using (Graphics imageGraphics = Graphics.FromImage(image))
using (Brush watermarkBrush = new TextureBrush(watermarkImage))
{
int x = (image.Width - watermarkImage.Width)/2;
int y = (image.Height - watermarkImage.Height)/2;
imageGraphics.FillRectangle(watermarkBrush, new Rectangle(new Point(0, 0), watermarkImage.Size));
image.Save(@"D:\photo\new.png"); //куда сохраняем
}
[/CODE]
А как сделать по центру
Image.FromFile(@"D:\photo\1.jpg")) //вотемарк имага
И подгон под изображение
Код:
Развернуть Свернуть Копировать
[QUOTE="TotKto, post: 125823, member: 6045"]
(@"D:\photo\Slide-1.png")) //оригинал
[/QUOTE]
 
наложить свой текст на картинку.
как-то так, я думаю:
C#:
Развернуть Свернуть Копировать
using System.Drawing;
using System.Drawing.Imaging;

public void AddWatermark(string imageFilePath, string watermarkFilePath, int opacity)
{
    // Загружаем изображение и watermark
    Image image = Image.FromFile(imageFilePath);
    Image watermark = Image.FromFile(watermarkFilePath);

    // Создаем объект Graphics для рисования на изображении
    using (Graphics graphics = Graphics.FromImage(image))
    {
        // Вычисляем позицию наложения watermark в центре изображения
        int x = (image.Width - watermark.Width) / 2;
        int y = (image.Height - watermark.Height) / 2;

        // Создаем объект ImageAttributes для установки прозрачности
        ImageAttributes imageAttributes = new ImageAttributes();
        ColorMatrix colorMatrix = new ColorMatrix();
        colorMatrix.Matrix33 = opacity / 100f;
        imageAttributes.SetColorMatrix(colorMatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap);

        // Наложение watermark на изображение
        graphics.DrawImage(watermark, new Rectangle(x, y, watermark.Width, watermark.Height),
            0, 0, watermark.Width, watermark.Height, GraphicsUnit.Pixel, imageAttributes);
    }

    // Сохраняем измененное изображение
    image.Save(imageFilePath);
}
В этом примере imageFilePath - это путь к исходному изображению, watermarkFilePath - путь к watermark изображению, opacity - прозрачность watermark (от 0 до 100). Функция изменяет исходное изображение, на котором наложен watermark.
 
  • Оценить
Реакции: _HEDELKA_

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)