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

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

Войти
Регистрация
Восстановить пароль
 
slavapavlovsk
0 / 0 / 0
Регистрация: 16.05.2012
Сообщений: 3
#1

как изображения конвертировать в текстовый файл - C++

27.06.2013, 15:17. Просмотров 553. Ответов 8
Метки нет (Все метки)

здравствуйте...

Я вообще не программист, даже близко не стаю, вот поэтому прошу помощи у знающих людей...

Расскажу для чего это, что бы понять, чем я занимаюсь вообще:

Все наверно знают, что такое ЧПУ, так у меня есть маленький прототип этого аппарата, собранный из кусков старого принтера...

А в голове присоединен двух ваттный лазер...

вот, чтобы все эта работала, мне нужен массив, например: 1 строка 1 столбик обработать 2 сек., 1 строка 2 столбик пять сек. и так далее....

Вот поэтому мне нужна прога, чтобы конвертировать изображение в массив...

всперва надо сжать изображение до размеров ммм ну скажем 400х300 пик.
, потом надо применить инструмент серый оттенок, что-бы составляющие RGB были одинаковые
...

и наконец вывести все это в txt формат...


на какой среде мне писать все это?
вобщем укажите дорогу
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.06.2013, 15:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос как изображения конвертировать в текстовый файл (C++):

Текстовый файл UTF-8 сохранить как текстовый файл ANSI - C++
Есть текстовый файл в UTF-8 Нужно рядом сохранить его же, но в ANSI Как сделать это средствами c++? Среда Visual Studio 2010 ...

Создать текстовый файл, содержащий изображения чисел, расположенные в два столбц - C++
Текст задачи Даны два файла целых чисел одного размера с именами Name1 и Name2. Создать текстовый файл с именем NameT, содержащий...

Как конвертировать файл в base64? - C++
Подскажите, пожалуйста, как конвертировать файл в кодировку base64 или ссылку киньте.

Дан текстовый файл, содержащий целые числа. Определить в каждой четной строке максимальное число и записать результаты в новый текстовый файл - C++
Дан текстовый файл, содержащий целые числа. Определить в каждой четной строке максимальное число и записать результаты в новый текстовый...

Дано число k (< 10) и текстовый файл, содержащий более k строк. Создать новый текстовый файл, содержащий k последних строк исходного файла - C++
Дано число k (&lt; 10) и текстовый файл, содержащий более k строк. Создать новый текстовый файл, содержащий k последних строк исходного...

Как открыть текстовый файл - C++
С помощью OpenFileDialog получаю имя файла, как дальше его открыть? Свойство FileName имеет тип String^, а то как я пытаюсь (ifstream)...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
gazlan
3131 / 1906 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
27.06.2013, 17:55 #2
Цитата Сообщение от slavapavlovsk Посмотреть сообщение
сперва надо сжать изображение до размеров ммм ну скажем 400х300 пик., потом надо применить инструмент серый оттенок, что-бы составляющие RGB были одинаковые
В любом графическом редакторе. IrfanView, например.

и, наконец, вывести все это в txt формат
это - это что? Уровень серого?

Я бы конвертировал в .BMP без компресии и отрезал заголовок. Оставшееся будет набором строк в обратном порядке.

С примерами кода:
BMP
Описание формата BMP
1
slavapavlovsk
0 / 0 / 0
Регистрация: 16.05.2012
Сообщений: 3
28.06.2013, 02:32  [ТС] #3
Цитата Сообщение от gazlan Посмотреть сообщение


это - это что? Уровень серого?

Я бы конвертировал в .BMP без компресии и отрезал заголовок. Оставшееся будет набором строк в обратном порядке.

С примерами кода:
BMP
Описание формата BMP


да, мне нужен только уровень серого...

Потому что мне нужна черно-белый рисунок))
0
abit
264 / 262 / 33
Регистрация: 03.02.2013
Сообщений: 730
28.06.2013, 02:47 #4
Цитата Сообщение от gazlan Посмотреть сообщение
Я бы конвертировал в .BMP без компресии и отрезал заголовок. Оставшееся будет набором строк в обратном порядке
а я бы забил на эту идею и ирфанвью вместе взятый
а взял бы RIP-процессор (raster image processor)
например из ghostscript
у него в параметрах можно задать и resize до нужной картинки и graymap и большую кучу растровых форматов на вывод
и даже не надо никаких программ открывать - всё можно сделать одной операцией в консоль, например через system или ручками

