ZennoPoster И работа с изображениями (watermark и прочие ништяки)

speaker

Client
Регистрация
13.10.2012
Сообщения
287
Благодарностей
44
Баллы
28
Найти бы доступный для понимания материал, без лапши не нужной , можно было бы по изучать, а пока только по делетански тырить коды, и пытаться их оживить в зенке.
 
  • Спасибо
Реакции: booldozer

seodamage

Client
Регистрация
08.09.2014
Сообщения
197
Благодарностей
52
Баллы
28
Подскажите пожалуйста как фильтр применить. Вписываю
.Filter(IMatrixFilter matrixFilter.Comic)

проект выполняется с ошибкой. А без этой строки выполняется успешно.

еще пробовал добавлять строку выше IMatrixFilter Comic = MatrixFilters; и делал разные вариации но не получается

3 часа убил - ничего не получилось с фильтром. Остальное Hue, Vignette и другие методы работают
 
Последнее редактирование:

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 706
Баллы
113
Для обработки изображений уже есть стандартный экшен в версиях 5,8+
 

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 263
Баллы
113
Подскажите пожалуйста как фильтр применить. Вписываю
.Filter(IMatrixFilter matrixFilter.Comic)

проект выполняется с ошибкой. А без этой строки выполняется успешно.

еще пробовал добавлять строку выше IMatrixFilter Comic = MatrixFilters; и делал разные вариации но не получается

3 часа убил - ничего не получилось с фильтром. Остальное Hue, Vignette и другие методы работают
Отпиши в skype - помогу безвозмездно.
 

seodamage

Client
Регистрация
08.09.2014
Сообщения
197
Благодарностей
52
Баллы
28
Решили проблему)

Нужно добавить 2 директивы юзинг

Код:
using ImageProcessor.Imaging.Filters.EdgeDetection;
using ImageProcessor.Imaging.Filters.Photo;
и вот как выглядит кусок с фильтром

Код:
using (MemoryStream inStream = new MemoryStream(photoBytes))
            {
                using (MemoryStream outStream = new MemoryStream())
                {
               
                    using (ImageFactory imageFactory = new ImageFactory(preserveExifData:true))
                    {
                    IMatrixFilter matrixFilter = MatrixFilters.Comic;
                    IMatrixFilter matrixFilter2 = MatrixFilters.HiSatch;
                        // Load, resize, set the format and quality and save an image.
                        imageFactory.Load(inStream)  // грузим картинку
                                    .Resize(size)    // меняем размер (500 на 500 см. выше)
                                    .Filter(matrixFilter)
                                    .BackgroundColor(Color.White)
                                    .Format(format)  // выбираем формат картинки, т.е jpeg(jpg)
                                    .Save(outStream); // сохраняем в поток
                        //outStream.CopyTo(inStream);
                        outStream.WriteTo(fs); // записываем в файл
                        outStream.Close();     // не забываем закрывать потоки ввода-вывода
                    }
                    inStream.Close(); // не забываем закрывать потоки ввода-вывода
                    fs.Close();
               }
            }
Для обработки изображений уже есть стандартный экшен в версиях 5,8+
да, читал) Еще не взял обнову, у меня предыдущий билд.
 

Paradxox1989

Client
Регистрация
04.01.2015
Сообщения
58
Благодарностей
2
Баллы
8
Решили проблему)

Нужно добавить 2 директивы юзинг

Код:
using ImageProcessor.Imaging.Filters.EdgeDetection;
using ImageProcessor.Imaging.Filters.Photo;
и вот как выглядит кусок с фильтром

