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

C++

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

Объединение нескольких png файлов в один png-файл - C++

07.07.2016, 21:11. Просмотров 1185. Ответов 1
Метки нет (Все метки)

В общем надо написать програмулину, которая объединяет несколько png файлов (ширина и высота одинаковы у изображений) в один png-файл.

Пример:
Есть пара png-картинок: , , , , ,
Итоговое изображение должно выглядеть примерно как-то так:



Видел примеры кусков как это реализовано на яве, но так как я в ней вообще не разбираюсь, то ничего в них не понял
Может кто предложить решение данной проблемы с помощью великого и могучего C++ ? Буду благодарен
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.07.2016, 21:11     Объединение нескольких png файлов в один png-файл
Посмотрите здесь:
C++ Builder Вращение TImage c PNG. Нужна переделка решения для BMP под PNG
C++ Объединение нескольких файлов в один
C++ Объединение данных из N файлов в один файл
Загрузка изображений png файлов в CListCtrl C++
Visual C++ Открытие файлов jpg, png и gif
Спрятать сообщение в png файл C++
Открыть и отобразить файл png на весь экран C++
Как из массива значений цветов создать обычный PNG файл? C++
C++ Как считывать дибайты в таких типах файлов как, .png, .txt, .bgi и так далее
PNG C++ Builder
png image C++ Builder

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nick Alte
Эксперт С++
1608 / 1000 / 118
Регистрация: 27.09.2009
Сообщений: 1,930
Завершенные тесты: 1
08.07.2016, 12:18     Объединение нескольких png файлов в один png-файл #2
Если на словах, то решение такое. Берём библиотеку чтения-записи PNG. Многие обратились бы к libpng, но я порекомендовал бы LodePNG: она простая, компилируется прямо в программу, поддерживает C++.
Читаем информацию о входных файлах (интересуют в первую очередь размеры картинок). На этом же этапе можно загрузить и содержимое картинок в формате RGBA. Это будут массивы строк изображения в порядке сверху вниз, в каждой строке пиксели слева направо, на каждый пиксель 4 байта. Определяем, каким образом картинки будут скомпонованы, исходя из их размеров. Если размеры известны заранее и они одинаковы, как в случае этих смайлов, задача упрощается. Создаём массив под выходное изображение в том же порядке (сверху вниз, слева направо, 4 байта на пиксель). Копируем туда строки из исходных изображений в нужном порядке. Если в результирующем изображении образуются пустые места, заполняем их, например, чёрным цветом с прозрачностью на максимуме. Записываем этот массив в PNG при помощи той же LodePNG.
Можно не писать всю программу сразу, а сначала поиграться с более простыми вещами: например, загрузить маленький простенький PNG и посмотреть, какие данные составляют изображение; сгенерировать простое изображение и записать в PNG; изменить загруженные данные, сохранить и посмотреть, что станет с картинкой.
Ответ Создать тему
Опции темы

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