|
1 / 1 / 0
Регистрация: 07.05.2015
Сообщений: 14
|
|
Как выяснить, какое именно изображение загружено в picturebox из ресуров03.09.2015, 19:17. Показов 3989. Ответов 11
Метки нет (Все метки)
Добрый день.
Есть 1 кнопка, 1 picturebox и 3 изображения в менеджере ресурсов (pic1, pic2, pic3). По нажатию на кнопку одно из изображений устанавливается в picturebox.image случайным образом. Как определить, какое именно из 3х изображений было установлено в picturebox? (попытка if (picturebox.Image == MyProg1.Properties.Resources.pic1) - ни к чему не привела)
0
|
|
| 03.09.2015, 19:17 | |
|
Ответы с готовыми решениями:
11
|
|
127 / 121 / 68
Регистрация: 27.08.2015
Сообщений: 232
|
||||||||||||
| 03.09.2015, 20:54 | ||||||||||||
|
Andreys51, загляните в файл Resources.Designer.cs. Там есть такие строки в случае загрузки изображения:
Тривиальный казалось бы код
Так что в вашей задаче нужно загружать изображение из ресурсов и тут же сохранять его в какой-то свой массив, с элементами которого потом будете проводить сравнение. Повторюсь, повторный запрос из ресурсов будет приводить к созданию новых объектов (с тем же самым бинарным изображением).
0
|
||||||||||||
|
1 / 1 / 1
Регистрация: 03.07.2015
Сообщений: 16
|
||||||
| 04.09.2015, 00:46 | ||||||
|
Рубрика "Вредные советы".
Сравнение каждого писеля двух изображений:
Вот нашел Темку. Там получше код
0
|
||||||
|
1 / 1 / 0
Регистрация: 07.05.2015
Сообщений: 14
|
|
| 04.09.2015, 01:06 [ТС] | |
|
Спасибо, конечно. Но хотелось бы что то более простое/менее громоздкое чем создание дополнительного массива для хранения требуемых переменных с последующим ковырянием в нём (и тем более попиксельное сравнение).
Неужто нет более изящного способа?
0
|
|
|
8952 / 4864 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
|
|
| 04.09.2015, 01:54 | |
|
Ну если ты назначаешь картинку, то почему не можешь узнать какую именно?
1
|
|
|
1 / 1 / 0
Регистрация: 07.05.2015
Сообщений: 14
|
||||||
| 04.09.2015, 10:28 [ТС] | ||||||
|
ViterAlex, хотелось бы узнать, но как?
Допустим я сменил картинку 3 раза и имею явный код в разных местах:
Я бы с удовольствием присвоил каждой картинке таги, но не знаю как это сделать для изображений. Я бы с удовольствием ограничился только названием картинки в ресурсе, но опять же не знаю как это сделать ;( (пока что я вижу один неоптимальный вариант - в момент явного назначения картинки присваивать некий номер некой переменной, и ввести словарь <номер_переменной, имя_картинки_в_ресурсах> - но такое нагромождение кода мне кажется несколько глупым для такого языка, и что то подсказывает, что должен быть более простой путь)
0
|
||||||
|
127 / 121 / 68
Регистрация: 27.08.2015
Сообщений: 232
|
||||||
| 04.09.2015, 12:16 | ||||||
|
Если использование тэгов является для вас вариантом, тогда так:
0
|
||||||
|
1 / 1 / 0
Регистрация: 07.05.2015
Сообщений: 14
|
|
| 04.09.2015, 23:48 [ТС] | |
|
Moloch, спасибо.
Но это опять получился тот вариант что я привёл в скобках - каждому изображению присвоили номер (что хорошо) и что бы разобраться к чему он относится, нам придётся создавать массив всех изображений (что есть плохо, ибо изображения сами по себе уже и так находятся в ресурсах - вот там бы им присвоить таги, ну или каким то образом выяснить имя/код/какой либо идентификатор этой самой картинки, который будет одинаков как у ресурса, так и у picturebox.Image)
0
|
|
|
8952 / 4864 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
|
|||||||
| 05.09.2015, 06:46 | |||||||
0
|
|||||||
|
1524 / 914 / 329
Регистрация: 17.05.2015
Сообщений: 3,438
|
||
| 05.09.2015, 08:24 | ||
Создай публичную переменную a, если присваивается 1 изображение a=1, второе a=2... Проверка if(a==1)..
1
|
||
|
1 / 1 / 0
Регистрация: 07.05.2015
Сообщений: 14
|
|
| 08.09.2015, 12:15 [ТС] | |
|
Рядовой, картинок не много, до 10 - но примерно столько же пикбоксов - итоговое количество комбинаций можешь посчитать... Без словаря или кучки дополнительных переменных, как ты предложил, не обойтись в твоём варианте..
ViterAlex - прости, не совсем понял твой ответ. У меня в ресурсах есть 3 картинки с именами pic1, pic2, pic3, и есть picturebox1.Image, в котором находится одна из этих картинок. Напиши, пожалуйста, конкретную строку кода (в привязке к моим pic1-pic3 и picturebox1), которая позволит из picturebox1.Image узнать текущее "ИмяРесурса" (т.е. имена "pic1" или "pic2" или "pic3" или может какой то другой идентификатор, по которому их можно будет сопоставить) (в идеале это что то типа простой строки if (picturebox1.Image == MyProg1.Properties.Resources.pic1) )
0
|
|
|
1 / 1 / 0
Регистрация: 07.05.2015
Сообщений: 14
|
|
| 13.09.2015, 08:13 [ТС] | |
|
Для тех кто будет искать подобное - вопрос не решён....
1
|
|
| 13.09.2015, 08:13 | |
|
Помогаю со студенческими работами здесь
12
Как проверить, из какого файла загружено изображение? Доступ к файлам ресуров(изображение, видео, аудио...) в jar Как программно узнать, что изображение загружено в пикчуребокс?
Определить загружено ли в Image изображение Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
делаю науч статью по влиянию грибов на сукцессию
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 и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|