Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 18.09.2012
Сообщений: 69

Выбор изображения по условию

10.01.2013, 08:52. Показов 3824. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток !
уважаемые форумчане, вопрос такой. можно ли сделать так, что бы изображение выбиралось по условию ?
Есть рисунок. на рисунке две области.
нужно что бы на области рисунка накладывались слои маски по условию.
то есть если , к примеру, х=1 , то ставится слой-маска №1 с 50% прозрачностью. Если х=0, то ставится слой-маска №2 с прозрачностью 50%.
Как это реализовать? помогите плз.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.01.2013, 08:52
Ответы с готовыми решениями:

Вывод изображения из каталога по условию
Уважаемые форумчане. Необходимо написать программу вывода из указанного каталога на экран картинки с максимальным разрешением по оси X. Так...

Выбор по условию в PHP
Hi! I have the table in my database named 'Dogs' with two columns in it 'Name' (varchar type) and 'Birth' (date type). ...

выбор по условию в массиве
Есть например массив var myarray=, , ]; Как перебрать элементы массива с условием, что если элемент равен, например, 2, то...

12
Автор FAQ
Автор FAQ
 Аватар для Rockedit
1803 / 615 / 37
Регистрация: 22.12.2009
Сообщений: 1,544
10.01.2013, 09:18
Здравсвуйте!
На самом деле задача для Windows Form(если используется именно это) не такая уж простая.
Вот тут поднимался похожий вопрос -
Изображение с прозрачностью

Если не очень принципиально, то можно использовать WPF, там все гораздо проще.
0
0 / 0 / 0
Регистрация: 18.09.2012
Сообщений: 69
10.01.2013, 09:23  [ТС]
Благодарю за ответ !
В WPF с прозрачностью да, просто, но главный вопрос - как выбрать нужное изображение по условию ? при этом что бы размеры исходных изображений не менялись
0
Автор FAQ
Автор FAQ
 Аватар для Rockedit
