Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/67: Рейтинг темы: голосов - 67, средняя оценка - 4.72
11 / 0 / 0
Регистрация: 21.05.2011
Сообщений: 49

Эффекты для простейшего редактора изображений

10.05.2012, 03:53. Показов 13293. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток. Я написал основную форму для редактора, и пришло время добавить эффекты похожие на фотошоповские, всего их 5. Пробовал сделать это с помощью OpenGL, но запутался в классах и движке опенджиэла. Есть возможность сделать пусть три самых основных эффекта в функциях кнопок? Например: Контраст, яркость, гамма - хотя бы их и без opengl.
Все исходники и экзешник в архиве. Прошу помощи у людей понимающих в этой теме

Вот код моей программы:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Tao.OpenGl;
using Tao.FreeGlut;
using Tao.Platform.Windows;
 
namespace Redaktor
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private anEngine ProgrammDrawingEngine;
 
 
        private void exitToolStripMenuItem_Click(object sender, EventArgs e)
        {
            // создаем переменную rsl, которая будет хранить результат вывода окна с вопросом 
            // (пользователь нажал одну из клавиш на окне - это и есть результат) 
            // MessageBox будет создержать вопрос, а так же кнопки Yes No и иконку Question (Вопрос) 
            DialogResult rsl = MessageBox.Show("Вы действительно хотите выйти из приложения?", "Внимание!", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
 
            // если пользователь нажал кнопку да 
            if (rsl == DialogResult.Yes)
            {
                // выходим из приложения 
                Application.Exit();
            }
        }
        //обработка добавления файла в JPG формате
        private void jPGToolStripMenuItem_Click(object sender, EventArgs e)
        {
            // загружаем jpg фалйы 
            LoadImage(true);
        }
        //обработка кнопки добавления файла в PNG формате
        private void pNGToolStripMenuItem_Click(object sender, EventArgs e)
        {
            // загружаем png фалйы 
            LoadImage(false);
        }
        //обработка первой кнопки левого меню
        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            // создаем новый экземпляр класса Preview, 
            // отвечающего за работу с нашей дополнительной формой 
            // в качестве параметра мы передаем наше загруженное изображение 
            Form PreView = new Preview(MemForImage);
            // затем мы вызываем диалогое окно 
            PreView.ShowDialog();
        }
        //обработка второй кнопки левого меню
        private void toolStripButton2_Click(object sender, EventArgs e)
        {
            // загружаем jpg фалйы 
            LoadImage(true);
        }
        //обработка третей кнопки левого меню
        private void toolStripButton3_Click(object sender, EventArgs e)
        {
            // загружаем png фалйы 
            LoadImage(false);
        }
        Image MemForImage;
 
        // функция загрузки изображения 
        private void LoadImage(bool jpg)
        {
            // директория, которая будет выбрана как начальная в окне для выбора файла 
            openFileDialog1.InitialDirectory = "c:";
 
            // если будем выбирать jpg файлы 
            if (jpg)
            {
                // устанавливаем формат файлов для загрузки - jpg 
                openFileDialog1.Filter = "image (JPEG) files (*.jpg)|*.jpg|All files (*.*)|*.*";
            }
            else
            {
                // устанавливаем формат файлов для загрузки - png 
                openFileDialog1.Filter = "image (PNG) files (*.png)|*.png|All files (*.*)|*.*";
            }
 
            // если открытие окна выбора файла завершилось выбором файла и нажатием кнопки ОК 
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
 
 
                try // безопасная попытка 
                {
                    // пытаемся загрузить файл с именем openFileDialog1.FileName - выбранный пользователем файл. 
                    MemForImage = Image.FromFile(openFileDialog1.FileName);
                    // устанавливаем картинку в поле элемента PictureBox 
                    pictureBox1.Image = MemForImage;
                }
                catch (Exception ex) // если попытка загрузки не удалась
                {
                    // выводим сообщение с причиной ощибки 
                    MessageBox.Show("Не удалось загрузить файл: " + ex.Message);
                }
            }
        }
        //блок фильтров различных эффектов
        private void инвертироватьЦветToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ProgrammDrawingEngine.Filter_0();
        }
 
        private void размытиеToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ProgrammDrawingEngine.Filter_1();
        }
 
        private void резкостьToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ProgrammDrawingEngine.Filter_2();
        }
 
        private void теснениеToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ProgrammDrawingEngine.Filter_3();
        }
 
        private void акварелизацияToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ProgrammDrawingEngine.Filter_4();
        }
 
    }
}
Вложения
Тип файла: rar Редактор.rar (169.4 Кб, 290 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.05.2012, 03:53
Ответы с готовыми решениями:

Эффекты изображений
Здравствуйте! Мне в приложении нужно организовать обработку изображений (преобразование в различный цветовые системы, добавления эффектов...

Создание простейшего графического редактора
Всем привет. В общем такое задание, создать простеший графический редактор. Как нарисовать хотя бы простую линию? Как создать вообще...

Разработка простейшего графического редактора
Всем привет. Постановка задачи заключается в написании простейшего графического редактора с эллипсом, прямоугольником, ластиком,...

12
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
10.05.2012, 10:20
Цитата Сообщение от Pyls Посмотреть сообщение
Контраст, яркость, гамма - хотя бы их и без opengl.
Всё это делается без opengl и называется ЦОС (цифровая обработка сигналов).
Улучшение контраста достигается путем выравнивания гистограммы, методов существует несколько.
что касается яркости и гамма-коррекции сейчас формулы не покажу. Если до вечера ответ не найдешь, напомни в личке об этой теме, выложу методичку со всем необходимым.
1
11 / 0 / 0
Регистрация: 21.05.2011
Сообщений: 49
10.05.2012, 15:40  [ТС]
Хорошо, я поищу
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
11.05.2012, 00:16
Pyls, держи методичку
Вложения
Тип файла: rar Metod_ЦОИ_кр_2.rar (816.1 Кб, 1481 просмотров)
2
11 / 0 / 0
Регистрация: 21.05.2011
Сообщений: 49
11.05.2012, 00:33  [ТС]
Спасибо большое))))) весьма благодарен! Теперь то, я прогу точно допишу))))

