Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.01.2012, 13:21   #1
Ol_Alex
Пользователь
 
Регистрация: 08.01.2012
Сообщений: 12
По умолчанию Из StringGreed в BitMap градаций серого

Суть программы в следующем. Считываю из файла .bmp изображение InputImage в градациях серого. Заношу значения яркости в StringGreed1. Прделываю некие математические операции над элементами StringGreed1 и результат заношу в StringGreed2. Пока все в порядке. Теперь нужно это новое изображение OutputImage отрисовать -компонент (TImage) и сохранить в файл. Создаю указатель на TBitmap нужного размера и т.д. Вот вывод на экран

Код:

for (int y = 1; y < N+1; y++)
        {
        ptr2 = (Byte *)pBitmap2->ScanLine[y-1]; //Получаем указатель на строку
        for (int x = 1; x < M+1; x++)
                {
                 t= StrToInt(StringGrid2->Cells[x][y]);
                *(ptr2+x-1)= t;
                }
        }
OutputImage->Picture->Bitmap = pBitmap2;
Ясно, что в битмапе 1 байт на пиксель, а тут int. Но изображение выводится, многоцветное и как бы выделение контуров. Надо как-то палитру передать новому изображению из старого? Или создать свою палитру градаций серого
И еще. Ввел 2 переменные, одна int, а вторая unsigned char (яркость изменяется в пределах 0-255), чтобы посмотреть значения, которые присвиваются *(ptr2+x-1).
Код:
int  i=*(ptr2+x-1);
unsigned char c=*(ptr2+x-1);
так вот
i получает то же значение, что и вводилось (например, 226), а c - символ, код которого на 64 меньше (например, 'в',который равен 162).

Решение
Все, разобрался, делается серая палитра и используется для нового битмапа

Последний раз редактировалось Ol_Alex; 09.01.2012 в 00:32. Причина: найдено решение
Ol_Alex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JPEG градация серого BARNEY Мультимедиа в Delphi 2 24.02.2016 22:11
получение серого изображения из исходного DeDoK Общие вопросы Delphi 15 10.09.2010 11:45
из-за чего появляется полоса (на скрине) при вставке BitMap в TImage? - Проблема с Bitmap Grey@2009 Мультимедиа в Delphi 2 02.01.2010 20:23
Bitmap? HunterMan Общие вопросы .NET 7 27.12.2008 19:02
Оттенки серого yulia Мультимедиа в Delphi 4 02.12.2008 15:50