1: Что происходит в программе, когда она представлена с файлом изображения?
Обычно запрашивается операционная система для декодирования изображения.Операционная система, вероятно, будет иметь ряд библиотек, которые она использует, так же как LibTIFF , libpng , libjpeg и т. Д.
Используяоперационная система вместо того, чтобы напрямую пытаться читать файлы изображений, приложения получают преимущества ОС, используя самые последние версии библиотек.Поэтому, если вы пишете приложение сегодня и не обновляете его через 5 лет, возможно, оно сможет прочитать более новую версию файла определенного формата, если для этого использует ОС.
например, он ищет графическую библиотеку с таким расширением файла, как его имя (и где?), А затем читает правила для преобразования этого в список значений цвета?
Обычно существует интерфейс более высокого уровня, который предоставляет ОС.Например, в macOS есть CoreGraphics и ImageIO .
, или он преобразует его непосредственно в машинный код и сохраняет его в памяти?
В файлах изображений нет машинного кода.(Ну, обычно нет. Я уверен, что кто-то где-то это сделал.) Файлы изображений хранят только данные, как правило, простым способом.Библиотека может распаковывать и / или декодировать данные, и в этот момент у вас есть что-то, что, вероятно, RGBA (или вариация типа ARGB или BGRA), или YCbCr, или что-то подобное.ОС может выполнить дальнейшие преобразования, чтобы получить точный тип данных, запрошенный вызывающей стороной.
2: Если бы я написал одну из этих графических библиотек, как бы мне было убедиться, что программы могут ее найти?
Обычно есть способ зарегистрировать ваш кодек изображения в операционной системе, чтобы он был доступен для программ.Это зависит от ОС.
Обычно (с учетом примера редактора изображений, игрового движка, предварительного просмотра изображений Windows и т. Д.) Программа автоматически просматривает новые библиотеки изображений или мне нужно изменитьпрограмма, чтобы знать, что она существует?(этот ответ даст мне знать, сколько будет хлопот)
Это зависит от программы.Некоторые разрешают только определенные форматы, некоторые будут использовать любой формат, поддерживаемый ОС.Некоторые дополнительно добавляют поддержку других форматов, которые обычно не поддерживаются ОС.Фотошоп, например, позволяет разработчикам создавать собственные импортеры и экспортеры изображений.Если у пользователя установлен ваш импортер / экспортер, он получает функциональность, в противном случае он не получает (если ОС не поддерживает его).
3: существует ли какой-либо стандартный формат данных, который хранится во всех графических приложенияхДанные о цвете изображения в?
Существует несколько распространенных - .png, .jpg и .tif - все они широко поддерживаются.Даже файлы .psd (Photoshop) обрабатываются во многих случаях, хотя не все функции работают во всех случаях.