Добавлено через 15 минут
Ну примеры и функции, которые я уже написал в программе как основу там я нашел, но вот редактирование самого изображения, из бесконечных формул я ничего не понял, как это в коде C# сделать?
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
11.05.2012, 07:18
Смысл простой: переводишь изображение в массив, применяешь к массиву нужные тебе формулы, переводишь обратно в изображение. Почитай внимательно, попробуй для начала реализовать самое простое (НЧ и ВЧ фильтры). На самом деле написано очень доступно, если сравнивать с тем, как изложен материал в книгах по ЦОС.
1
11 / 0 / 0
Регистрация: 21.05.2011
Сообщений: 49
11.05.2012, 15:17  [ТС]
хорошо, попробую!
0
3 / 3 / 0
Регистрация: 18.09.2011
Сообщений: 21
12.05.2012, 15:33
используй готовые библиотеки, например AForge.net. там реализовано множество различных эффектов
1
11 / 0 / 0
Регистрация: 21.05.2011
Сообщений: 49
12.05.2012, 17:55  [ТС]
а их нужно качать или в вижуал студио 2008 они уже есть?
0
3 / 3 / 0
Регистрация: 18.09.2011
Сообщений: 21
12.05.2012, 17:58
нужно скачать и подключить длл'ку к проекту
aforge.net например можно скачать за этой ссылкой
1
11 / 0 / 0
Регистрация: 21.05.2011
Сообщений: 49
12.05.2012, 17:59  [ТС]
Спасибо! как работать с этой библиотекой еще вечером гляну! надеюсь разберусь
0
3 / 3 / 0
Регистрация: 18.09.2011
Сообщений: 21
12.05.2012, 18:01
там не особо сложно. есть документация, и много статей по использованию, если погуглить.
удачи
1
11 / 0 / 0
Регистрация: 21.05.2011
Сообщений: 49
12.05.2012, 18:02  [ТС]
Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.05.2012, 18:02
Помогаю со студенческими работами здесь

Создание простейшего табличного редактора
Здравствуйте, форумчане Прошу у вас помощи ибо сам уже окончательно запутался Вся суть в том, что нужно сделать простейший редактор...

Создание простейшего редактора комбинационных схем
Добрый вечер господа, возникла необходимость в создании просто редактора комбинационных схем, используя логические элементы И,ИЛИ,НЕ и...

Решение для редактора изображений
https://myroom72.ru/calc Есть ли готовое решение, наподобие этого, если есть посоветуйте. Вдруг что то делали подобное.

Создание простейшего графического редактора
Скиньте, пожалуйста, исходник простейшей рисовалки типа mspaint. И подскажите литературу какую-нибудь для новичков, чтобы создать...

Перевод кода простейшего графического редактора с C#
приветик!!! помогите пожалуйста мне.. нужно Создать проект простейшего графического редактора... Переделать программку с C# на VB.NET ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru