Класс

matlab.net.http. iO . ImageProvider

Пакет: matlab.net.http. iO
Суперклассы: matlab.net.http. iO . ContentProvider

ContentProvider, чтобы отправить данные изображения MATLAB

Описание

Используйте объект ImageProvider преобразовать и отправить данные изображения MATLAB® в RequestMessage HTTP. Этот провайдер преобразовывает данные в один из стандартных типов, как задано Типом контента запроса или свойств в этом объекте. Этот провайдер также преобразовывает файл изображения в другой формат.

По умолчанию, если вы задаете Тип контента изображений в RequestMessage, например "image/jpeg" и RequestMessage.Body является MessageBody, содержащий ваши данные изображения, затем MATLAB принимает, что MessageBody.Data является данными изображения и пытается преобразовать их соответственно. Чтобы управлять, как ваши данные преобразованы, используйте ImageProvider в RequestMessage.Body.

Если RequestMessage не содержит поле заголовка Типа контента, то этот провайдер добавляет соответствующий Тип контента изображений к заголовку. В противном случае поле заголовка не изменяется, и преобразование сделано, как задано в свойствах этого объекта, даже если его значение противоречиво с полем Content-Type.

Конструкция

provider = ImageProvider(data,arg1,...,argN) создает провайдера, который преобразовывает изображение MATLAB data в формат, заданный arg1,...,argN, устанавливая Свойство данных на data и свойство Arguments к arg1,...,argN.

provider = ImageProvider(filename,arg1,...,argN) получает данные изображения из файла filename и отправляет его в формате, заданном в arg1,...,argN или поле Content-Type, устанавливая свойство Filename на filename.

В то время как этот провайдер может преобразовать файл в одном формате к данным в другом формате, это не разработано, чтобы отправить файл изображения, как. Чтобы отправить файл, не изменяя его тип, используйте FileProvider.

Свойства

развернуть все

Это - значение, заданное в качестве аргумента Data конструктору, если таковые имеются, или данных, преобразованных от аргумента filename. Установите это значение к скаляру строки или вектору символа прежде, чем отправить сообщение, содержащее этого провайдера.

Если автор подкласса хочет установить это свойство, прежде чем MATLAB вызовет метод start, то установленный значение в методе complete. Если вы изменяете это свойство, то изменение вступает в силу со следующим вызовом start.

Атрибуты:

GetAccesspublic
SetAccesspublic

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

Авторы подкласса могут установить это свойство, прежде чем MATLAB вызовет start, например, в complete. Если вы изменяете эти значения, то изменения не вступают в силу до следующего вызова start.

Атрибуты:

DependenttRUE
GetAccesspublic
SetAccesspublic

Имя файла, содержащего данные изображения, заданные как строка. Это - значение, заданное в качестве аргумента filename конструктору, если таковые имеются. Это только для чтения.

Формат filename выведен от расширения файла, которое может отличаться от аргумента fmt в arg1,...,argN или Типа контента в сообщении. Этот синтаксис конструктора позволяет вам отправлять файл изображения в одном формате к серверу, который ожидает его в другом формате. Однако некоторые преобразования несовместимы. Например, вы не можете преобразовать файл RGB как JPEG к формату GIF.

Атрибуты:

GetAccesspublic
SetAccessprivate

Установите MATLAB или Delegator

Запросите сообщение отправить, заданный как matlab.net.http.RequestMessage object.

Это свойство используется только авторами подкласса. RequestMessage.send и методы RequestMessage.complete устанавливают это свойство на RequestMessage, в Body которого этот провайдер был помещен, прежде, чем вызвать любые другие методы в этом провайдере, и прежде, чем добавить любые дополнительные поля заголовка или подтвердить сообщение. Провайдер может исследовать это сообщение, чтобы видеть то, что содержалось в исходном запросе.

Делегаты видят то же значение для этого свойства как delegator. ContentProviders должен знать, что, если они - делегаты, они не обязательно обеспечивают целое тело сообщения запроса, таким образом, они не должны принимать, что поля заголовка в этом Запросе являются подходящими для данных, которые они обеспечивают. Обычно, делегаты должны проигнорировать поля заголовка в этом запросе, относящемся к данным, таким как Тип контента.

Если провайдер хочет добавить какие-либо поля заголовка к этому сообщению или изменить существующие единицы, это должно сделать так в его методе complete путем добавления тех полей к свойству Header. Вызывающая сторона complete (RequestMessage или провайдер делегирования) определяет, что сделать с теми полями. RequestMessage.send и RequestMessage.complete всегда копируют эти поля в Header RequestMessage. Провайдер делегирования может скопировать поля в свое собственное свойство Header или вставить их в сообщение (как в случае MultipartProvider). Для получения дополнительной информации смотрите свойство Header.

Это свойство доступно только для чтения.

Атрибуты:

GetAccesspublic
SetAccessmatlab.net.http. RequestMessage

ContentProvider, который делегировал к этому провайдеру, заданному как объект matlab.net.http.io.ContentProvider.

Если ContentProvider делегирует ответственность за отправку всех или фрагмента данных сообщения к другому провайдеру, то это свойство идентифицирует провайдера делегирования делегату. Например, MultipartProvider делегирует части сообщения к другим провайдерам, таким образом, это вставляет указатель на себя в каждом делегате. В противном случае MyDelegator пуст. Метод delegateTo устанавливает это свойство в делегате.

Атрибуты:

GetAccessprotected
SetAccessprotected

Установите провайдером или MATLAB, считанным MATLAB