а то что автору нужно - называется формат Portable anymap, а точнее ему нужен PGM, который тоже поддерживается в ghostscipt
0
gazlan
3131 / 1906 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
28.06.2013, 03:38 #5
Цитата Сообщение от abit Посмотреть сообщение
точнее ему нужен PGM
Кроме порядка строк, это чем-то отличается от того, что предложено выше?
0
abit
264 / 262 / 33
Регистрация: 03.02.2013
Сообщений: 730
28.06.2013, 09:41 #6
Цитата Сообщение от gazlan Посмотреть сообщение
Кроме порядка строк, это чем-то отличается от того, что предложено выше?
PGM то? да, у него есть режимы P1-P3 которые позволяют сразу создать аля-txt формат, а не бинарный поток
кстати в некоторых BMP к тому же допускает RLE и Хафман, не знаю чего там ирфанвью накодирует
зачем автору со всем этим возиться, если сразу можно получить текстовую таблицу в graymap 400x300 одной командой
0
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,529
Завершенные тесты: 1
28.06.2013, 11:26 #7
Цитата Сообщение от abit Посмотреть сообщение
а взял бы RIP-процессор (raster image processor)
Бытует мнение, что ТС уже собрал железяку и хочет именно на ней замутить какое-то неведомое действие (выжигание?).

Цитата Сообщение от slavapavlovsk Посмотреть сообщение
например: 1 строка 1 столбик обработать 2 сек., 1 строка 2 столбик пять сек. и так далее....
Как я понял вы хотите, чтобы лазер вашего франкенштейновского принтера в установился в позицию тождественную первой ячейке массива, поработал там некоторое время, затем сместился в следующую ячейку, там поработал и далее так попиксельно до конца массива? Где при этом индексы текущей строки и столбца массива передавать на двигатели головки, а интенсивность оттенка серого в данной ячейке являлась бы временем работы лазера в этой ячейке.

Цитата Сообщение от slavapavlovsk Посмотреть сообщение
на какой среде мне писать все это?
А это смотря как у вас реализовано взаимодействие с принтером.
0
abit
264 / 262 / 33
Регистрация: 03.02.2013
Сообщений: 730
28.06.2013, 12:05 #8
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Бытует мнение, что ТС уже собрал железяку и хочет именно на ней замутить какое-то неведомое действие
я говорил о программном RIP-процессоре, вовсе не надо специальных железок, к тому же ghostscript можно собрать под много платформ
чё он там задумал, представления не имею, хотя 7 лет работаю в области станкостроения с УЧПУ и делал, например, литографическую установку для получения 1 мкм дорожек на фотошаблонах, ghostscript под linux чудесно справился с выдачей 10Гигабайтных сырых потоков на лазер с качающемся зеркалом
а как там быстро динамически можно изменять интенсивность лазера - не представляю, обычно там либо есть сигнал (включен лазер) либо нет а время экспозиции весьма условна, там сильная нелинейность от времени
0
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,529
Завершенные тесты: 1
28.06.2013, 12:20 #9
Цитата Сообщение от abit Посмотреть сообщение
7 лет работаю в области станкостроения с УЧПУ и делал, например, литографическую установку для получения 1 мкм дорожек на фотошаблонах, ghostscript под linux чудесно справился с выдачей 10Гигабайтных сырых потоков на лазер с качающемся зеркалом
Вот используя свой опыт поясните пожалуйста ТС как ему следует поступить, учитывая, что в его распоряжении имеется только то оборудование, которое он описал. С чего начать, на чем писать, какие подводные камни его ожидают.

Цитата Сообщение от abit Посмотреть сообщение
как там быстро динамически можно изменять интенсивность лазера - не представляю, обычно там либо есть сигнал (включен лазер) либо нет
Именно этим, временем включения лазера, он и хочет отображать интенсивность пикселя. То есть, к примеру, если в текущем элементе массива расположилось цифра 3, то лазер будет работать три секунды. А если в массиве цифра 9, то соответственно девять секунд. В итоге получится, что место, выжигаемое три секунды, будет светлее то, которое выжигалось девять.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.06.2013, 12:20
Привет! Вот еще темы с ответами:

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

Как из С++ передать данные в текстовый файл? и как читать текстовые файлы в С++? - C++
Задача такая: у меня есть текстовый файл, в котором из матлаба передано некоторое число N. как теперь это число прочитать? потом...

Как можно считать файл *.pas или *.cpp как текстовый ? - C++
ifstream abc (&quot;*.pas&quot;,ios::text); не работает, ибо у ios нет параметра text

Бинарный файл, как сконвертировать в текстовый - C++
Здравствуйте, кто работал с бинарными файлами , не nодскажете какой нибудь гайд nо работе с ними или как можно конвертировать их в...


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

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

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