C/C++
Как редактировать png-файлы?
Здравствуйте. Как открыть файл с изображением в формате png и дописав туда данные, не потерять целостности формата. Вы сталкивались с таким?
Прочитать в буфер, отредактировать, перезаписать исходный файл.
для работы с изображением на нижнем уровне нужно знать спецификацию... а дальше пиши код
IHDR
Это самый первый из обязательных чанков. Важно запомнить, что он должен располагаться в самом начале документа. Состоит из 13 байт:
4 байта — ширина изображения
4 байта — высота изображения
1 байт — глубина цвета (bit depth)
1 байт — цветовая модель (color type)
1 байт — метод сжатия
1 байт — метод фильтрации
1 байт — метод чересстрочной развертки
Наиболее важными для нас являются 9 и 10 байты. Давайте рассмотрим их чуть подробнее.
Color type
Используемая цветовая модель. Может принимать следующие значения:
010 (0002) — grayscale
Самое первое и самое простое значение. Каждый одноканальный пиксель кодируется 1, 2, 4, 8 или 16-битовым целым числом, которое выражает уровень яркости белого цвета.
210 (0102) — RGB/TrueColor
Три канала: красный, зеленый и синий. Каждый из каналов (для одного пикселя) кодируется 8 или 16-битным числом.
310 (0112) — индексированные значения
Содержит индексы каналов, которые находятся в чанке PLTE. Количество битов: 1, 2, 4 или 8.
410 (1002) — grayscale и альфа-канал: для каждого пикселя указывается прозрачность
2 канала: оттенок серого и альфа-канал. Каждый канал кодируется 8 или 16 битами.
610 (1102) — RGBA
То же самое, что и RGB, только с добавлением альфа-канала, который отвечает за степень прозрачности.
ну и далее 300 страниц патентованного текста
https://www.w3.org/TR/PNG/
IHDR
Это самый первый из обязательных чанков. Важно запомнить, что он должен располагаться в самом начале документа. Состоит из 13 байт:
4 байта — ширина изображения
4 байта — высота изображения
1 байт — глубина цвета (bit depth)
1 байт — цветовая модель (color type)
1 байт — метод сжатия
1 байт — метод фильтрации
1 байт — метод чересстрочной развертки
Наиболее важными для нас являются 9 и 10 байты. Давайте рассмотрим их чуть подробнее.
Color type
Используемая цветовая модель. Может принимать следующие значения:
010 (0002) — grayscale
Самое первое и самое простое значение. Каждый одноканальный пиксель кодируется 1, 2, 4, 8 или 16-битовым целым числом, которое выражает уровень яркости белого цвета.
210 (0102) — RGB/TrueColor
Три канала: красный, зеленый и синий. Каждый из каналов (для одного пикселя) кодируется 8 или 16-битным числом.
310 (0112) — индексированные значения
Содержит индексы каналов, которые находятся в чанке PLTE. Количество битов: 1, 2, 4 или 8.
410 (1002) — grayscale и альфа-канал: для каждого пикселя указывается прозрачность
2 канала: оттенок серого и альфа-канал. Каждый канал кодируется 8 или 16 битами.
610 (1102) — RGBA
То же самое, что и RGB, только с добавлением альфа-канала, который отвечает за степень прозрачности.
ну и далее 300 страниц патентованного текста
https://www.w3.org/TR/PNG/
молча надо редактировать
Какие данные?
Nowruzbek Shermetow
Не важно, просто открыв его в текстовом редакторе, что может произойти?
Похожие вопросы
- C++ Работа с файлами.
- Помогите решить задачку по теме работа с файлами C++
- Нужно найти в бинарном файле введенные пользователем данные.
- Как в C++ продолжить классы разные сгруппировано в файлах .h и .cpp, при этом не переопределяя классы эти?
- Работа с текстовым файлом. С++
- Модули. Коммуникация между двумя .c файлами.(Си)
- Input.txt и output.txt. Работа с текстовыми файлами C++.
- Си заголовочный файл, немного бы пролить свет
- Помогите написать код с файлами C++
- Помогите написать код с файлами C++