Как создать изображение в формате PNG, используя только блокнот?

8111
Code Whisperer

Как известно, все файлы являются просто контейнерами для данных. PNGфайлы не являются исключением из этого правила.

Файл PNG в основном ссылается на прямоугольную сетку цветных пикселей, поэтому не может быть такой сложной - конечно, не такой сложной, как видео или даже GIF.

У меня вопрос, как вы можете создать PNG из ничего, используя только блокнот? Затем этот файл можно открыть в браузере (например, Chrome), который распознает его как изображение.

Крошечный квадрат из четырех цветных пикселей может послужить отличным примером.

Использование Paint, чтобы попытаться увидеть, что происходит, дает интересные результаты.

Если Paint используется для создания PNG-файла, который выглядит следующим образом (он очень маленький, 2x2 пикселя, поэтому вам может потребоваться увеличить его)

enter image description here

Результирующий текстовый файл выглядит так:

IHDR ýÔšs sRGB ®Îé gAMA ±üa pHYs à ÃÇo¨d IDATWcè`ýÿ‰Ai£½Ç !ß=î_— IEND®B`‚

Но что происходит за кулисами?

Чтобы уточнить, вопрос не в том, как создать какой-либо файл PNG, а в том, как с помощью текста создать файл PNG, соответствующий определенным критериям, например, линии из 7 цветов радуги?

-6
Разве вы не можете просто открыть `Paint`>` File`> `Save As`>` PNG Picture`, а затем открыть его, чтобы увидеть пустой файл PNG с одним большим белым квадратом с приложениями. Просто нажмите `Win Key` один раз и наберите` Paint`, как только он появится, просто следуйте этим инструкциям. Pimp Juice IT 7 лет назад 0
Это очень хорошая идея, я дам ей шанс Code Whisperer 7 лет назад 0
Я добавил вывод из Paint, какие-либо идеи? Code Whisperer 7 лет назад 0
Посмотрите мои инструкции в моем ответе для пошагового и попробуйте это таким образом, а затем доложите о своих результатах ... что вы открываете файл PNG с приложением мудрым? Pimp Juice IT 7 лет назад 1
Пожалуйста, проверьте обновленный вопрос Code Whisperer 7 лет назад 0
Прочитайте [это] (https://en.wikipedia.org/wiki/Portable_Network_Graphics) jcbermu 7 лет назад 1
@jcbermu Очень полезно! Code Whisperer 7 лет назад 0
Может быть проще сделать BMP? png использует сжатие, поэтому оно может быть динамическим, как выглядит его файл? CausingUnderflowsEverywhere 7 лет назад 0
`Файл PNG в основном просто ссылается на прямоугольную сетку цветных пикселей, поэтому не может быть ничего сложного` png - это сжатый формат, а сжатые файлы никогда не бывают простыми phuclv 7 лет назад 2
Важно помнить о различиях между «тестовыми» и «двоичными» данными ... блокнот не может точно представлять или обрабатывать «двоичные» данные. Attie 7 лет назад 2
Используйте текстовый редактор, чтобы написать код PHP (или другой язык), который создает PNG, рисует на нем и т. Д. :) ivanivan 7 лет назад 0
Сначала вы широко провозглашаете это, ** «Файл PNG в основном относится к прямоугольной сетке цветных пикселей…» ** Затем вы заявляете это, ** «Чтобы уточнить, вопрос не в том, как создать любой файл PNG, а в том, как с помощью текста создать файл PNG, соответствующий определенным критериям, например, линии из 7 цветов радуги? »** Откуда вы взяли, что Notepad - текстовый редактор - может просто создавать двоичные данные? «Простой текст» - это намного больше, чем просто текст. Уровень упрощения здесь выше слов. Если вы думаете, что данные начинаются / заканчиваются простым текстом, у вас уже есть серьезная концептуальная проблема. JakeGould 7 лет назад 4

4 ответа на вопрос

6
DavidPostill

Как я могу создать PNG из ничего, используя только Блокнот?

С большим трудом. Было бы проще (но все же сложно) использовать шестнадцатеричный редактор.

По сути, вы должны создать файл в формате, который соответствует спецификации PNG .

Заголовок файла должен начинаться с подписи PNG, которая состоит из следующих десятичных значений:

137 80 78 71 13 10 26 10 

Десятичное число 10 (перевод строки) не может быть введено с помощью Блокнота (отсюда и предложение использования Hex Editor) для создания файла.

