Почему изображения представлены байтовым массивом? - PullRequest
1 голос
/ 02 января 2011

Я читал блог Скотта Гатри и столкнулся с образцом. Вы можете найти его в Здесь

Используется байтовый массив для представления изображения в этом примере. Я понятия не имею, почему он представлен байтовым массивом. Я также помню, что некоторые файлы также обрабатываются как байтовый массив в .NET Framework.

Может кто-нибудь объяснить мне, почему байтовый массив вместо строки или даже класс, содержащий изображение?

Ответы [ 3 ]

5 голосов
/ 02 января 2011

Изображения представляют собой двоичные данные - это легко представить в виде байтовых массивов.

Изображение в образце сохраняется в базе данных как BLOB, а не как строка или местоположение, то есть это двоичные данные.

3 голосов
/ 02 января 2011

Коллекция байтов - это самый простой способ представить файл изображения в виде данных. Строка не подходит, так как содержит коды символов, а файл изображения не состоит из символов. Специального класса для хранения данных файла изображения не существует, так как байтовый массив отлично подходит для этого.

Любой файл может рассматриваться как набор байтов, поэтому байтовый массив является результатом чтения файла в виде двоичных данных. Файл также может быть декодирован как определенный формат, например текстовый файл, который приводит к строке, или формат сжатого изображения (JPEG, GIF, PNG и т. Д.), Который приводит к объекту Bitmap, содержащему распакованное изображение.

1 голос
/ 02 января 2011

Один обрабатывает растровое изображение как массив значений RGB. Опасайтесь каждого пикселя, например, каждое значение R, G и B кодируется одним байтом. Вы также можете иметь четвертое значение - прозрачность.

Играя с индексом цвета / прозрачности, координатой x пикселя и шириной изображения для получения пикселей по координате y ... таким образом, можно получить быстрый доступ ко всему изображению по дешевой цене при некотором умножении и оператор массива [] вызов.

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

Это может объяснить, что изображения по-прежнему обрабатываются массивами байтов.

...