|
20 / 17 / 0
Регистрация: 15.08.2012
Сообщений: 122
|
|
Получить часть изображения13.02.2013, 22:12. Показов 5713. Ответов 13
Метки нет (Все метки)
Имеется вот такая вот картинка (смотрите ниже), как программно выбирать нужную картинку и зарисовывать её для дальнейшей разработки ? (GDI +)
0
|
|
| 13.02.2013, 22:12 | |
|
Ответы с готовыми решениями:
13
На основе исходного изображения (A) и отфильтрованного фильтром гаусса (B), получить изображения Часть изображения Выделить часть изображения |
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|
| 13.02.2013, 22:36 | |
|
Не совсем понятно про "выбирать и зарисовывать".
Поясните подробнее, если не сложно.
0
|
|
|
20 / 17 / 0
Регистрация: 15.08.2012
Сообщений: 122
|
|
| 13.02.2013, 22:45 [ТС] | |
|
kolorotur, Это объекты игрового мира, которые будут использоваться в Windows Forms. По сути, берется Rectangle к примеру 32х32 и он выбирает нужную часть для зарисовки. При зарисовки нужного кирпичика используется матрица. К примеру:
1212121212 2000000E01 1000003302 2003300001 1P00000002 2112112121, где 0 - пусто, 1 - обычный киприч, 2 - обычный кирпич (др. тип), 3 - уничтожаемый кирпич, P - игрок, E - враг. Это можно сказать тоже самое, что проигрывание анимации в 2D (кадр за кадром).
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|
| 13.02.2013, 23:10 | |
|
Понял.
Самый простой способ - нарезать из исходного изображения тайлов, затолкать их в ресурсы программы и каждому тайлу присвоить ключ в соответствии со значением массива. После этого просто циклом проходимся по массиву и отрисовываем в нужном месте нужную картинку. Но сперва вопрос: зачем три одинаковых тайла? Я про те, которые с вопросительным знаком. Добавлено через 4 минуты Еще вопрос: почему тайлы размером 32х32, а фактическая графика - 30х30 и внизу и справа на два пикселя светлая зона? Это так надо?
0
|
|
|
20 / 17 / 0
Регистрация: 15.08.2012
Сообщений: 122
|
|
| 13.02.2013, 23:27 [ТС] | |
|
kolorotur, Это просто пример, сейчас художник рисует объекты игрового мира с разрешением картинки 512х512, где будут присутствовать картинки размером 32х32. Задний фон будет "розовый", где будут планироваться создание прозрачности для объекта. (можете посмотреть пример ниже).
По сути вопроса хочу понять, как отрисовывать нужную картинку и какие эффективные методы прозрачности существуют.
0
|
|
|
20 / 17 / 0
Регистрация: 15.08.2012
Сообщений: 122
|
|
| 13.02.2013, 23:56 [ТС] | |
|
kolorotur, А если картинок будет за 100 и каждую картинку ложить в ресурсы, вы представляете, какая будет сильная загружаемость компьютера. Нет, данный метод, что вы написали выше, не подходит. Лучше всё сделать в одной картинке, которая будет весить от силы 500 кб.
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|||
| 14.02.2013, 00:08 | |||
![]() Вместо нарезки можно привязать элемент матрицы к определенным координатам исходного изображения и считывать этот регион из исходника. Вот, попробовал срисовывать из исходника, пользуясь предложенной вами матрицей: Обратите внимание, что пустые клетки в центре прозрачны - это потому что я их в исходнике изменил на прозрачные. Так что розовые цвета не обязательно использовать.
0
|
|||
|
20 / 17 / 0
Регистрация: 15.08.2012
Сообщений: 122
|
|
| 14.02.2013, 00:16 [ТС] | |
|
kolorotur, Покажите пожалуйста код программы, интересно посмотреть как вы делали и к тому же, как реализовать прозрачность определенного цвета, в данном случае - розовый. (ведь всё же пригодится в будущем, а то фиг знает, как художник там рисовать будет, может ему удобнее с розовым, ярко-зеленым цветом работать)
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||||||
| 14.02.2013, 01:41 | ||||||
Сообщение было отмечено как решение
Решение
darkExpressI2P, для примера я немного "ужал" исходное изображение, поудаляв повторяющиеся тайлы и зазоры между ними - так будет проще высчитывать координаты нужных для отрисовки тайлов.
Лучше скажите художнику сразу - никаких зазоров между тайлами! Вот код для отрисовки:
Розовый цвет стал прозрачным за счет небольшого падения в скорости отрисовки, т.к. каждый пиксель розового цвета придется заменять на прозрачный. Тут уже придется идти на компромисс: либо производительность, либо гибкость.
5
|
||||||
| 09.04.2016, 12:37 | ||
|
0
|
||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 09.04.2016, 13:52 | ||
![]() Быстрее в плане производительности — безусловно. Но автор в самом начале упомянул, что ему надо GDI+, потому все вокруг этого и вертелось.
0
|
||
| 09.04.2016, 15:36 | ||
|
0
|
||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 09.04.2016, 23:36 | ||
|
Надо было написать программу с ручной отрисовкой, попытался сделать это на WPF, просидел пол-дня в доках, пытаясь понять что там куда, в итоге выматерился и забыл до лучших времен, сделав всё на GDI+. При самообучении на GDI+ таких проблем как-то не наблюдалось
0
|
||
| 09.04.2016, 23:55 | ||
|
0
|
||
| 09.04.2016, 23:55 | |
|
Помогаю со студенческими работами здесь
14
Выделить часть изображения Часть изображения пропадает Отрезать часть изображения
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|