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

Еще раз про цветы)

12.08.2010, 10:05. Показов 2074. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня есть 2Д массив данных (нек-рое изображение в цифирях от 0 до Х), как из него сделать ч/б изображение (bmp или jpeg и тд). Я нормировал все на максимум и умножал на 255 (R, G, B) и делал из полученного bitmap, но тогда я теряю на выходном изображении много точек с близкими интенсивностями((int)(9100/max*255.0) и (int)(8500/max*255.0) равны 200 ). Как можно растянуть палитру(увеличить градацию)?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.08.2010, 10:05
Ответы с готовыми решениями:

Еще раз о выделении ячейки в DataGrid
При выборе мышкой любой из ячеек элемента DataGrid, вся надпись (т.е. ее background, причем именно области текста а не самой ячейки) данной...

Еще раз про аплоад
Попробуйте использовать "Pure ASP File Upload" http://www.asp101.com/articles/jacob/scriptupload.asp Не надо никаких dll, все просто...

(F5) - обновление страницы, но форма отправляется еще раз.
Подскажите, как сделать, чтобы юзер не мог несколько раз 'отправить форму' нажатием F5. Т.е. он при отправке попадает на страницу, где...

10
Заблокирован
12.08.2010, 10:14
попробуй усреднить R, G и B((R+G+B)/3), получиш оттенки серого цвета, а шаг усреднения ((0,0,0),(4,4,4),...- здесь шаг 4) будет коэффициентом сжатия
0
0 / 0 / 0
Регистрация: 22.12.2008
Сообщений: 9
12.08.2010, 10:31  [ТС]
Да вот это как-то опять 255... хотелось бы каждой интенсивности задавать свой ргб, допустим, 8100 это у нас r1, b1, g1, а для 9500 r2b2g2 т.е. ввести зависимость ргб от интенсивности
0
61 / 61 / 9
Регистрация: 17.02.2010
Сообщений: 101
12.08.2010, 19:02
Вот функция которая вернет черно/белый bitmap
C#
1
2
3
4
5
6
7
8
9
10
11
12
private Bitmap BitmapBlackWhite(Bitmap bitmap)
        {
            if (bitmap == null) return null;
            for (int y = 0; y < bitmap.Height; ++y)
                for (int x = 0; x < bitmap.Width; ++x)
                {
                    Color c = bitmap.GetPixel(x, y);
                    var rgb = (byte)(0.3 * c.R + 0.59 * c.G + 0.11 * c.B);
                    bitmap.SetPixel(x, y, Color.FromArgb(c.A, rgb, rgb, rgb));
                }
            return bitmap;
        }
Но GetPixel и SetPixel настолько медленные в .NET, что я бы посоветовал посмотреть в сторону метода LockBits класса Bitmap, и работать с байтами напрямую!
0
0 / 0 / 0
Регистрация: 22.12.2008
Сообщений: 9
12.08.2010, 21:18  [ТС]
Опять не то)
У меня есть 2д массив цифирей от 0 до 65000 вот из него мне нужно забацать изображение ч/б... такая фишка не катит
C#
1
2
3
4
5
6
7
8
for (int j = 0; j < r_str.ySize; j++)
            {
                for (int i = 0; i < r_str.xSize; i++)
                {
                    ColorM = Convert.ToInt32((r_str.GetDigit(i, j) - min) / max * 255.0);
                    image.SetPixel((int)i, (int)j, Color.FromArgb(ColorM, ColorM, ColorM)); 
                }
            }
потому что теряется глубина или как ее там...)
Вот такая блин задача...)
0
Заблокирован
12.08.2010, 21:20
Цитата Сообщение от zhrkian Посмотреть сообщение
потому что теряется глубина или как ее там...)
Вот такая блин задача...)
Можешь показать исходную картинку и результат, на котором "потеряна" глубина?
0
0 / 0 / 0
Регистрация: 22.12.2008
Сообщений: 9
12.08.2010, 21:29  [ТС]
Исходная картинка - это набор цифирей двумерный массив.
вот результат...
Миниатюры
Еще раз про цветы)  
0
Заблокирован
12.08.2010, 21:32
Цитата Сообщение от zhrkian Посмотреть сообщение
Вот...
Вижу одну картинку. А я просил две.
0
0 / 0 / 0
Регистрация: 22.12.2008
Сообщений: 9
12.08.2010, 21:45  [ТС]
Я создаю эту картинку из двумерного массива, в котором максимальное число 65000, а минимальное 0. Т.е. исходная картина это просто набор цифирей, так вот из этих цифирей я пытаюсь сделать картинку, причем ч\б. И у меня палитра RGB от 0 до 255. Что меня не устраивает т.к. я теряю в цвете интервал реальной интенсивности 65000\255... т.е. цифири массива 8000, 8050, 8254 я в цвете вижу как одно число
0
Заблокирован
12.08.2010, 22:14
Цитата Сообщение от zhrkian Посмотреть сообщение
Я создаю эту картинку из двумерного массива, в котором максимальное число 65000, а минимальное 0. Т.е. исходная картина это просто набор цифирей, так вот из этих цифирей я пытаюсь сделать картинку, причем ч\б. И у меня палитра RGB от 0 до 255. Что меня не устраивает т.к. я теряю в цвете интервал реальной интенсивности 65000\255... т.е. цифири массива 8000, 8050, 8254 я в цвете вижу как одно число
Ну а что ты хочешь потом с этим изображением делать? Видеть ты больше на мониторе, чем сейчас, не будешь.
0
0 / 0 / 0
Регистрация: 22.12.2008
Сообщений: 9
12.08.2010, 22:23  [ТС]
Ну для начала я буду на него смотреть)
А вот нафига тогда делали 32-х битные картинки, Format16bppGrayScale...
Меня интересует каким макарос создать палитру, чтоб каждой интенсивности соответствовал 16-битный цвет ил 16-тной чб палитры

кста когда-то на EGA мониторах было всего 16 цветов, а на CGA 4...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.08.2010, 22:23
Помогаю со студенческими работами здесь

Еще один вопрос про безопасность (ASP.NET / VB.NET)...
Пишется интранет на ASP.NET с использованием Windows authentication, есстественно, и поддержкой Active Directory. Из AD берутся данные...

Еще раз о перегрузке оператора ++
Привет. Прочитал аналогичные темы на форуме. И все равно не получается: Реализую перегрузку оператора ++ class Triangle ...

Выгрузить в Excel данные еще раз
Добрый день! Я выгружаю данные из sql server в excel. Все проходит без проблем, но если нажать второй раз на кнопку, то выскакивает...

С#/Структуры вложенные/Marshal еще раз объясните?
Здравствуйте. Код примерно такой: ... public unsafe struct def_ { public short flag;

Определите, встречается ли первое слово еще раз
Здравствуйте, нужно считать текст с .doc файла,чтобы узнать сколько раз повторялось 1 слово. Заранее спасибо.


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 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 На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru