187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
|
|
1 | |
Картинка в виде двумерного массива пикселей09.08.2012, 17:32. Показов 15424. Ответов 23
Метки нет (Все метки)
Можно ли, засунув картинку в проект, получить её массив пикселей? Есть ли для этого какая-либо функция?
Всё, что мне хочется, это взять картинку, формат которой предусматривает запись информации о пикселях последовательностями в 3 байта (без промежуточной информации) и засунуть туда лишний байт >:- E *хочу инфернальные картинки!!1* Добавлено через 3 часа 25 минут Есть идеи? ; (
0
|
09.08.2012, 17:32 | |
Ответы с готовыми решениями:
23
Подсчитать сумму строк двумерного массива и вывести в виде одномерного массива Представление двумерного массива размерами n*m в виде одномерного массива длиной n*m элементов Найти сумму элементов двумерного массива 3х3 по строкам и вывести ее в виде одномерного массива Запрашивать размеры двумерного массива, значения его элементов и выводит на экран массива в виде матрицы |
54 / 48 / 4
Регистрация: 02.08.2012
Сообщений: 127
|
||||||||||||||||
10.08.2012, 12:04 | 2 | |||||||||||||||
Какую именно картинку вы хотите загрузить? если простой битмап (формат .bmp), то нужно считать заголовок сначала, затем пиксели.
Формат битмапа:
Добавлено через 12 часов 26 минут У меня там опечка: вместо BMPformat должно быть BITMAPINFOHEADER.
1
|
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
|
|
10.08.2012, 12:11 [ТС] | 3 |
cossack5, да, спасибо, с этим я разобрался. Однако вот "инфернала" не вышло. Добавил лишний байт в картинку и ничего ;< я надеялся, что все байты и вся палитра полетит к чертям, но вышло так, что просто изображение стало более.. синим/красным/зеленым
0
|
54 / 48 / 4
Регистрация: 02.08.2012
Сообщений: 127
|
|
10.08.2012, 12:40 | 4 |
Попробуйте заюзать эти функции http://msdn.microsoft.com/en-u... s.85).aspx. С их помощью можно всячески уродовать изображения.
2
|
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
|
||||||
10.08.2012, 16:56 [ТС] | 5 | |||||
cossack5, спасибо конечно, но мне по сути нужно не изуродовать изображение, а сделать другое, с данными из первого. Думаю придется при получении массива пикселей поработать, а затем уже вывести на экран не через bmp, а через SetPixel
Добавлено через 3 часа 26 минут Вот что я сделал : 1) Считал по байтам bmp формат, пока не дошел до самой матрицы пикселей. 2) Считал матрицу и записал в отдельный двоичный файл // 3) Считал матрицу и вывел SetPixel'ем, чтобы убедиться, что в дв. файле теперь только матрица пикселей. 3) Вывел матрицу пикселей на экран, добавив в начало один лишний байт и удалив из конца один байт, на который я сместил всё это дело. PROFIT : <Ожидание> Chaos, Anarchy, Sodomy. <Реальность> То же самое изображение.. Возможно в углу есть испорченный один бит, но этого я не разглядел ВОПРОС : Как сделать ожидание реальностью? <Bonus> Сделал рандомизацию пикселей типа :
<Ожидание> Chaos из разноцветных пикселей <Реальность> ..Флаг.. Выводятся горизонтальные полосы в высоту, примерно, по 200 пикселей разных цветов. При этом эти цвета похожи (одного оттенка) : красный, оранжевый, желтый, светло-зеленый и т.д (плавный переход). Причем они сами повторяются через 4 полосы. Вот пример такого : Сам флаг при каждом новом запуске разных цветов :< p.s Если ставить breakpoint на эту функцию, то она действительно рандомит каждый пиксель. Числа разные
0
|
54 / 48 / 4
Регистрация: 02.08.2012
Сообщений: 127
|
|
10.08.2012, 17:06 | 6 |
а если srand вызывать с самом начале (проги)?
Добавлено через 3 минуты Можете показать код вывода точек/пикселей?
1
|
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
|
||||||
10.08.2012, 17:09 [ТС] | 7 | |||||
cossack5, да как об стенку горох ; (
Добавлено через 57 секунд
Добавлено через 36 секунд Такое "химичинье" проверено на выводе простого изображение, так что с ним все впорядке
0
|
54 / 48 / 4
Регистрация: 02.08.2012
Сообщений: 127
|
|
10.08.2012, 17:16 | 8 |
Как я понял, этот пример работает? а с RandRGB нет? так?
0
|
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
|
|
10.08.2012, 17:27 [ТС] | 9 |
Этот пример работает (выводит первоначальное изображение), а при RandRGB выводит "флаг". Помимо этого не работает смещение на байт для "хаоса". Вот ^^
Не по теме: p.s Передавай привет Юно
0
|
54 / 48 / 4
Регистрация: 02.08.2012
Сообщений: 127
|
||||||
10.08.2012, 17:35 | 10 | |||||
1
|
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
|
|
10.08.2012, 17:49 [ТС] | 11 |
cossack5, неа. Не вышло
0
|
54 / 48 / 4
Регистрация: 02.08.2012
Сообщений: 127
|
||||||
10.08.2012, 19:29 | 12 | |||||
а если сделать так, то все работает как надо:
1
|
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
|
||||||||||||||||
10.08.2012, 20:00 [ТС] | 13 | |||||||||||||||
cossack5, да, такое работает, но в чем же тогда проблема? О_о
Добавлено через 12 минут Опаньки. И правда. Если написать в моём варианте вместо :
Чем SetPixel'ю помешала fread и RandRGB, если они никак не влияют на rand()? Или влияют? Добавлено через 1 минуту Если перенести
0
|
6 / 6 / 0
Регистрация: 01.08.2012
Сообщений: 70
|
|
10.08.2012, 20:04 | 14 |
Возможно, я немного не в тему, но всёже: а почему бы не использовать какую-нибудь библиотеку для работы с картинками? Ведь одними bmp сыт не будешь, есть ещё много хороших форматов - те же jpg и png. Хотя наверно вы это делаете для общего развития.
1
|
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
|
|
10.08.2012, 20:06 [ТС] | 15 |
vampir64, замечание, конечно, дельное, но не к месту. Ибо я делаю просто потому, что хочу увидеть анархию пикселей : > но пока что у меня лишь анархия в мозге из-за "нехотенияработатьsetpixelсовсемникак"
А bmp я взял лишь потому, что мне предложили, да и он распарсивается просто, в отличии от jpeg'а
0
|
6 / 6 / 0
Регистрация: 01.08.2012
Сообщений: 70
|
|
10.08.2012, 20:11 | 16 |
Что такое анархия пикселей? Вы хотите исковеркать формат файла и получить на выходе что-то неудобоваримое, которое скорее всего просмотровщик картинок даже не переварит? Я сильно сомневаюсь, что результат будет интересен.
0
|
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
|
|
10.08.2012, 20:21 [ТС] | 17 |
vampir64, как я уже писал выше, мне не нужно его просматривать "просмотрщиком". Достаточно вывести попиксельно.
0
|
54 / 48 / 4
Регистрация: 02.08.2012
Сообщений: 127
|
|
10.08.2012, 20:41 | 18 |
0
|
6 / 6 / 0
Регистрация: 01.08.2012
Сообщений: 70
|
|
10.08.2012, 20:55 | 19 |
cossack5, я не понимаю затею. Если уж играть с файлами по правилам, то не лучше ли обеспечить себе комфорт, используя готовое апи? Я бы, например, для такого рода экспериментов и вовсе использовал скриптовый язык python, на котором просто кодить и легко ставить эксперименты, под который есть куча библиотек, как правило очень простых и удобных в использовании. Хотя если вы просто развлекаетесь самодельным парсингом bmp-шек, то другое дело
1
|
54 / 48 / 4
Регистрация: 02.08.2012
Сообщений: 127
|
|
10.08.2012, 21:01 | 20 |
Я для этих целей использую GFL SDK - самая мощная библиотека для чтения изображений. Но она сравнительно немаленькая, и не везде хочется возиться с подобными, если нужен только .bmp.
1
|
10.08.2012, 21:01 | |
10.08.2012, 21:01 | |
Помогаю со студенческими работами здесь
20
Текстбоксы в виде двумерного массива Представление одномерного массива в виде двумерного Автогенерация лабиринта в виде двумерного массива Вывод двумерного массива в виде матрицы в консоле Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |