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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
xdozorx
15 / 16 / 1
Регистрация: 13.12.2009
Сообщений: 138
Записей в блоге: 1
#1

Одномерный массив, заполнение по нужным индексам - C++

07.11.2012, 10:49. Просмотров 310. Ответов 3
Метки нет (Все метки)

Есть картинка размер 2х2, тоисть колво пиксилей = 4
один пиксель - 4 байта
в итоге width*height*4 = 16, имеется одномерный масив на 16 байт в котором содержится 4 цвета етой картинки
хочу сделать точно такуюже картинку, только больше в 2 раза, ето означает что вместо 1-го пикселя - будет 4
новый массив будет иметь размер в width*2*height*2*4 = 64 байта
Проблема заключается в том что не получается правильно скопировать эти цвета в новый массив так, чтобы при разном размере картинки - правильно копировало цвета
на картинке показано как должны цвета копироватся в новую (большую) картинку и в каком порядке они идут
http://postimage.org/image/lleg79eiv/

mas[16] имеет 4 цвета, нужно скопировать правильно ети цвета в newMas[64] // width*2*height*2*4
ниже приведен код которые копирует цвета в mas[16]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    int width = 2;
    int height = 2;
    int bytesPerRow = width * 4;
    
    const int bitmapByteCount = bytesPerRow * height;
    int mas[bitmapByteCount];
 
    for (int i = 0; i < bitmapByteCount; i +=4)
    {
        UInt8 a = data[i];
        UInt8 r = data[i + 1];
        UInt8 g = data[i + 2];
        UInt8 b = data[i + 3];
      
        mas[i]   = a;
        mas[i+1] = r;
        mas[i+2] = g;
        mas[i+3] = b;        
        
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2012, 10:49     Одномерный массив, заполнение по нужным индексам
Посмотрите здесь:

Вещественный массив - заполнение случайным образом. C++
C++ Двумерный массив, заполнение по спирали
C++ Заполнение змейкой, массив не 2D!
C++ Отсортировать массив по индексам элементов
Алгоритмы сортировки (сортировка и вычисляемыми адресами, вычерпыванием, по индексам и с указателями). C++
C++ Одномерный массив. Заполнение, сдвиг
сортировка массива по индексам C++
Динамический массив. Заполнение до нажатия Enter C++
C++ Создать двумерный массив размером NxM, Найти среднее арифметическое всех нечентых элементов с четными индексам
Массив: Заполнение двумерного вектора с клавиатуры C++
Вывод номера элемента разложенной в строку матрицы по введенным индексам i , j C++
Двумерный массив - рандомное заполнение C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
07.11.2012, 11:54     Одномерный массив, заполнение по нужным индексам #2
для работы с цветами я обычно использую такую структуру
C++
1
2
3
4
5
struct pixel{
    unsigned char RR;
    unsigned char GG;
    unsigned char BB;
}
Добавлено через 1 минуту
у вас будет матрица 2х2 пикселя, если нужно увеличивайте сколько хотите
xdozorx
15 / 16 / 1
Регистрация: 13.12.2009
Сообщений: 138
Записей в блоге: 1
07.11.2012, 16:33  [ТС]     Одномерный массив, заполнение по нужным индексам #3
я пишу на другом языке программирования, так что это сейчас неважно, не получается правильно забить пиксели в нужные индекса в новый массив

Добавлено через 1 минуту
и кстати, там UInt8 - ето typedef unsigned char UInt8;
xdozorx
15 / 16 / 1
Регистрация: 13.12.2009
Сообщений: 138
Записей в блоге: 1
08.11.2012, 20:17  [ТС]     Одномерный массив, заполнение по нужным индексам #4
может ктото накидает алгоритм? у меня пока что ступор над этим
есть mas[16]
mas[0] - красный
mas[4] - зеленый
mas[8] - синий
mas[12] - желтый

нужно mas[64]
по ссылке на картинке показано как должны забиваться цвета в массив, нужно учесть что размер картинки может быть разным

http://postimage.org/image/lleg79eiv/
Yandex
Объявления
08.11.2012, 20:17     Одномерный массив, заполнение по нужным индексам
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru