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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 4.78
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
#1

Картинка в виде двумерного массива пикселей - C++

09.08.2012, 17:32. Просмотров 4590. Ответов 23
Метки нет (Все метки)

Можно ли, засунув картинку в проект, получить её массив пикселей? Есть ли для этого какая-либо функция?
Всё, что мне хочется, это взять картинку, формат которой предусматривает запись информации о пикселях последовательностями в 3 байта (без промежуточной информации) и засунуть туда лишний байт >:- E *хочу инфернальные картинки!!1*

Добавлено через 3 часа 25 минут
Есть идеи? ; (
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.08.2012, 17:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Картинка в виде двумерного массива пикселей (C++):

Вывод на экран содержиоме vector в виде двумерного массива - C++
Создал функцию в которой vector инициализируется значениями передаваемого двумерного массива: void ProcessDoubleArray(double *arr,int...

Вывести на экран в виде матрицы все элементы заданного двумерного массива - C++
Составить программу которая выводит на экран в виде матрицы элементы двумерного массива, состоящего из 5 строки и 3 столбцов. Значения...

Создать программу, которая реализует журнал с оценками в виде двумерного массива - C++
Пишу в Microsoft Visual Studio ->Win32 Console application ->C++. Условие задачи: Создать программу, которая реализует журнал с...

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

Как сделать, чтобы при вводе двумерного массива он сразу отображался в виде таблицы? - C++
Желательно использовать оператор setw().

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

23
vampir64
6 / 6 / 0
Регистрация: 01.08.2012
Сообщений: 70
10.08.2012, 20:11 #16
Что такое анархия пикселей? Вы хотите исковеркать формат файла и получить на выходе что-то неудобоваримое, которое скорее всего просмотровщик картинок даже не переварит? Я сильно сомневаюсь, что результат будет интересен.
0
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
10.08.2012, 20:21  [ТС] #17
vampir64, как я уже писал выше, мне не нужно его просматривать "просмотрщиком". Достаточно вывести попиксельно.
0
cossack5
54 / 48 / 1
Регистрация: 02.08.2012
Сообщений: 127
10.08.2012, 20:41 #18
Цитата Сообщение от vampir64 Посмотреть сообщение
Что такое анархия пикселей? Вы хотите исковеркать формат файла и получить на выходе что-то неудобоваримое, которое скорее всего просмотровщик картинок даже не переварит? Я сильно сомневаюсь, что результат будет интересен.
Почему же не будет? Можно записать обратно в файл также как и считали.
0
vampir64
6 / 6 / 0
Регистрация: 01.08.2012
Сообщений: 70
10.08.2012, 20:55 #19
cossack5, я не понимаю затею. Если уж играть с файлами по правилам, то не лучше ли обеспечить себе комфорт, используя готовое апи? Я бы, например, для такого рода экспериментов и вовсе использовал скриптовый язык python, на котором просто кодить и легко ставить эксперименты, под который есть куча библиотек, как правило очень простых и удобных в использовании. Хотя если вы просто развлекаетесь самодельным парсингом bmp-шек, то другое дело
1
cossack5
54 / 48 / 1
Регистрация: 02.08.2012
Сообщений: 127
10.08.2012, 21:01 #20
Цитата Сообщение от vampir64 Посмотреть сообщение
cossack5, я не понимаю затею. Если уж играть с файлами по правилам, то не лучше ли обеспечить себе комфорт, используя готовое апи? Я бы, например, для такого рода экспериментов и вовсе использовал скриптовый язык python, на котором просто кодить и легко ставить эксперименты, под который есть куча библиотек, как правило очень простых и удобных в использовании. Хотя если вы просто развлекаетесь самодельным парсингом bmp-шек, то другое дело
Я для этих целей использую GFL SDK - самая мощная библиотека для чтения изображений. Но она сравнительно немаленькая, и не везде хочется возиться с подобными, если нужен только .bmp.
1
vampir64
6 / 6 / 0
Регистрация: 01.08.2012
Сообщений: 70
10.08.2012, 21:09 #21
А я когда-то делал корректный парсер BMP. Уж толком не помню ничего, но кажется, что иногда в конце строк там положено быть некоторому заполнителю, т.к. количество пикселей в строке должно быть кратным... не помню чему. Написал весьма туманно но возможно, это чем-то поможет.
0
cossack5
54 / 48 / 1
Регистрация: 02.08.2012
Сообщений: 127
10.08.2012, 21:13 #22
vampir64, я вас понял. Разумеется, это учитывается.
0
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
11.08.2012, 07:19  [ТС] #23
Так и не решен вопрос о том, почему считывание из двоичного файла при SetPixel создает такие фокусы с флагом
0
grizlik78
Эксперт С++
1974 / 1467 / 122
Регистрация: 29.05.2011
Сообщений: 3,037
11.08.2012, 10:15 #24
Цитата Сообщение от nexen Посмотреть сообщение
Так и не решен вопрос о том, почему считывание из двоичного файла при SetPixel создает такие фокусы с флагом
Да чего там решать? Сказали уже, из-за многократного вызова srand() это. Функция srand() задаёт начальное состояние генератора псевдослучайных чисел. Инициализация производится от текущего времени, а время меняется дискретно, один раз за несколько (десятков) миллисекунд. Так что для расположенных рядом пикселей генератор выдаёт одно и то же число, так как состояние генератора постоянно восстанавливается.
Функция srand() должна вызываться только один раз, где-нибудь в самом начале программы.
1
11.08.2012, 10:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.08.2012, 10:15
Привет! Вот еще темы с ответами:

Данные о ценах в М магазинах для N видов товара хранятся в виде двумерного массива. Сформировать таблицу - C++
вот код,но выскакивает ошибка Run-Time Check Failure #3 - The variable 'i' is being used without being initialized. #include...

Как правильно посмотреть, что находится в массиве пикселей в понятном виде? - C++
Есть камера, с которой в комплекте идет библиотека и её описание с примерами. В одном примере указано: const char* p_buf =...

Ввести элементы двумерного массива с клавы С++.Нужно вывести его на экран в виде таблицы, в конце каждой строки надо вывести самый большой элемент - C++
Вот мой код : #include <iostream> #include <Windows.h> using namespace std; using std::cout; using std::cin; int...

Функции двумерного массива. Транспонировать матрицу через ввод вывод функции двумерного массива. - C++
Транспонировать матрицу через ввод вывод функции двумерного массива.Сначала вывести ее,а потом провести транспонирование.


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

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Опции темы

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