Код:
using (MemoryStream inStream = new MemoryStream(photoBytes))
            {
                using (MemoryStream outStream = new MemoryStream())
                {
              
                    using (ImageFactory imageFactory = new ImageFactory(preserveExifData:true))
                    {
                    IMatrixFilter matrixFilter = MatrixFilters.Comic;
                    IMatrixFilter matrixFilter2 = MatrixFilters.HiSatch;
                        // Load, resize, set the format and quality and save an image.
                        imageFactory.Load(inStream)  // грузим картинку
                                    .Resize(size)    // меняем размер (500 на 500 см. выше)
                                    .Filter(matrixFilter)
                                    .BackgroundColor(Color.White)
                                    .Format(format)  // выбираем формат картинки, т.е jpeg(jpg)
                                    .Save(outStream); // сохраняем в поток
                        //outStream.CopyTo(inStream);
                        outStream.WriteTo(fs); // записываем в файл
                        outStream.Close();     // не забываем закрывать потоки ввода-вывода
                    }
                    inStream.Close(); // не забываем закрывать потоки ввода-вывода
                    fs.Close();
               }
            }

да, читал) Еще не взял обнову, у меня предыдущий билд.
Круто конечно:-) подскажи пожалуйста. Где ты директивы взял?

Просто пытаюсь добавить флип... Ничего не получается
http://imageprocessor.org/imageprocessor/imagefactory/flip/
 

AZANIR

Client
Регистрация
09.06.2014
Сообщения
405
Благодарностей
196
Баллы
43
ребята подсобите с обрезкой изображения.
 

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 263
Баллы
113
уже в зеннке вроде есть. А так юзайте метод
Crop(Rectangle rectangle)
 
Последнее редактирование:

AZANIR

Client
Регистрация
09.06.2014
Сообщения
405
Благодарностей
196
Баллы
43
а можно типа на примере , вроди так и пишу но чтото не так делаю.

Crop(Rectangle rectangle)
оно то так а вот куда параметры обрезки внести ? или их выносим отдельно типа

Rectangle parent = new Rectangle(0, 0, width, height);
 
Последнее редактирование:

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 263
Баллы
113
Rectangle rec= new Rectangle(0, 0, 100, 100);
....
imageFactory.Load(inStream) // грузим картинку
.Crop(rec) // Обрезаем картинку
....
 
  • Спасибо
Реакции: AZANIR

AZANIR

Client
Регистрация
09.06.2014
Сообщения
405
Благодарностей
196
Баллы
43
Сам спросил сам ответил , может к
Rectangle rec= new Rectangle(0, 0, 100, 100);
....
imageFactory.Load(inStream) // грузим картинку
.Crop(rec) // Обрезаем картинку
....
уже так и сделал ) , пока ждал ответ)
но в любом случае мего спасибо.)
 
  • Спасибо
Реакции: Radzhab

Yatsyk

Client
Регистрация
29.11.2015
Сообщения
10
Благодарностей
0
Баллы
1
Доброго времени суток) Хочу сделать уникализатор изображений, но пока не очень силен в C#. Идея в том, чтобы параметры изменения для каждого изображения (контраст, яркость, размытие и т.д.) устанавливались рандомно в проекте и затем передавались в сниппет. Подскажите пожалуйста, как можно вставить значение переменной проекта в сниппет? Например значение качества фото на выходе. Заранее благодарю)

Пробовал так
Код:
int quality; // объявляем переменную качества изображения
quality = project.Variables["quality"].Value; // присваиваем переменную качества изображения
ISupportedImageFormat format = new JpegFormat { Quality = "quality" }; // Устанавливаем качество фото на выходе
И так
Код:
ISupportedImageFormat format = new JpegFormat { Quality = project.Variables["quality"].Value }; // Устанавливаем качество фото на выходе
Ничего не получается, сниппет выполняется с ошибкой
 

Вложения

Последнее редактирование:

Sz5

Client
Регистрация
10.12.2012
Сообщения
157
Благодарностей
186
Баллы
43
А ошибка какая? телепатов тут нет.
 

Yatsyk

Client
Регистрация
29.11.2015
Сообщения
10
Благодарностей
0
Баллы
1

Вложения

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 263
Баллы
113
Convert.ToInt32(project.Variables["качество"].Value);
 
  • Спасибо
Реакции: Yatsyk

Yatsyk

Client
Регистрация
29.11.2015
Сообщения
10
Благодарностей
0
Баллы
1

evgen2522

