Форум программистов, компьютерный форум CyberForum.ru

Мучение: Создание из двумерного массива bitmap-а в оттенках серого - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Не будет ли каша в голове ? Си\С++ сложный ? http://www.cyberforum.ru/cpp-beginners/thread396322.html
Хотел научиться программировать на Си потом на Си++. Я знаю html\css и основы javascript! Параллельно я их развиваю и еще не давно начал php(для того чтобы написать курсовую работу свою):)). Моя расписания такая Изучаю Си 3 дня подряд суббота воскресенья понедельник по два часа(Ресурс Уроки и кнжика Кернинган и Ритчи и задачник Культин). Знания английского средний. Ваше советы по изучении Си и...
C++ Вывести последовательность элементов, сумма которых будет простым числом. Вот задача: Дан одномерный массив. Вывести последовательность элементов, сумма которых будет простым числом. В задаче не должно быть подпрограмм и т.п - нужен как можно более простой листинг проги. 3 цикла и т.п Помогите кто нибудь, пожалуйста! http://www.cyberforum.ru/cpp-beginners/thread396308.html
C++ создать квадратную матрицу...
С помощью динамического распределения памяти создать квадратную матрицу целых чисел, размерность матрицы вводится с клавиатуры. Заполнить матрицу случайными числами из диапазона 0 - 99. Отобразить один сектор матрицы на другой зеркально, как показано на рисунке. Исходную и преобразованную матрицы вывести на экран. Решение задачи должно быть оформлено в виде функции, которой передается матрица и...
Установить упорядочены ли компоненты вектора а по возрастанию или убыванию. C++
1.Установить упорядочены ли компоненты вектора а по возрастанию или убыванию. 2.Установить имеются ли у вектора а одинаковые компоненты.
C++ Вывести на экран все цитаты из файла http://www.cyberforum.ru/cpp-beginners/thread396283.html
Здравствуйте уважаемые форумчане) Задали недавно написать программку, чтобы при считывании текста из файла на экран выводились только цитаты. (т.е. слова в кавычках). Вот что я начал писать, но почему-то не выходит. Компилируется нормально, но прога сразу вылетает. System("pause"); не спасает(((. Считать текст из файла и вывести на экран цитаты #include <fstream> #include <iostream>...
C++ точка останова Доброго времени суток! Если не сложно, объясните в чем ошибка. #include <iostream> #include <conio.h> using namespace std; const int size=15; class base { int number; int *array; подробнее

Показать сообщение отдельно
vikkey
0 / 0 / 0
Регистрация: 01.12.2011
Сообщений: 8
06.12.2011, 03:56  [ТС]     Мучение: Создание из двумерного массива bitmap-а в оттенках серого
Да ничего я с ними не делаю особенного: объявляю как глобальные. В первом сообщении, когда создавалась тема, указано как это делалось.
ArrayWindow[l][m] - обыкновенный двумерный массив типа double; значения в нем меняются от 0 до 255 (всё стандартно как для 8 разр изображения). Заполнить его можно как угодно: хоть случайными числами! Главное, чтобы значения их были от 0 до 255... Объявляется тоже как глобальный в самом начале программы после перечисления всех библиотек.
...
double ArrayWindow[600][600]={0.0};
...
Это мной здесь показан пример работы с конкретным изображением, каждый пиксель которого присваивается отдельному элементу массива ArrayWindow[l][m]. Для своего примера можно заполнить массив ArrayWindowRGB каким-нибудь другим изображением или вообще синтезировать и забить случайными числами от 0 до 255.
Дело не в том, что содержит ArrayWindow[l][m], а то как его отобразить в окне программы!? А нужно, чтобы отображался он в оттенках серого, как черно-белая фотография. А у меня пока не получается, -выложенный кусок кода зачем-то его раскрашивает или еренду выводит на экран, - и связано это не с предшествующими действиями над FLAGZOOM, ArrayWindow или RusFlag, а с неправильным представлением переменной str, значения которой присваиваются RusFlag[i].

Если я правильно понимаю, чтобы все было в оттенках серого надо в маски синего, красного и зеленого каналов записать одинаковые значения.
При этом для синей маски заполняются биты:
"0x000000NN", где N -значение h в 16 разр. представлении;
для зеленой - "0x0000NN00",
и для красной - "0x00NN0000".
В итоге, чтобы активировать все каналы цветов и получить именно в оттенках серого, а не цветное, надо записать так:
"0x00NNNNNN"

Теорию я понимаю, но реализовать программно не получается! Где-то ошибка вкралась! О_о
Подскажите, люди добрые!
 
Текущее время: 18:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru