Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/55: Рейтинг темы: голосов - 55, средняя оценка - 4.71
 Аватар для beta-particle
4 / 4 / 1
Регистрация: 07.01.2013
Сообщений: 103

считывание изображения

03.10.2013, 23:45. Показов 10484. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, форумчане! У меня имеется растровое изображение размером 50x50 пикселей. Подскажите пожалуйста, как считывать с него пиксели в некий двумерный массив?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.10.2013, 23:45
Ответы с готовыми решениями:

Заменить считывание с клавиатуры на считывание из файла
Помогите пожалуйста, ни разу не работал со считыванием из файла поэтому не понимаю как и что делать. Почитал в интернете, попробовал, не...

Считывание изображения из бд Access
Всем привет! Сегодня целый день просидел в поисках ответа на вопрос как считать изображение из бд но к сожалению так нечего и не нашел.

Считывание изображения в string
Подскажите, как правильно считать изображение .jpg в string?

8
Антикодер
Эксперт функциональных языков программирования
1888 / 870 / 48
Регистрация: 15.09.2012
Сообщений: 3,088
04.10.2013, 00:05
надо глянуть формат файла, как там хранятся данные. и побайтово считывать.(то есть файл можно открыть в двоичном режиме)
например первые два байт говорят нам о том, что это BMP, далее (например) байты могут идти поочередно по три байта, типа как пиксель 3 байта R G B, далее опять пиксел 3 байта R G B и так далее. Более подробно в вики
BMP_file_format (примеры в конце)
2
 Аватар для beta-particle
4 / 4 / 1
Регистрация: 07.01.2013
Сообщений: 103
04.10.2013, 00:07  [ТС]
XRuZzz, формат файла .png
0
 Аватар для HedgehogLu
147 / 82 / 10
Регистрация: 04.09.2013
Сообщений: 261
04.10.2013, 00:10
Метод в лоб. Знать формат файла и согласно формат строить массив.
Либо использовать функции АPI

Добавлено через 1 минуту
правда через апи считывал тока под винду. и тока бмп
0
Антикодер
Эксперт функциональных языков программирования
1888 / 870 / 48
Регистрация: 15.09.2012
Сообщений: 3,088
04.10.2013, 00:11
Portable_Network_Graphics странно да? опять в вики всё написано

там ещё говориться что для работы с png нужно использовать библиотеку libpng если не хочется всё самому ручками писать.
0
 Аватар для beta-particle
4 / 4 / 1
Регистрация: 07.01.2013
Сообщений: 103
04.10.2013, 00:19  [ТС]
XRuZzz, а если самому писать, то придется декодировать еще?
0
Антикодер
Эксперт функциональных языков программирования
1888 / 870 / 48
Регистрация: 15.09.2012
Сообщений: 3,088
04.10.2013, 09:38
Цитата Сообщение от beta-particle Посмотреть сообщение
XRuZzz, а если самому писать, то придется декодировать еще?
а смысл? я открываю доку на libpng и сразу вижу там.
This file describes how to use and modify the PNG reference library (known as libpng)
for your own use. There are five sections to this file: introduction, structures, reading,
writing, and modification and configuration notes for various special platforms. In
addition to this file, example.c is a good starting point for using the library, as it is
heavily commented and should include everything most people will need. We assume
that libpng is already installed; see the INSTALL file for instructions on how to install
libpng.
For examples of libpng usage, see the files ”example.c”, ”pngtest.c”, and the files
in the ”contrib” directory, all of which are included in the libpng distribution
вам нужно скачать библиотеку и глянуть, как использовать библиотеку.

Если формат предполагает сжатие то нужно декодировать. А библиотека включает в себя такой декодировщик

кстати ссылка на доку libpng
1
 Аватар для beta-particle
4 / 4 / 1
Регистрация: 07.01.2013
Сообщений: 103
04.10.2013, 23:34  [ТС]
XRuZzz, да, спасибо, я-таки удосужился скачать эту библиотеку. Сейчас роюсь в ней, разбираюсь..

Добавлено через 6 часов 7 минут
XRuZzz,
C++
1
2
3
4
5
6
7
8
9
10
11
FILE *fp = fopen(file_name, "rb");
if (!fp)
{
return (ERROR);
}
fread(header, 1, number, fp);
is_png = !png_sig_cmp(header, 0, number);
if (!is_png)
{
return (NOT_PNG);
}
Самое странное то, что компилятор ругается на "error", говоря, что идентификатор не определен. Хотя далее используется та же конструкция типа return(error). Порыскал, в мануале, ничего про это не написано. Может быть проблема с библиотекой, как вы думаете?
Ах да, еще в example.c тоже ничего не нашел.
0
Антикодер
Эксперт функциональных языков программирования
1888 / 870 / 48
Регистрация: 15.09.2012
Сообщений: 3,088
05.10.2013, 10:19
ну если в header-ах нет этих констант то можно добавить
C++
1
2
3
4
5
enum
{
   ERROR,
   NOT_PNG
}
Желательно сразу создавать нормальные классы. Вместо fopen в C++ принято использовать fstream.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.10.2013, 10:19
Помогаю со студенческими работами здесь

Поиск изображения на картинке и считывание текста
Здравствуйте. Получаю динамичную картинку игры, которая каждый раз обновляется и заносится в Bitmap. На экране игры периодически...

Отрисовка изображения поверх канвы (изображения) и вращение изображения
Здравствуйте. Столкнулся с 2умя проблемами при работе с изображениями средствами C++ Builder. Хочу сделать одну интересную штуку, но...

Как добиться качественного рисования изображения поверх изображения picturebox?
есть код: PictureBox p = (PictureBox)sender; p.SizeMode = PictureBoxSizeMode.Normal; ...

Проверить формат изображения, разрешение по ширине и переименовать файл изображения
Подскажите, пожалуйста, какой-нибудь скриптик для решения данной задачи: имеется форма из нескольких текстовых полей и 1 поля загрузки...

Как убрать разводы фонового изображения и повысить качество изображения ?
Не знаю как описать проблему, поэтому просто выкладываю скрин. Установил офф драйвер видеокарты с офф сайта производителя. p.s....


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru