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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2012, 22:43   #1
xdozorx
Пользователь
 
Регистрация: 09.06.2010
Сообщений: 15
По умолчанию Одномерный массив, заполнение по нужным индексам

Есть картинка размер 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]

Код:
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;        
        
    }
xdozorx вне форума Ответить с цитированием
Старый 09.11.2012, 23:03   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Стесняюсь спросить - это все колдовство для чего?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.11.2012, 00:47   #3
xdozorx
Пользователь
 
Регистрация: 09.06.2010
Сообщений: 15
По умолчанию

хочу увеличить 16-ти битную картинку в 2 раза без потери качества (тоисть пиксели не теряют своих цветов)
я ето уже релизовал, только другим способом
xdozorx вне форума Ответить с цитированием
Старый 11.11.2012, 00:54   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А еще раз постесняюсь, но спрошу: стандартные средства типа StretchBLT или ... Х.з. ченить из GDI+ не подходят?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.11.2012, 01:23   #5
xdozorx
Пользователь
 
Регистрация: 09.06.2010
Сообщений: 15
По умолчанию

я пишу на obj-c - там как оказалось можно сделать это нативными средствами, увеличив контекст в 2 раза без сглаживание пиксилей
xdozorx вне форума Ответить с цитированием
Старый 11.11.2012, 13:32   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ок. Понятно )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив и Двумерный массив eugene1437 Общие вопросы C/C++ 15 25.05.2011 19:17
обращение к объектам по индексам Zo0M Общие вопросы Delphi 8 24.02.2010 14:15
Одномерный массив. Q basic - Построить новый массив из элементов исходного ,которые больше P. Marishkaa Помощь студентам 2 12.01.2010 16:54
Двумерный массив, одномерный массив. Branbal Помощь студентам 14 18.11.2009 12:40
Построить массив q с индексам ij = i+j; если j – четное и i>3 НАСТЯ 18:) Помощь студентам 5 12.05.2009 22:56