
Как мы знаем, все файлы — это просто контейнеры для данных. PNG
Файлы не являются исключением из этого правила.
Файл PNG по сути представляет собой прямоугольную сетку цветных пикселей, поэтому он не может быть таким уж сложным — уж точно не таким сложным, как видео или даже GIF.
Мой вопрос: как можно создать PNG из ничего, используя только блокнот? Затем этот файл можно открыть в браузере (например, Chrome), который распознает его как изображение.
Отличным примером может служить небольшой квадрат из четырех цветных пикселей.
Использование Paint для попытки увидеть, что происходит, дает интересные результаты.
Если использовать Paint для создания PNG-файла, который выглядит следующим образом (он очень маленький, 2x2 пикселя, поэтому вам может потребоваться увеличить масштаб)
Полученный текстовый файл выглядит следующим образом:
IHDR ýÔšs sRGB ®Îé gAMA ±üa pHYs à ÃÇo¨d IDATWcè`ýÿ‰Ai£½Ç !ß=î_— IEND®B`‚
Но что происходит за кулисами?
Для ясности, вопрос не в том, как создать любой PNG-файл, а в том, как, используя текст, создать PNG-файл, соответствующий определенным критериям, например, строку из 7 цветов радуги?
решение1
Как создать PNG из ничего, используя только Блокнот?
С большим трудом. Было бы проще (но все равно сложно) использовать шестнадцатеричный редактор.
По сути, вам нужно создать файл в формате, который соответствуетспецификация PNG.
Заголовок файла должен начинаться с сигнатуры PNG, которая состоит из следующих десятичных значений:
137 80 78 71 13 10 26 10
Десятичное число 10 (перевод строки) невозможно ввести с помощью Блокнота (поэтому предлагается использовать шестнадцатеричный редактор) для создания файла.
Вам также необходимо уметь рассчитывать значения CRC и следовать множеству сложных правил упорядочивания фрагментов.
Если вы прочитаете спецификацию, ссылку на которую вы привели выше, вы поймете, насколько сложно создать PNG вручную.
Гораздо проще было бы использовать графический редактор, поддерживающий PNG.
решение2
Вот как выглядит «текст» простого изображения png
Эти данные взяты из простой картинки ниже.
Таким образом, вы не можете создать файл изображения PNG, просто поместив его "текст" в документ, если только используемый вами текстовый редактор не может обрабатывать специальные символы и не уничтожать метаданные (например, notepad++). Вы также не можете набрать "код" для файла png, поскольку его "синтаксис" слишком сложен для клавиатуры любого типа.
решение3
Просто откройсяКрасканажав клавишу флага Windowsодин раз, а затем начните вводить текст
Paint
; как только он появится в меню, просто нажмите на него, чтобы запустить приложение.
Теперь, открыв пустой экран рисования, вы можете создавать закрашенные квадраты и т. д. по своему усмотрению, а затем, когда вы будете готовы сохранить его как файл, PNG
просто перейдите в File
| Save As
| PNG Picture
а затем откройте его, чтобы увидеть изображение с приложением из сохраненного местоположения.
Создайте квадрат 4x4 пикселя с 4 разными квадратами по 1 пикселю.
СКраскаоткрылся и начал с пустого изображения. . .
- На
Home
вкладке нажмитеResize
опцию- в
Resize and Skew
окно отрегулируйтеHorizontal and Vertical
кPixes
- С
Pencil
С помощью этого инструмента вы можете изменить цвет на желаемый, а затем заполнить квадрат 4x4 пикселя четырьмя разноцветными квадратами по 1 пикселю.
- Теперь иди к
File
|Save As
|PNG Picture
а затем откройте его, чтобы увидеть изображение с приложением из сохраненного местоположения.
решение4
На самом деле файлы — это не просто контейнеры для данных. Они представляют собой поток двоичных данных. Каждый тип файла имеет разную структуру того, какие части двоичного потока являются данными.
Открытие изображения в блокноте приведет к тому, что двоичный поток будет интерпретироваться как символы человеческого языка. Однако мы не создаем файлы с использованием двоичного кода, соответствующего тому, что мы определили как символы определенного языка речи. Поэтому блокнот может или не может вам предоставить какую-либо полезную интерпретацию двоичного потока, чтобы иметь возможность добавлять и удалять данные, распознаваемые интерпретатором PNG.
Если вам действительно интересно, как создать PNG-файлы из ничего, вам придется сделать это с помощью чисел (предпочтительнее двоичных или шестнадцатеричных), используя программу-редактор шестнадцатеричных чисел, которая считывает двоичный поток с диска и отображает его в шестнадцатеричном формате.
Пожалуйста, посмотриОтвет Дэвида Постилла