#c #bitmap #jpeg
#c #растровое изображение #jpeg
Вопрос:
Я создаю программу для преобразования файла изображения (любого типа файла, который будет проще всего) в G-Code для использования в rep-rap с приложением pen plotter.
Мне интересно, хочу ли я обрабатывать изображение попиксельно и проверять такие вещи, как цвет пикселя, как я мог бы сделать это с помощью C ?
Мне бы очень хотелось знать, как я могу обрабатывать растровое изображение, пиксель за пикселем, чтобы проверить цвет пикселя.
Ответ №1:
Лучший способ — использовать библиотеку, например, Magick .
Когда вы загружаете изображение, вы можете получить доступ к его пикселям с помощью Blob
Ответ №2:
Вероятно, вы захотите использовать существующую библиотеку, которая была протестирована.
Но для развлечения / практики / и т. Д. Это было бы хорошим упражнением, и его было бы невозможно выполнить. Формат растрового изображения (относительно) прост по сравнению с другими форматами изображений. Страница Википедии содержит несколько тонн информации, включая некоторый код на C . Похоже, что после того, как вы прошли мимо информации заголовка, вы переходите к массиву пикселей, который не должен быть сложным для анализа.
Удачи.
Ответ №3:
Большинство форматов изображений состоят из заголовка и фактических необработанных данных изображения. Изображение bimpap ничем не отличается. Если вы не хотите использовать одну из существующих библиотек или если вам это запрещено, вам следует прочитать о bitmap format :
http://en.wikipedia.org/wiki/BMP_file_format
Как только вы поймете это, вы сможете создать соответствующие структуры / классы для хранения нужной вам информации из заголовка, такой как размер x, y, bpp и т.д. А также иметь указатель на необработанные данные изображения. Затем вы могли бы просто перебирать каждый пиксель и делать с ним все, что захотите 🙂
Ответ №4:
После того, как вы расшифруете файл изображения, я предлагаю вам поместить пиксели в матрицу для первого прохода. (Будущие версии могут использовать другие методы для доступа к пикселям).
Вы можете применить преобразования к пикселям с помощью матричного умножения. Вы также можете получить доступ к пикселям по отдельности с помощью индексации массива.
Найдите в Интернете и ТАК далее «введение в графику c «.