|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,904
|
|
.NET 4.x Быстрая попиксельная замена нескольких цветов у картинки и остальная работа с графикой07.08.2020, 16:20. Показов 5660. Ответов 61
Метки нет (Все метки)
Здравствуйте.
Подскажите как быстро делать замену нескольких цветов у картинки + накладывание картинки на картинку или отрисовка в нужных позициях. И также маштабирование Для точности нужно использовать циклы по пиксельно или както по другому но нужно заменять только при полном совпадении. Но мне нужен быстрые способы. Стандартные методы делают это медленно. OpenGL да, но я вот тока не знаю как в нем работать. Там для меня трудная система коррдинат по Float системе. Да и плюс может есть чтото полегче Короче надеюсь есть те кто ответят. Уроки, примеры хоть что И так. Нужны 3 вещи. 1. Накладывание одной картинки на другую. 2. Отрисовка нескольких картинок в нужных позициях. Именно что не 1 картинка а несколько. 3. Замена массива цветов (Предположим 10 - 15 цветов) в картинки. Тоесть есть массив с исходными цветами а есть на которые нужно менять. 4. Изменение маштаба картинки / картинок Первые 2 по сути как 1 идет просто в 1 случае используеться 0 координата. И повторюсь. Интересуют быстрая реализация на уровне реализации игр но это не игра а утилита. Ну короче быстро это делать.
0
|
|
| 07.08.2020, 16:20 | |
|
Ответы с готовыми решениями:
61
Быстрая работа с графикой Попиксельная обработка картинки средствами VBA
|
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,904
|
||||
| 08.08.2020, 14:28 [ТС] | ||||
|
Добавлено через 1 минуту Добавлено через 2 минуты Добавлено через 31 минуту Чет не могу понять. А как по пиксельную замену цвета делать в SixLabors.ImageSharp?
0
|
||||
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,576
|
|||||||
| 08.08.2020, 15:03 | |||||||
0
|
|||||||
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,904
|
|
| 08.08.2020, 15:16 [ТС] | |
|
Чет не работает замена. Хотя вот эта строчка pixelRowSpan[x] = cn; срабатывает.
0
|
|
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,576
|
||||||
| 08.08.2020, 15:31 | ||||||
|
Как вы определили что не работает? Изображение измененное хоть сохранили куда нибудь?
0
|
||||||
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,904
|
||||||
| 08.08.2020, 15:41 [ТС] | ||||||
|
В принципе логично. Ведь замена происходит в pixelRowSpan а как обратно та его передать image?
Добавлено через 9 минут Вообще вот полный код и не работает
0
|
||||||
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,576
|
|
| 08.08.2020, 15:49 | |
|
У меня работает, визуально видно что цвета в файлах отличаются...
0
|
|
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,904
|
|
| 08.08.2020, 15:57 [ТС] | |
|
Да но вот только надо везде менять а вообще должно было поменяться все желтые регионы на красные.
Это неправильно уже красит. Тоесть все пиксели с цветом 0xFF, 0xDA, 0x91 доллжны меняться на 0x00, 0x48, 0xFF и так далее пока все не измениться. Так что какойто косяк в методе.
0
|
|
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,576
|
|
| 08.08.2020, 16:03 | |
|
Значит цвета не те у вас заданы для замены...
0
|
|
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,904
|
|
| 08.08.2020, 16:06 [ТС] | |
|
Как будтобы только последние цвета и заменяет. Чета не так.
0
|
|
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,576
|
||||||
| 08.08.2020, 16:10 | ||||||
|
BitmapLocker (https://github.com/vano-maisuradze/lock-bitmap) с первой страницы дает абсолютно такой же результат
0
|
||||||
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,904
|
|
| 08.08.2020, 16:24 [ТС] | |
|
Да цвета не те. Надо разбираться почему большинство цветов не совпадают.
0
|
|
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,904
|
||||||
| 09.08.2020, 13:22 [ТС] | ||||||
|
Разобрался с палитрой. Вот код:
https://youtu.be/n9C0ZX79Ljw Да. Намного быстрее чем SetPixel и GetPixel но все равно это не мгновенно. Вероятно из за сохранения и загрузки. А можно ли передать на прямую или может у SixLabors.ImageSharp имеется свой PictureBox на WinForms? Да и не надо мне сохранять измененный результат. Это по сути просто графическая оболочка чисел. На самом деле все результаты храняться в ASM файле. Ну в данном случае это пример. Я теперь примеры делаю прежде чем выносить в реальный код.
0
|
||||||
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,576
|
||||||
| 09.08.2020, 13:36 | ||||||
|
Конвертировать в Bitmap можно например так
0
|
||||||
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,904
|
|
| 09.08.2020, 16:12 [ТС] | |
|
А где находится BitmapLocker или его нету в Net Core 3.1?
0
|
|
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,904
|
|
| 09.08.2020, 16:20 [ТС] | |
|
0
|
|
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,576
|
||||||||
| 09.08.2020, 16:31 | ||||||||
0
|
||||||||
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,904
|
|
| 09.08.2020, 16:46 [ТС] | |
|
По моему BitmapLocker даже быстрее работает.
0
|
|
|
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,904
|
|
| 09.08.2020, 22:49 [ТС] | |
|
А что к слову лучше. Net Core или Net Framework или разницы особой нету? Имееться в виду WinForms
0
|
|
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,576
|
|||
| 10.08.2020, 02:16 | |||
|
Но просто загрузка/замена пикселей/сохранение у меня работает быстрее с ImageSharp, не намного но быстрее. - множество оптимизаций рантайма в плане улучшения производительности - доступность новых API (те же Span<T> перегрузки например), которых нет в .NET Framework - нормальная поддержка последних версий C# (.NET Framework C# 8 и выше не поддерживает) - задел на будущее (.NET Framework больше на развивается и что-то писать на нем, особенно новое не имеет смысла) - возможность поставлять приложение вместе с runtime'ом (который к тому же не требует установки в отличии от .NET Framework) И это далеко не полный список...
0
|
|||
| 10.08.2020, 02:16 | |
|
Различие цветов однотонной картинки Уменьшить количество цветов картинки! Обрезка списка цветов из картинки Замена цветов в картинке Замена цветов на картинке Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Задача:
Программно добавить префикс в нумерацию документов в самописной конфигурации на БСП (помощь начинающему коллеге).
Решение:
В модуле объекта документа размещен следующий код:
Процедура. . .
|
После закрытия оутлука продолжает висеть процесс в диспетчере задач
Maks 27.10.2026
С недавнего времени в продакшене возникла проблема: при закрытии оутлука в диспетчере задач продолжал висеть процесс outlook. exe. Проблема возникла после установки MS Office 2021 LTSC на машинах, под. . .
|
Baragoz - DPS/HPS бот для WoW 3.3.5a, многоязычный
AmbA 26.10.2026
Хотите ещё ботов? У меня есть один! А я пока отдохну от него.
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=12062&stc=1&d=1793007952
Инструкция внутри.
https:/ / youtu. be/ VpfFZSUDGnQ. . .
|
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности.
Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
|
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|