Вы также должны быть в состоянии рассчитать значения CRC и следовать множеству сложных правил заказа чанков.

Если вы прочитаете приведенную выше спецификацию, то увидите, насколько сложно создать PNG вручную.

Было бы намного проще использовать графический редактор, поддерживающий PNG.

Подпись PGP? Вы имеете в виду магический заголовок? Attie 7 лет назад 0
@ Атти Спасибо. Опечатка была исправлена. DavidPostill 7 лет назад 0
3
Pimp Juice IT

Просто откройте Paint, нажав enter image description hereодин раз клавишу Windows Flag, а затем начните вводить текст Paint; как только он появится в меню, просто нажмите на него, чтобы запустить приложение.

enter image description here

Теперь, когда открыт пустой экран рисования, вы можете создавать цветные квадраты и т. Д. Для своих нужд, а затем, когда вы будете готовы сохранить его в виде PNGфайла, просто перейдите на File | Save As | PNG Pictureа затем откройте его, чтобы увидеть изображение с приложением из сохраненного места.


Создайте квадрат 4x4 пикселей с 4 различными квадратами 1 пикселя

С Paint открыт и начинается с пустого изображения., ,

  1. На Homeвкладке нажмите Resizeопцию
  2. В Resize and Skewокне настройте Horizontal and VerticalпоPixes enter image description here
  3. С помощью этого инструмента вы можете изменить цвет на нужный вам, а затем заполнить квадрат 4x4 пикселей четырьмя различными цветными квадратами по 1 пикселю. Pencil enter image description hereenter image description here
  4. Теперь перейдите к File | Save As | PNG Pictureа затем откройте его, чтобы увидеть изображение с приложением из сохраненного места.
Спасибо за ответ на вопрос! Я обновил вопрос, пожалуйста, посмотрите обновленный текст. Code Whisperer 7 лет назад 0
К сожалению, это совсем не то, о чем просят, это не дает никакой информации для синтеза новых PNG. Code Whisperer 7 лет назад 0
0
Ulincsys

Вот как выглядит «текст» простого изображения в формате png

enter image description here

Эти данные взяты из простой картинки ниже.

enter image description here

Таким образом, вы не можете создать файл изображения PNG, просто поместив его «текст» в документ, если только текстовый редактор, который вы используете, не может обрабатывать специальные символы и не уничтожать метаданные (такие как notepad ++). Вы также не можете ввести «код» для файла png, так как его «синтаксис» слишком сложен для клавиатуры любого типа.

Вот что происходит, когда вы пытаетесь: enter image description here

Вы пробовали копировать и вставлять найденные «вещи», открывая картинку в блокноте и помещая ее в новый файл блокнота, сохраняя в формате png? CausingUnderflowsEverywhere 7 лет назад 0
Это не работает так. Как я уже сказал, блокнот не может обрабатывать кодировку символов, которая содержится в файле PNG. Вам придется использовать текстовый редактор, такой как Notepad ++ (https://notepad-plus-plus.org/), и даже тогда вы сможете ТОЛЬКО копировать / вставлять, потому что вы не можете «напечатать» файл изображения. Ulincsys 7 лет назад 0
Я добавил картинку для демонстрации. Ulincsys 7 лет назад 0
0
CausingUnderflowsEverywhere

На самом деле файлы - это не просто контейнеры для данных. Это поток двоичных данных. Каждый тип файла имеет разную планировку того, какие части двоичного потока являются какими данными.

Открытие изображения в блокноте приведет к тому, что двоичный поток будет интерпретироваться как символы на человеческом языке. Тем не менее, мы не создаем файлы, используя двоичные файлы, которые соответствуют тому, что мы определили как символы на определенном языке речи. Поэтому в блокноте вы можете или не можете использовать какую-либо полезную интерпретацию двоичного потока, чтобы иметь возможность добавлять и удалять данные, распознаваемые интерпретатором PNG.

Если вам действительно интересно, как создавать PNG-файлы из ничего, вы должны сделать это, используя числа (наиболее предпочтительно двоичные или шестнадцатеричные), используя программу шестнадцатеричного редактора, которая считывает двоичный поток с диска и отображает его в базе 16 для вы.

Пожалуйста, смотрите ответ DavidPostill

Если я неправильно использовал двоичный поток, и это фактически поток байтов, может кто-нибудь отредактировать мой вопрос CausingUnderflowsEverywhere 7 лет назад 0