Поля заголовка сообщения или части, заданной как вектор одного или нескольких matlab.net.http.HeaderField objects.

Это свойство только используется авторами подкласса. MATLAB устанавливает это свойство прежде, чем вызвать метод complete провайдера. Для немногослойных сообщений MATLAB инициализирует это свойство к содержимому Request.Header минус любой matlab.net.http.field.GenericFields или поля с пустым знаком. ContentProvider использует это свойство добавить поля заголовка, которые описывают данные, которые будут отправлены или добавят параметры к полям заголовка уже в сообщении. В делегате к MultipartProvider MATLAB инициализирует это свойство к полям заголовка, которые провайдер делегирования намеревается вставить для части. Делегаты могут изменить или изменить эти поля.

По возврату из метода complete провайдера, если это не многослойное сообщение, то MATLAB читает это свойство и объединяет его содержимое в заголовок Request. Поля в этом Header с Names, которые уже не появляются в Request.Header, добавляются в конец Request.Header. Если поле в этом Header имеет Name, который эквивалентен один в Request.Header, и у обоих есть непустой Values, то:

  • Если тем в Request.Header является GenericField, то проигнорируйте тот в Header.

  • Если тем в Request.Header не является GenericField, то замените его на тот в Header.

Если один или оба из них имеет пустой Value, то поле удалено из Request.Header, и это не добавляется как часть нормального завершения сообщения.

Если это - делегат MultipartProvider, то целое содержимое этого Header используется в качестве заголовка части. Многослойные делегаты не должны принимать, что Request.Header содержит любые поля, имеющие отношение к их собственному Header. Провайдер может определить, является ли это многослойным делегатом путем проверки, является ли MyDelegator MultipartProvider, хотя этот тест вряд ли будет необходим.

MATLAB читает это свойство только по возврату из вызова метода complete провайдера. Изменения в этом массиве проигнорированы, если MATLAB вызывает start.

Авторы класса должны знать, что их подклассы могут добавить поля к этому Header (в их методе complete) прежде, чем вызвать complete в их суперклассе. Лучше сохранять такие поля а не добавлять поля с теми же именами. Однако добавление параметра к полю допустимо. Например, суперкласс может добавить параметр набора символов к существующему полю Content-Type, которое уже не имеет того.

Атрибуты:

GetAccesspublic
SetAccesspublic

Укажите, обеспечить ли разделенное на блоки кодирование передачи, заданное как булевская переменная. Это свойство представляет интерес только, чтобы разделить авторов на подклассы и применимо только к провайдерам, которые не являются многослойными делегатами. Подклассы устанавливают ForceChunked управлять, должно ли содержимое быть отправлено с помощью разделенного на блоки кодирования передачи. Если false (значение по умолчанию), MATLAB решает, отправить ли разделенное на блоки содержимое, на основе того, знает ли это длину содержимого в то время, когда сообщение готово быть отправленным:

  • Если MATLAB знает длину содержимого (который имеет место, если сообщение содержит поле Content-Length, или если метод expectedContentLength этого провайдера возвратил номер), то MATLAB решает, отправить ли разделенный на блоки или нет.

  • Если MATLAB не знает длины содержимого (никакое поле Content-Length в заголовке и expectedContentLength, возвращенном пустой), то MATLAB всегда отправляет разделенное на блоки сообщение.

Если ForceChunked является true, то MATLAB отправляет сообщение, разделенное на блоки независимо от того, знает ли это длину содержимого, если известная длина не меньше, чем размер фрагмента. Если этим свойством является true, то сообщение не должно содержать поле Content-Length, потому что HTTP не позволяет разделенному на блоки сообщению иметь поле Content-Length. Однако можно все еще возвратить ненулевое значение в методе expectedContentLength, если вы хотите, чтобы MATLAB проверил, что вы возвращаете ожидаемую длину данных.

Когда MATLAB принимает решение отправить разделенное на блоки сообщение, размер каждого фрагмента равен длине данных, возвращенных getData.

MATLAB читает это значение после вызова метода complete, прежде, чем вызвать start. Это не устанавливает это поле.

Атрибуты:

GetAccesspublic
SetAccesspublic

ContentProvider, к которому этот провайдер делегирует, заданный как объект matlab.net.http.io.ContentProvider. Это свойство собирается в провайдере вызова (delegator) методом delegateTo указать на текущего делегированного провайдера. Если нет никакой текущей делегации, то значение пусто.

Методы complete устанавливают это свойство опустеть.

GetAccessprotected
SetAccessprotected

Методы

завершенныйПолный HTTP-заголовок для ImageProvider
прерываемыйУкажите, является ли ImageProvider прерываемым
допускающий повторное использованиеУкажите, является ли ImageProvider допускающим повторное использование
запускЗапустите передачу данных с ImageProvider

Унаследованные методы

завершенныйПолный HTTP-заголовок для ContentProvider
delegateToДелегируйте к другому провайдеру
expectedContentLengthДлина содержимого ContentProvider
getDataСледующий буфер данных, который отправит в HTTP, запрашивает сообщение от ContentProvider
preferredBufferSizeПредпочтительный buffer size для ContentProvider
прерываемыйУкажите, является ли ContentProvider прерываемым
допускающий повторное использованиеУкажите, является ли ContentProvider допускающим повторное использование
showОтобразите информацию о ContentProvider
запускЗапустите передачу данных с ContentProvider
строкаПокажите ContentProvider как строку

Иерархия классов

Представленный в R2018a

Была ли эта тема полезной?