1803 / 615 / 37
Регистрация: 22.12.2009
Сообщений: 1,544
10.01.2013, 11:47
Ну тогда подробнее, что такое х, откуда он берется?
0
26 / 26 / 4
Регистрация: 20.07.2012
Сообщений: 399
Записей в блоге: 1
10.01.2013, 15:35
используйте ветвление (ставьте условие )
C#
1
2
3
4
5
 if (x == 1)
{то ставится слой-маска №1 с 50%}
 
 if (x == 0)
{то ставится слой-маска №2 с прозрачностью 50%}
1
0 / 0 / 0
Регистрация: 18.09.2012
Сообщений: 69
11.01.2013, 08:42  [ТС]
Rockedit, х - это условие. он может быть равен либо нулю либо единице. Берется значение из базы данных (в таблице есть значение для каждого варианта.

Добавлено через 6 часов 33 минуты
HPB, но как это делается в WPF ? вроде же не просто прописав на шарпе код ?
0
Автор FAQ
Автор FAQ
 Аватар для Rockedit
1803 / 615 / 37
Регистрация: 22.12.2009
Сообщений: 1,544
11.01.2013, 09:14
C#
1
HPB, но как это делается в WPF ? вроде же не просто прописав на шарпе код ?
В WPF, для работы с контролами можно использовать как xaml так и c#-код, если конечно вы это имели ввиду.

я до сих пор не пойму, в чем у Вас проблема и все таки какую технологию Вы используете Windows Forms или WPF?

Для WFP прозрачность любого элемента делается элементарно
Каждый элемент, включая фигуры, наследует свойство Opacity (прозрачность) от базового класса UIElement. Прозрачность — это дробное значение от 0 до 1, где 1 означает полную непрозрачность (и принято по умолчанию), а 0 — полную прозрачность. Например, значение прозрачности 0,9 создает эффект 90% видимости (10% прозрачности). Установленная подобным образом прозрачность влияет на визуальное содержимое всего элемента.
0
24 / 24 / 9
Регистрация: 18.12.2012
Сообщений: 194
12.01.2013, 16:07
нельзя ли эти картинки настроить в фотошопе(прозрачность и всё что нужно), а потом просто менять источник картинки в picturebox?
скажем залить 2картинки
first.gif и second.gif

C#
1
2
3
4
if(x==1)
pictureBox1.Image = WindowsFormsApplication1.Properties.Resources.first;
if(x==0)
pictureBox1.Image = WindowsFormsApplication1.Properties.Resources.second;
1
26 / 26 / 4
Регистрация: 20.07.2012
Сообщений: 399
Записей в блоге: 1
12.01.2013, 16:34
Если бы ты попытался зарисовать всё что ты хочешь..
и в WPF кажется точно так же условия ставить возможно , просто там есть варианты с наложениями множества картинок.
0
0 / 0 / 0
Регистрация: 18.09.2012
Сообщений: 69
14.01.2013, 02:27  [ТС]
Saldoran,
нельзя ли эти картинки настроить в фотошопе(прозрачность и всё что нужно),
если настроить прозрачность в фотошопе то прозрачность перенесется и в саму картинку ? не знал...
почему то всегда казалось что в самой картинке будет просто белый фон...

Добавлено через 46 секунд
Для WFP прозрачность любого элемента делается элементарно
благодарю, да прозрачность настроить элементарно можно. проблема была с выбором изображения по условиию
0
 Аватар для MrGladus
178 / 178 / 50
Регистрация: 06.01.2013
Сообщений: 392
14.01.2013, 04:24
Я реализовывал смену изображений в зависимости от необходимого мне условия так:

Для начала я объявил переменную в которую записывается путь до исполняемой программы, плюс папка где находятся мои изображения:
Code
1
2
string baseDir = Environment.CurrentDirectory;
                baseDir += @"\images\";
После я создал массив Bitmap, и каждому элементу массива назначил свою картинку, после чего с помощью switch-case реализовал смену изображений в объекте pictureBox:
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
Bitmap[] sub_image = new Bitmap[6];
                    sub_image[0] = new Bitmap(baseDir + "2_1_1.jpg", true);
                    sub_image[1] = new Bitmap(baseDir + "2_1_2.jpg", true);
                    sub_image[2] = new Bitmap(baseDir + "2_1_3.jpg", true);
                    sub_image[3] = new Bitmap(baseDir + "2_1_4.jpg", true);
                    sub_image[4] = new Bitmap(baseDir + "2_1_5.jpg", true);
                    sub_image[5] = new Bitmap(baseDir + "2_1_6.jpg", true);
 
                    switch (_counter)
                    {
 
                        case 1:
                            pictureBox1.Image = sub_image[0];
                            _counter++;
                            break;
 
                        case 2:
                            pictureBox1.Image = sub_image[1];
                            _counter++;
                            break;
 
                        case 3:
                            pictureBox1.Image = sub_image[2];
                            _counter++;
                            break;
                        case 4:
                            pictureBox1.Image = sub_image[3];
                            _counter++;
                            break;
                        case 5:
                            pictureBox1.Image = sub_image[4];
                            _counter++;
                            break;
                        case 6:
                            pictureBox1.Image = sub_image[5];
                            _counter = 1;
                            break;
                    }Bitmap[] sub_image = new Bitmap[6];
                    sub_image[0] = new Bitmap(baseDir + "2_1_1.jpg", true);
                    sub_image[1] = new Bitmap(baseDir + "2_1_2.jpg", true);
                    sub_image[2] = new Bitmap(baseDir + "2_1_3.jpg", true);
                    sub_image[3] = new Bitmap(baseDir + "2_1_4.jpg", true);
                    sub_image[4] = new Bitmap(baseDir + "2_1_5.jpg", true);
                    sub_image[5] = new Bitmap(baseDir + "2_1_6.jpg", true);
 
                    switch (_counter)
                    {
 
                        case 1:
                            pictureBox1.Image = sub_image[0];
                            _counter++;
                            break;
 
                        case 2:
                            pictureBox1.Image = sub_image[1];
                            _counter++;
                            break;
 
                        case 3:
                            pictureBox1.Image = sub_image[2];
                            _counter++;
                            break;
                        case 4:
                            pictureBox1.Image = sub_image[3];
                            _counter++;
                            break;
                        case 5:
                            pictureBox1.Image = sub_image[4];
                            _counter++;
                            break;
                        case 6:
                            pictureBox1.Image = sub_image[5];
                            _counter = 1;
                            break;
                    }
1
0 / 0 / 0
Регистрация: 18.09.2012
Сообщений: 69
14.01.2013, 08:56  [ТС]
Цитата Сообщение от MrGladus Посмотреть сообщение
C#
1
2
string baseDir = Environment.CurrentDirectory;
 baseDir += @"\images\";
благодарю! особо интересен этот фрагмент кода. не могли бы вы порекомендовать источник где можно узнать подробнее о подобных "нестандартных" типах ?
0
 Аватар для MrGladus
178 / 178 / 50
Регистрация: 06.01.2013
Сообщений: 392
14.01.2013, 14:39
Я этот пример реализации где-то в интернете нашел. Если Вас интересуют книги, могу порекомендовать авторов: Симон Робинсон, Олли Корнес, Джей Глинн, Бартон Харвей, Крейг Макквин, Джерод Моемека, Кристиан Нагель, Морган Скиннер, Карли Ватсон - "С# для профессионалов", а также Троелсена.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.01.2013, 14:39
Помогаю со студенческими работами здесь

Выбор фамилии по условию
Создать командный файл, при вызове которого указываются фамилии двух студентов. Если первый Иванов, то вывести фразу "В классе будет...

Выбор трех точек по условию
Среди данного множества точек на плоскости выбрать 3 такие, чтобы треугольник, вершинами которого эти точки есть, содержал бы наибольшее...

Строка и выбор из нее по условию
Добрый день/вечер - есть следующая задача, надеюсь на помощь. Есть файл, заполненный доменными именами (все сохранены в текстовую...

Разветвляющийся алгоритм: выбор по условию
Даны действительные числа А, В. Если они оба отрицательные, то за-менить каждое из них его квадратом, иначе – положительные из них...

Выбор использования класса по условию
Существует несколько похожих классов. //метод класса 1 public override string ToString() { string...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru