Класс

matlab.net.http. iO . ImageConsumer

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

Потребитель для данных изображения в полезных нагрузках HTTP

Описание

Этот потребитель читает данные изображения из сети и преобразовывает его в данные изображения MATLAB®. Это хранит результат в свойстве Body ResponseMessage, к которому это применяется. Заданный непосредственно как потребитель в RequestMessage.send, это обеспечивает ту же функциональность для типов содержимого изображения, которая обеспечивается методом send по умолчанию, когда никакой потребитель не задан, сохранив преобразованный образ, плюс возможная палитра и альфа-канал, в Body.Data, на основе Типа контента сообщения. Для получения дополнительной информации о преобразовании данных изображения в ответе см. описание для Типов контента image/* в Преобразовании типа данных HTTP.

Этот потребитель только принимает данные, для которых это может определить формат на основе заголовков в сообщении ответа или расширении имени файла в URI запроса (если таковые имеются). Можно заменить это поведение путем определения ожидаемого формата в свойстве Format.

Этот потребитель возвращает данные как изображение MATLAB в одном из форматов, описанных для возвращаемого значения функции imread. Чтобы хранить исходные данные в файле, не преобразовывая его, используйте FileConsumer.

Конструкция

consumer = ImageConsumer создает потребителя для изображений HTTP.

consumer = ImageConsumer(fmt) создает ImageConsumer с помощью заданного формата. Аргумент fmt является значением, приемлемым для imread, и заменяет любую спецификацию формата в заголовке сообщения. Этот конструктор устанавливает свойство Format на значение fmt.

consumer = ImageConsumer(___,arg1,...,argn) передает дополнительные аргументы, используемые imread, чтобы преобразовать данные ответа.

Входные параметры

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

Один или несколько входных параметров к функции imread, заданной как допустимые типы аргумента. Не задавайте аргументы filename или fmt.

Пример: 'PixelRegion', {[1 100], [4 500]}

Свойства

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

Данные изображения как требуется для функции imfinfo, заданной как структура. MATLAB устанавливает это свойство только после успешного преобразования. Поле Filename в этой структуре пусто.

Атрибуты:

GetAccesspublic
SetAccessprivate

Частичные данные изображения, заданные как uint16. Если преобразование перестало работать, или передача была прервана, то MATLAB устанавливает PartialData на полученные данные сырых данных, который является вектором uint8. PartialData не может содержать данные во время передачи или в успешных случаях.

Атрибуты:

GetAccesspublic
SetAccessprivate

Формат изображения, заданный как строка или вектор символа. Этот потребитель отклоняет сообщения, формат которых не является одним из заданных в столбце EXT функции imformats. Значение по умолчанию этого свойства пусто, который пытается вывести формат от поля Content-Type или расширения имени файла в поле Content-Disposition ответа или URI запроса. Если вы хотите обеспечить этого потребителя, чтобы обработать данные с помощью определенного формата, установите это свойство прежде, чем применить этого потребителя к методу RequestMessage.send.

Если сервер правильно не указывает на формат, установите это свойство на правильный формат.

Атрибуты:

GetAccesspublic
SetAccesspublic

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

Предложенный buffer size, заданный как uint64. MATLAB устанавливает AllocationLength на ожидаемый размер буферов данных, переданных putData. Фактический размер может быть меньшим или больше. Чтобы улучшить производительность, потребитель может использовать это значение, чтобы предварительно выделить пробел, чтобы обработать данные.

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

Атрибуты:

GetAccesspublic
SetAccesspublic

Ожидаемая длина полезной нагрузки, заданной как uint64. Свойство обычно является свойством Value matlab.net.http.field.ContentLengthField в свойстве Header.

Если ContentLength пуст, то длина не известна. Полезная нагрузка заканчивается, когда putData(uint8.empty) называется.

MATLAB устанавливает это свойство прежде, чем вызвать initialize для удобства подклассов, которые могут извлечь выгоду из знания длины данных.

Если этот ContentConsumer является делегатом потребителя верхнего уровня, то значение ContentLength может отличаться от значения ContentLength потребителя верхнего уровня.

Атрибуты:

GetAccesspublic
SetAccesspublic

MediaType полезной нагрузки, заданной как matlab.net.http.MediaType object. свойство обычно, является свойством Value matlab.net.http.field.ContentTypeField в свойстве Header. Если свойство ContentType пусто, то ContentTypeField пуст или не существует.

MATLAB устанавливает это свойство прежде, чем вызвать initialize для удобства подклассов, которые хотят исследовать MediaType. Подклассы могут установить это свойство, если они решают от данных, что это имеет различный MediaType.

В конце передачи MATLAB копирует это значение в свойство Response.Body.ContentType.

Атрибуты:

GetAccesspublic
SetAccesspublic

Заголовок полезной нагрузки, в настоящее время обрабатываемой, заданный как matlab.net.http.HeaderField object.

Потребители используют этот заголовок, чтобы определить, как обработать полезную нагрузку, которая отправляется им. Для потребителя верхнего уровня это значение совпадает с Response.Header. Для делегата значение может отличаться. Например, в многослойном сообщении, обработанном MultipartConsumer, это - заголовок части, которую обрабатывает этот делегат. Делегат может все еще исследовать Response.Header на заголовки исходного сообщения.

MATLAB устанавливает это свойство прежде, чем вызвать initialize для удобства подклассов.

Атрибуты:

GetAccesspublic
SetAccesspublic

Завершенный RequestMessage, который был отправлен, задал как matlab.net.http.RequestMessage object., Это - итоговый RequestMessage после всех перенаправлений, который является возвращаемым значением completedrequest из метода matlab.net.http.RequestMessage.send.

MATLAB устанавливает это свойство прежде, чем вызвать initialize для удобства подклассов.

Атрибуты:

GetAccesspublic
SetAccesspublic

ResponseMessage, обрабатываемый, заданный как matlab.net.http.ResponseMessage object.

MATLAB устанавливает свойство Response прежде, чем вызвать initialize. Значением является ResponseMessage после того, как заголовки были получены, но прежде, чем получить любую полезную нагрузку. В начале обработки сообщения ответа (или запуск части для многослойных сообщений), свойство ResponseMesssage.Body является объектом MessageBody с пустыми свойствами Data и Payload. Чтобы хранить полученные данные, потребители могут изменить свойства Response и MessageBody.Data во время передачи данных. Обычно, потребители, что процесс и затем хранит набор данных Response.Body.Data к их обработанной полезной нагрузке, хотя это не требуется. При завершении передачи MATLAB возвращает этот Response в вызывающую сторону matlab.net.http.RequestMessage.send ., Потребители не должны изменять другие свойства Response, такие как Header или StatusLine, когда те изменения возвращены в вызывающую сторону send.

Свойство Response.Body.Payload пусто во время передачи, и потребители не должны пытаться изменить его. Если свойство SavePayload установлено, то MATLAB устанавливает Payload на полученную полезную нагрузку в конце передачи сообщения или части (после вызова putData(uint8.empty)) или когда исключение происходит.

Если исключение происходит в потребителе во время обработки сообщения, то MATLAB выдает объект HTTPException. Свойство History содержит это значение Response.

Если потребитель является делегатом, который обрабатывает часть многослойного сообщения, то Response.Header содержит заголовок целого сообщения, и свойства Payload и Data Response.Body очищены прежде, чем вызов ContentConsumer для каждой части. В конце каждой части новый ResponseMessage добавляется в конец массива объектов ResponseMessage в Body.Data исходного ответа, содержащем Header от этого объекта и Body из этого свойства. Следующий делегат видит новый Response с пустым MessageBody, не MessageBody предыдущего делегата.

Атрибуты:

GetAccesspublic
SetAccesspublic

Место назначения запроса, обрабатываемого, заданного как matlab.net.URI object. Это значение, является исходным целевым URI, как определено matlab.net.http.RequestMessage.send ., Это не URI прокси или итоговый URI после перенаправлений.

MATLAB устанавливает это свойство прежде, чем вызвать initialize для удобства подклассов.

Атрибуты:

GetAccesspublic
SetAccesspublic

Защищенный, установленный MATLAB или подклассами

Функция, заданная как указатель на функцию, вызванный методом putData, чтобы добавить дополнительные данные. Метод putData в этом классе вызывает функцию AppendFcn, чтобы добавить данные, которые это получает в ее аргументе data к существующим данным в сообщении ответа. Функция должна иметь подпись:

AppendFcn(consumer,newdata)

где newdata является данными, которые будут добавлены к массиву в consumer.Response.Body.Data Данные. Это - ответственность этого метода обновить consumer.CurrentLength, чтобы отразить новую длину Data. Если newdata пуст, который указывает на конец потока, то функция должна обновить Response.Body.Data к своему окончательному значению.

Поведение по умолчанию, если это свойство пусто, использует внутреннюю функцию, которая обрабатывает Data как массив произвольных значений, поддерживающих функцию horzcat. Это эффективно добавляет newdata путем предварительного выделения пробела, поддержания CurrentLength, чтобы быть фактической длиной хранивших данных. В конце сообщения это обрезает Response.Body.Data до CurrentLength.

Если horzcat не подходит для добавлять процесса, то подклассы могут изменить это свойство.

Подклассы, которые не вызывают ContentConsumer.putData, чтобы добавить данные, или которые удовлетворены поведением horzcat при добавлении данных, могут проигнорировать это свойство.

Атрибуты:

GetAccessprotected
SetAccessprotected

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

Атрибуты:

GetAccessprotected
SetAccessprotected

Длина данных в настоящее время в свойстве Response.Body.Data, заданном как uint64.

Это свойство используется, когда Response.Body.Data был предварительно выделен размеру, больше, чем фактический объем данных, в настоящее время сохраненный, чтобы указать на длину хранившие данные. Если это свойство пусто, то это означает, что весь Response.Body.Data содержит хранившие данные или что подкласс ContentConsumer избавляется от данных в некотором роде кроме хранения его в Response.Body.Data Данные.

Базовый класс метод putData устанавливает и использует это свойство в этом базовом классе, когда свойство AppendFcn пусто. Именно в пользу подклассов вызывают putData и хотят исследовать уже сохраненные данные и/или любые реализации AppendFcn, которые поддерживают результаты в Response.Body.Data Данные.

Подклассы, которые используют putData также, могут изменить это свойство сбросить положение в буфере, где данные хранятся. Например, когда функция AppendFcn по умолчанию используется, подкласс, что процессы весь Response.Body.Data на каждом вызове putData больше не могут иметь использования для исходных данных, таким образом, это может сбросить свойство CurrentLength к 1 так, чтобы следующий вызов putData перезаписал буфер с новыми данными. Нет никакой потребности очистить элементы в буфере мимо конца новых данных.

Подклассы, которые не вызывают putData, могут использовать это свойство отследить их собственные данные или могут оставить его, сбросил (пустой). MATLAB не помещает ограничений на значение, которое может быть установлено здесь и не использует его ни для какой цели кроме определить, где AppendFcn по умолчанию должен сохранить следующий буфер данных, и где обрезать данные в конце сообщения. Установите это свойство опустеть перед итоговым вызовом putData(uint8.empty), чтобы предотвратить усечение данных.

MATLAB устанавливает это свойство опустеть перед каждым вызовом initialize.

Атрибуты:

GetAccessprotected
SetAccessprotected

ContentConsumer, который делегировал этому потребителю, заданному как объект matlab.net.http.io.ContentConsumer. Если другой потребитель, такой как GenericConsumer или MultipartConsumer, вызвал этого потребителя как делегата, то это - потребитель вызова. Это пусто в потребителе верхнего уровня, заданном в вызове matlab.net.http.RequestMessage.send .

Делегаты могут использовать это свойство получить доступ к свойствам их delegators, например, определить, который потребитель делегировал им.

Атрибуты:

GetAccessprotected
SetAccessprotected

Методы

инициализироватьПодготовьте ImageConsumer к новому изображению в сообщении HTTP
putDataСохраните данные для ImageConsumer

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

delegateToДелегируйте другому потребителю
инициализироватьПодготовьте потребителя к новой полезной нагрузке HTTP
putDataПроцесс или сохраняет следующий буфер данных для ContentConsumer
запускЗапустите передачу данных HTTP к ContentConsumer

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

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

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