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

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

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

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

07.11.2012, 10:49. Просмотров 317. Ответов 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;        
        
    }
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2012, 10:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Одномерный массив, заполнение по нужным индексам (C++):

Одномерный массив. Заполнение, сдвиг - C++
Добрый день, дали задание - заполнить массив из 20 элементов случайными числами от 0 до 100 сдвинуть элементы массива циклически влево на...

Отсортировать массив по индексам элементов - C++
Нужно написать программу в которой задан двумерный массив в котором одна строчка это числа, а другая индексы! Вводятся число индекс (1 1) в...

Создать двумерный массив размером NxM, Найти среднее арифметическое всех нечентых элементов с четными индексам - C++
НЕ получается самому

Матрица и одномерный массив (Составить одномерный массив, содержащий количество буквенных символов в каждом из ее столбцов, подсчет символов) - C++
Помогите решить задачку: Дана матрица 5х7, элементами которой являются значения символьного типа. Составить одномерный массив, содержащий...

Массив: преобразорвать двумерный массив в одномерный и отсортировать его методом пузырька - C++
всем привет. народ помогите с прогой, конкретно с функцией sort (65 строка), она должна двухмерный массив перевести построчно в одномерный...

Массив: найти номера столбцов с положительными элементами и записать их в одномерный массив - C++
ввести двумерный массив I . найти номера столбцов с положительными элементами и записать их в одномерный массив, отобразить его на экране. ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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 пикселя, если нужно увеличивайте сколько хотите
0
xdozorx
15 / 16 / 1
Регистрация: 13.12.2009
Сообщений: 138
Записей в блоге: 1
07.11.2012, 16:33  [ТС] #3
я пишу на другом языке программирования, так что это сейчас неважно, не получается правильно забить пиксели в нужные индекса в новый массив

Добавлено через 1 минуту
и кстати, там UInt8 - ето typedef unsigned char UInt8;
0
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/
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.11.2012, 20:17
Привет! Вот еще темы с ответами:

Массив: Все элементы массива, кратные трем, записать в одномерный массив. - C++
Дан двумерный массив размером n x n? заполненный целыми числами. Все его элементы кратные трем, записать в одномерный массив.

Целочисленный массив с размером 4*4 .Написать прогу , формирующую одномерный массив - C++
Целочисленный массив с размером 4*4 .Написать прогу , формирующую одномерный массив. #include &lt;iostream&gt; using namespace std; ...

Переписать произвольный одномерный массив в другой массив в обратном порядке - C++
Помогите написать прогу, вот задание. Переписать произвольный одномерный массив в другой массив в обратном порядке.

Дан двумерный массив 3х3. Получить одномерный массив из из отрицательных элементов матрицы. - C++
Пожалуйста, помогите решить простым методом задачку, просто не могу понять смысл ее выполнения. Дан двумерный массив 3х3.Получить...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
08.11.2012, 20:17
Ответ Создать тему
Опции темы

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