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

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

Войти
Регистрация
Восстановить пароль
 
beta-particle
4 / 4 / 0
Регистрация: 07.01.2013
Сообщений: 103
#1

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

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

Доброго времени суток, форумчане! У меня имеется растровое изображение размером 50x50 пикселей. Подскажите пожалуйста, как считывать с него пиксели в некий двумерный массив?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2013, 23:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос считывание изображения (C++):

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

Считывание из файла - C++
Здравствуйте! Такой вопрос. Как можно считать информацию из файла следующим образом: в текстовом файле имеется 3 столбца, мне же нужно...

считывание текста - C++
помогите написать програму,которая считывает английский текс с файла и выводит на екран слова текста ,что начинаются и заканчиваются на...

Считывание с файла - C++
Добрый вечер! Считываю с файла посимвольно строку (навсякий случай вот так x = infile.get();) есть ли какая нибудь функция для...

Считывание из файла - C++
Дан файл с данными типа: Петров Роман 1989 04 15 5 4 3 5 естесственно, что данных больше.. Последние 4 цифры - это оценки.. Надо...

Считывание чисел - C++
Здравствуйте уважаемые форумчани. Помогите новичку в с++) Требуется считать числа с плавающей запятой в массив не зная их количества...

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

Добавлено через 1 минуту
правда через апи считывал тока под винду. и тока бмп
0
XRuZzz
Антикодер
680 / 582 / 29
Регистрация: 15.09.2012
Сообщений: 2,525
04.10.2013, 00:11 #5
Portable_Network_Graphics странно да? опять в вики всё написано

там ещё говориться что для работы с png нужно использовать библиотеку libpng если не хочется всё самому ручками писать.
0
beta-particle
4 / 4 / 0
Регистрация: 07.01.2013
Сообщений: 103
04.10.2013, 00:19  [ТС] #6
XRuZzz, а если самому писать, то придется декодировать еще?
0
XRuZzz
Антикодер
680 / 582 / 29
Регистрация: 15.09.2012
Сообщений: 2,525
04.10.2013, 09:38 #7
Цитата Сообщение от 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 / 0
Регистрация: 07.01.2013
Сообщений: 103
04.10.2013, 23:34  [ТС] #8
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
XRuZzz
Антикодер
680 / 582 / 29
Регистрация: 15.09.2012
Сообщений: 2,525
05.10.2013, 10:19 #9
ну если в header-ах нет этих констант то можно добавить
C++
1
2
3
4
5
enum
{
   ERROR,
   NOT_PNG
}
Желательно сразу создавать нормальные классы. Вместо fopen в C++ принято использовать fstream.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.10.2013, 10:19
Привет! Вот еще темы с ответами:

считывание строки. С++ - C++
Строка считывается посимвольно буквами. а надо, чтобы словами.. как это сделать? FILE *fp2 = fopen("V.txt", "rb"); //открываем файл...

Считывание из файла - C++
Помогите пожалуйста! Почему не работает? Нужно считать из файла в двумерный массив матрицу состоящую из 0 и 1. char **table; ...

Считывание из файла - C++
Есть к примеру некий файл d:\\file.txt Мне оттуда нужно считать переменные. Все нормально считывает fsсanf если в файле ТОЛЬКО цифры. ...

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


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

Или воспользуйтесь поиском по форуму:
9
Yandex
Объявления
05.10.2013, 10:19
Ответ Создать тему
Опции темы

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