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

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

03.10.2013, 23:45. Показов 10540. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru