1 место Библиотека Magick.NET C# (Image Magick), работа с изображениями, и другие полезняшки.

samsonnn

Client
Регистрация
02.06.2015
Сообщения
1 768
Благодарностей
1 436
Баллы
113
а как текст прописать по центру картинки?
Что тут нужно изменить?
image.Composite(label, 200, 100, CompositeOperator.Over); // расположение текста на картинке 200 слева, 100 сверху
Вот готовый сниппет - тык
 

Kinomanius

Активный пользователь
Регистрация
20.01.2020
Сообщения
184
Благодарностей
26
Баллы
28
А что тут по замене пикселей? Я смотрю там много связанных с этой задачей функций, даже есть "Получить файл с координатами и цветом пикселей", так вот после такого получения можно поменять значения цвета и собрать картинку сново?
 

Kinomanius

Активный пользователь
Регистрация
20.01.2020
Сообщения
184
Благодарностей
26
Баллы
28
Или ещё может быть возможно самому накладывать пиксели рандомного цвета в рандомные места картинки?
 

Kinomanius

Активный пользователь
Регистрация
20.01.2020
Сообщения
184
Благодарностей
26
Баллы
28
Ты если обрежешь, повернешь фото - это уже уникальное фото будет. Плюс любой фильтр. В идеале может еще EXIF очистить
Или добавить текст мелким шрифтом куда угодно на фото
Или маску с 1-2% видимости
Спасибо
 

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 983
Благодарностей
4 432
Баллы
113
Или ещё может быть возможно самому накладывать пиксели рандомного цвета в рандомные места картинки?
bitmap.SetPixel(rand.Next(bitmap.Width), rand.Next(bitmap.Heigth), Color.FromArgb(rand.Next(256), rand.Next(256), rand.Next(256), rand.Next(256)));
 
  • Спасибо
Реакции: Kinomanius

Kinomanius

Активный пользователь
Регистрация
20.01.2020
Сообщения
184
Благодарностей
26
Баллы
28
А ещё вопрос ( да чёт их много :-) ) Я совсем чайник, и у меня возникли трудности с скачиванием dll библиотеки, я першёл на сайт ImageMagik
И вижу такую картину
55015

Нахожу то что мне нужно (Q8-) и начинаю скачивать, после чего устанавливаю exe. Но по пути установки обнаружил приложение и среди dll не было нужной мне библиотеки.
Где её найти и как скачать? На сайте одни exe да всякие rpm \ tar.gz и т.д. Может я чё не знаю про установку этих форматов... помогите пж
 

Kinomanius

Активный пользователь
Регистрация
20.01.2020
Сообщения
184
Благодарностей
26
Баллы
28

specialist

Client
Регистрация
28.12.2018
Сообщения
732
Благодарностей
343
Баллы
63
  • Спасибо
Реакции: samsonnn

Unipostmaster

Client
Регистрация
19.01.2014
Сообщения
20
Благодарностей
3
Баллы
3
2020-05-13_19-07-17.jpg
Подскажите, можно ли с помощью этой библиотеки поменять зеленый лист (со всеми оттенками) на красный (со всеми оттенками)?
Просто замена одного RGB цвета на другой не принесла нужного результата
 

Ikigai

Client
Регистрация
13.12.2016
Сообщения
276
Благодарностей
27
Баллы
28
Подскажите, как сделать выравнивание текста по черному варианту
Текущий код ( белый вариант) :
C#:
 using (MagickImage label = new MagickImage("label:1.589.625", readSettings)){
        image.Composite(label, 400, 460, CompositeOperator.Over); // расположение текста на картинке 200 слева, 100 сверху
        image.Write(SaveImagePath);
55913
 

Ikigai

Client
Регистрация
13.12.2016
Сообщения
276
Благодарностей
27
Баллы
28
И второй вопрос, как можно подставить переменную вместо "Тут какой то текст" из кода ниже
C#:
string InputImagePath = project.Variables["InputImagePath"].Value;
string SaveImagePath = project.Variables["SaveImagePath"].Value;
using (MagickImage image = new MagickImage(InputImagePath)){
     MagickReadSettings readSettings = new MagickReadSettings{
        FillColor = MagickColors.Blue, // цвет текста
        BackgroundColor = MagickColors.Transparent, // фон текста
        Font = "Arial", // Шрифт текста (только те, что установлены в Windows)
        Width = 350, // Ширина текста
        Height = 48 }; // Высота текста
    image.Alpha(AlphaOption.Opaque);
    using (MagickImage label = new MagickImage("label:Тут какой то текст", readSettings)){
        image.Composite(label, 200, 100, CompositeOperator.Over); // расположение текста на картинке 200 слева, 100 сверху
        image.Write(SaveImagePath);
    }
}
Вспомнил про Конкатена́ция . ("label:"+переменная, readSettings)
 
Последнее редактирование:
  • Спасибо
Реакции: vitupas

Ikigai

Client
Регистрация
13.12.2016
Сообщения
276
Благодарностей
27
Баллы
28
Заменить белый фон на прозрачный

C#:
string InputImagePath = project.Variables["InputImagePath"].Value; // В переменной InputImagePath указать путь к изображению
string SaveImagePath = project.Variables["SaveImagePath"].Value; // В переменной SaveImagePath указать путь куда сохраняем обработанное изображение
using (MagickImage image = new MagickImage(InputImagePath)){
image.Format = MagickFormat.Png;
image.Alpha(AlphaOption.Set);
image.ColorFuzz = new Percentage(10);
image.Opaque(MagickColors.White, MagickColor.FromRgba(0, 0, 0, 0));
image.Write(SaveImagePath);
}
Есть пару вопросов
1)А возможно ли как то ЗАДАТЬ, цвет который хочешь заменить ( к примеру не белый а зеленый , но не из выпадающего списка а задать его другими данными взятыми из фотошопа )
56796
56800


2) И второй вопрос после его вырезки можно ли его как то, залить размытостью..
 

vitupas

Client
Регистрация
07.04.2016
Сообщения
83
Благодарностей
8
Баллы
8
Есть пару вопросов
1)А возможно ли как то ЗАДАТЬ, цвет который хочешь заменить ( к примеру не белый а зеленый , но не из выпадающего списка а задать его другими данными взятыми из фотошопа )
Посмотреть вложение 56796Посмотреть вложение 56800

2) И второй вопрос после его вырезки можно ли его как то, залить размытостью..
Вообщем здесь не принято кому то что то подсказывать, раньше как то люди по активнее отвечали, много моих вопросов без ответа осталось или отправляют в дебри с# где нубу ну ничего не понятно а можно было бы выложить рабочий код и в трех словах объяснить че к чему, для новичка хоть какой то толчок был бы для понимания. Короче я тем же вопросом задавался и задавал его здесь ну никто внятно не ответил на него и я решил задействовать метод тыка и сработало) долго конечно мучился ну что то получилось, костыль скорее всего скажут профи но все же работает, пробуй....
var temp = Convert.ToByte(project.Variables["rgba1"].Value);
var temp1 = Convert.ToByte(project.Variables["rgba2"].Value);
var temp2 = Convert.ToByte(project.Variables["rgba3"].Value);
var temp3 = Convert.ToByte(project.Variables["rgba4"].Value);
MagickImage roundImg = new MagickImage(MagickColor.FromRgba(temp, temp1, temp2, temp3), 1280, 720);


roundImg.Resize(1280, 720);
roundImg.Transparent(MagickColors.Aqua);
roundImg.Write(@"Z:\zp шаблоны\Ютуб\12345\1.jpg");

В переменные temp... прописывай значение цвета rgba к примеру 116.23.22.54 116 это temp, 23 temp1 ну и так далее.


roundImg.Resize(1280, 720);
roundImg.Transparent(MagickColors.Aqua); вот эти строчки пока не пойму для чего, меняю их значения и ничего не происходит отрабатывают переменные temp, мож кто из профи подскажет
 
  • Спасибо
Реакции: Ikigai

vitupas