Client
Регистрация
08.01.2016
Сообщения
470
Благодарностей
106
Баллы
43
Подскажите пожалуйста как впихать это
ReplaceColor
 

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 263
Баллы
113
imageFactory.Load(inStream) // грузим картинку
.Resize(size) // меняем размер (500 на 500 см. выше)
ReplaceColor(Color.Red, Color.Blue, int fuzziness = 0)
...
 

evgen2522

Client
Регистрация
08.01.2016
Сообщения
470
Благодарностей
106
Баллы
43

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 263
Баллы
113
ReplaceColor(Color.Red, Color.Blue, 0)
 

evgen2522

Client
Регистрация
08.01.2016
Сообщения
470
Благодарностей
106
Баллы
43

alexpost

Client
Регистрация
15.06.2016
Сообщения
173
Благодарностей
60
Баллы
28
подскажите плизз, как пользоваться фильтром DetectEdges

Код:
.......
IEdgeFilter test = new IEdgeFilter(KirschEdgeFilter,true);
                       
                          imageFactory.Load(inStream)  // грузим картинку
                         .DetectEdges(test)
.....
в C# не силен, пишет ошибку "невозможно создать экземпляр абстрактного класса"
 

strannic

Client
Регистрация
05.12.2010
Сообщения
224
Благодарностей
10
Баллы
18
Подскажите как метод http://imageprocessor.org/imageprocessor/imagefactory/roundedcorners/ использовать и внедрить ? к примеру хочу радиус 5px сделать, получаю ошибку что

Тип Время Сообщение
13:46:15 Компиляция кода Ошибка в действии "CS0103" "Имя "radius" отсутствует в текущем контексте". [Строка: 34; Cтолбец: 23]


Добавил вот так
.RoundedCorners(radius)
 

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 263
Баллы
113
вместо radius вставь число или если передавать из переменной
.RoundedCorners(Convert.ToInt32(project.Variables["радиус"].Value));
 
  • Спасибо
Реакции: strannic

justanotherVar

Пользователь
Регистрация
18.09.2016
Сообщения
66
Благодарностей
2
Баллы
8
Вопрос. Вот у вас вначале мол для продвинутых.
Там файлы для компиляции, насколько я понимаю.
Есть отсылка как компилить?
просто вы же не будете каждый раз новые файлы перекачивать нам на облако. спасибо.
 

BenLinus

Client
Регистрация
29.04.2016
Сообщения
39
Благодарностей
6
Баллы
8
@Radzhab Подскажи пожалуйста как правильно сформировать .Vignette(Color.(Convert.ToInt32(project.Variables["colorvin"].Value)))
Видимо не ToInt32, т.к. не срабатывает
 

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 263
Баллы
113
.Vignette(System.Drawing.ColorTranslator.FromHtml(project.Variables["colorvin"].Value)); // это если цвет в hex. Например #FFCC66
 

BenLinus

Client
Регистрация
29.04.2016
Сообщения
39
Благодарностей
6
Баллы
8
.Vignette(System.Drawing.ColorTranslator.FromHtml(project.Variables["colorvin"].Value)); // это если цвет в hex. Например #FFCC66
А если прописывать словами, к примеру AliceBlue, Aquamarine? В формате ARGB https://msdn.microsoft.com/ru-ru/library/system.drawing.color(v=vs.110).aspx
Хотя и словами подходит. Спасибо большущее за ответ:-)
 

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 263
Баллы
113
C#:
.Vignette(System.Drawing.ColorTranslator.FromName(project.Variables["Цвет"].Value)); // вот так можно прописать словами AliceBlue
 
  • Спасибо
Реакции: BenLinus

BenLinus

Client
Регистрация
29.04.2016
Сообщения
39
Благодарностей
6
Баллы
8
@Radzhab Подскажи пожалуйста как правильно нужно прописать строку text.Style = FontStyle.(project.Variables["стиль"].Value); //Жирный шрифт
Ведь по сути правильно наверное System.Drawing.FontStyle."Стиль"
 

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