Client
Регистрация
07.04.2016
Сообщения
83
Благодарностей
8
Баллы
8
И второй вопрос, как можно подставить переменную вместо "Тут какой то текст" из кода ниже
C#:
string InputImagePath = project.Variables["InputImagePath"].Value;
string SaveImagePath = project.Variables["SaveImagePath"].Value;
using (MagickImage image = new MagickImage(InputImagePath)){
     MagickReadSettings readSettings = new MagickReadSettings{
        FillColor = MagickColors.Blue, // цвет текста
        BackgroundColor = MagickColors.Transparent, // фон текста
        Font = "Arial", // Шрифт текста (только те, что установлены в Windows)
        Width = 350, // Ширина текста
        Height = 48 }; // Высота текста
    image.Alpha(AlphaOption.Opaque);
    using (MagickImage label = new MagickImage("label:Тут какой то текст", readSettings)){
        image.Composite(label, 200, 100, CompositeOperator.Over); // расположение текста на картинке 200 слева, 100 сверху
        image.Write(SaveImagePath);
    }
}
Вспомнил про Конкатена́ция . ("label:"+переменная, readSettings)
Вот как надо!!! Ясно и доходчиво а то подсказывают некоторые ребусами, спасибо четко объяснил.
 

vitupas

Client
Регистрация
07.04.2016
Сообщения
83
Благодарностей
8
Баллы
8
Очень часто требуется нанести текст на картинку с пёстрым фоном. Без наложения эффекта тени или glow вокруг букв всё сливается.
Расскажи нам как сделать тени или свечение средствами зенки или даже другими c# либами по работе с графикой?
Astraport Привет, если есть пример кода тени или glow вокруг букв выложи плиз....
 

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 983
Благодарностей
4 432
Баллы
113

vitupas

Client
Регистрация
07.04.2016
Сообщения
83
Благодарностей
8
Баллы
8
Да с этой либы, в методах не могу разобраться, примерчик бы...
 

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 983
Благодарностей
4 432
Баллы
113

vitupas

Client
Регистрация
07.04.2016
Сообщения
83
Благодарностей
8
Баллы
8
Хотел но он закрылся), я тут в теме видел ты про тени и grow писал подумал что у тебя есть наработки в этом направлении. Ну ладно буду копать дальше...
 

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 983
Благодарностей
4 432
Баллы
113
Есть другая либа (поищи к конкурсных статьях 2-3хлетней давности), она делает и тени и глоу. Эта по идее тоже должна, но поиском не нахожу.
 
  • Спасибо
Реакции: vitupas

vitupas

Client
Регистрация
07.04.2016
Сообщения
83
Благодарностей
8
Баллы
8
Понял спасибо
 

cherus09

Client
Регистрация
10.10.2016
Сообщения
172
Благодарностей
14
Баллы
18
Привет, может кто подскажет как сохранить изображение пот тем же именем после этих манипуляций?
 

timoxa949

Client
Регистрация
16.11.2018
Сообщения
158
Благодарностей
27
Баллы
28

Gooldbee

Client
Регистрация
16.05.2019
Сообщения
224
Благодарностей
25
Баллы
28
А можно как то получить информацию из картинки?
61794

Фамилию П1 к примеру
 

samsonnn

Client
Регистрация
02.06.2015
Сообщения
1 768
Благодарностей
1 436
Баллы
113

fvzh

Client
Регистрация
17.01.2015
Сообщения
7
Благодарностей
1
Баллы
3
Подскажите пожалуйста а можно ли также как тут в примере jpg в png, только сделать чтобы было svg в png
 

Gor

Client
Регистрация
30.09.2016
Сообщения
248
Благодарностей
30
Баллы
28
Спасибо! Очень классный шаб и статья!
 
Последнее редактирование:
  • Спасибо
Реакции: samsonnn

dert12

Client
Регистрация
24.11.2017
Сообщения
25
Благодарностей
8
Баллы
8
Спасибо, то что нужно.
 
  • Спасибо
Реакции: samsonnn

Gor

Client
Регистрация
30.09.2016
Сообщения
248
Благодарностей
30
Баллы
28

Gor

Client
Регистрация
30.09.2016
Сообщения
248
Благодарностей
30
Баллы
28
Привет, может кто подскажет как сохранить изображение пот тем же именем после этих манипуляций?
Нашел способ? Я, если прописываю в input и output один и тот же путь, получаю ошибку доступа к файлу.
 

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