Пакет: 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
.
The matlab.net.http.io.ImageConsumer
класс является handle
класс.
consumer = ImageConsumer
создает потребителя для HTTP- изображений.
consumer = ImageConsumer(
создает fmt
)ImageConsumer
использование заданного формата.
consumer = ImageConsumer(___,
передает дополнительные аргументы, используемые arg1,...,argn
)imread
для преобразования данных отклика.
fmt
- Формат изображенияФормат изображения, заданный как строка или вектор символов, который принимается imread
. Это значение переопределяет любую спецификацию формата в заголовке сообщения. Этот конструктор устанавливает Format
свойство значению fmt
.
Пример: 'png'
arg1,...,argn
— imread
аргументыОдин или несколько входных параметров в imread
функция, заданная как допустимые типы аргументов. Не указывайте filename
или fmt
аргументы.
Пример: 'PixelRegion',{[1 100],[4 500]}
Info
- Информация об изображенияхИнформация об изображениях по мере необходимости для imfinfo
функция, заданная как структура. MATLAB устанавливает это свойство только после успешного преобразования. The Filename
поле в этой структуре пустое.
GetAccess | public |
SetAccess | private |
PartialData
- Частичные данные изображенияЧастичные данные изображения, заданные как uint16
. Если преобразование не удалось или передача была прервана, MATLAB устанавливает PartialData
к необработанным полученным данным, который является uint8
вектор. PartialData
может не содержать никаких данных во время передачи или в успешных случаях.
GetAccess | public |
SetAccess | private |
Format
- Формат изображенияФормат изображения, заданный как строковый или символьный вектор. Этот потребитель отклоняет сообщения, формат которых не является одним из указанных в столбце EXT imformats
функция. Значение по умолчанию этого свойства пустое, которое пытается вывести формат из поля Content-Type или расширения имени файла в поле Content-Disposition ответа или URI запроса. Если вы хотите заставить этого потребителя обработать данные в определенном формате, задайте это свойство перед применением этого потребителя к RequestMessage.send
способ.
Если сервер неправильно указывает формат, задайте правильный формат для этого свойства.
GetAccess | public |
SetAccess | public |
AllocationLength
- Предлагаемый buffer sizeuint64
Предлагаемый buffer size, заданный как uint64
. MATLAB устанавливает AllocationLength
к ожидаемому размеру буферов данных, переданных в putData
. Фактический размер может быть меньше или больше. Чтобы улучшить эффективность, потребитель может использовать это значение для предварительного выделения пространства для обработки данных.
MATLAB устанавливает это свойство перед вызовом start
способ для удобства подклассов.
GetAccess | public |
SetAccess | public |
ContentLength
- Ожидаемая длина полезной нагрузкиuint64
| пустойОжидаемая длина полезной нагрузки, заданная как uint64
. Свойством обычно является Value
свойство matlab.net.http.field.ContentLengthField
в Header
свойство.
Если ContentLength
пуст, тогда длина не известна. Полезная нагрузка заканчивается, когда putData(uint8.empty)
вызывается.
MATLAB устанавливает это свойство перед вызовом initialize
для удобства подклассов, которым может быть полезно знать длину данных.
Если это ContentConsumer
является делегатом потребителя верхнего уровня, затем значение ContentLength
может отличаться от ContentLength
значение потребителя верхнего уровня.
Пример: numel(someData)
где someData
тип uint8
GetAccess | public |
SetAccess | public |
ContentType
- Тип носителя полезной нагрузкиmatlab.net.http.MediaType
| пустойТип мультимедиа полезной нагрузки, заданный как matlab.net.http.MediaType
объект. Свойством обычно является Value
свойство matlab.net.http.field.ContentTypeField
в Header
свойство. Если на ContentType
свойство пустое, тогда ContentTypeField
пуст или отсутствует.
MATLAB устанавливает это свойство перед вызовом initialize
для удобства подклассов, которые могут захотеть изучить MediaType
. Подклассы могут задать это свойство, если они определяют из данных, что это другое MediaType
.
В конце переноса MATLAB копирует это значение в Response.Body.ContentType
свойство.
Пример: 'application/octet-stream'
GetAccess | public |
SetAccess | public |
Header
- Заголовок обрабатываемой полезной нагрузкиmatlab.net.http.HeaderField
Заголовок обрабатываемой полезной нагрузки, заданный как matlab.net.http.HeaderField
объект.
Потребители используют этот заголовок, чтобы определить, как обработать полезную нагрузку, которая отправляется им. Для потребителя верхнего уровня это значение совпадает с Response.Header
. Для делегата значение может быть другим. Для примера в многочастном сообщении, обработанном MultipartConsumer
, это заголовок части, которую обрабатывает этот делегат. Делегат все еще может изучить Response.Header
для заголовков исходного сообщения.
MATLAB устанавливает это свойство перед вызовом initialize
, для удобства подклассов.
GetAccess | public |
SetAccess | public |
Request
- Завершено RequestMessage
который был отправленmatlab.net.http.RequestMessage
Завершенное RequestMessage
который был отправлен, заданный как matlab.net.http.RequestMessage
объект. Это окончательная RequestMessage
после всех перенаправлений, который является completedrequest
возвращаемое значение из send
способ.
MATLAB устанавливает это свойство перед вызовом initialize
, для удобства подклассов.
GetAccess | public |
SetAccess | public |
Response
— ResponseMessage
обрабатываетсяmatlab.net.http.ResponseMessage
The ResponseMessage
обрабатывается, задается как matlab.net.http.ResponseMessage
объект.
MATLAB устанавливает Response
свойство перед вызовом initialize
. Значение является ResponseMessage
после получения заголовков, но до получения полезной нагрузки. В начале обработки ответного сообщения (или в начале компонента для многопоточных сообщений) ResponseMesssage.Body
свойство является MessageBody
объект с пустыми Data
и Payload
свойства. Чтобы хранить полученные данные, потребители могут редактировать Response
и MessageBody.Data
свойства во время передачи данных. Обычно потребители, которые обрабатывают и затем хранят данные Response.Body.Data
к их обработанной полезной нагрузке, хотя это не требуется. По завершении передачи MATLAB возвращает это Response
к вызывающему абоненту send
. Потребители не должны изменять другие Response
свойства, такие как Header
или StatusLine
, поскольку эти изменения возвращаются вызывающему абоненту send
.
The Response.Body.Payload
свойство пусто во время передачи, и потребители не должны пытаться изменить его. Если на HTTPOptions.SavePayload
задается свойство, затем устанавливается MATLAB Payload
к полученной полезной нагрузке в конце передачи сообщения или части (после вызова на putData(uint8.empty)
) или когда происходит исключение.
Если во время обработки сообщений у потребителя возникает исключение, MATLAB выдает HTTPException
объект. The History
свойство содержит это Response
значение.
Если потребитель является делегатом, который обрабатывает часть многочастного сообщения, то Response.Header
содержит заголовок всего сообщения и Payload
и Data
свойства Response.Body
удаляются перед вызовом ContentConsumer
для каждой части. По завершении каждой части, новый ResponseMessage
добавляется в конец массива ResponseMessage
объекты в Body.Data
исходного отклика содержащий
Header
от этого объекта и Body
от этого свойства. Следующий делегат видит свежую Response
с пустым MessageBody
, не предыдущий делегат MessageBody
.
GetAccess | public |
SetAccess | public |
Dependent | true |
URI
- Пункт назначения обрабатываемого запросаmatlab.net.URI
Адрес назначения обрабатываемого запроса, заданный как matlab.net.URI
объект. Это значение является исходным URI назначения, определяемым send
. Это не URI прокси или конечный URI после перенаправлений.
MATLAB устанавливает это свойство перед вызовом initialize
, для удобства подклассов.
GetAccess | public |
SetAccess | public |
AppendFcn
- Функция вызывается putData
для добавления дополнительных данныхФункция, заданная как указатель на функцию, вызывается putData
метод для добавления дополнительных данных. The 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
не подходит для процесса добавления. Для примера, когда StringConsumer
создает скалярную строку, она добавляет к строке с помощью plus
функция вместо horzcat
.
Подклассы, которые не вызывают ContentConsumer.putData
для добавления данных, или которые удовлетворены horzcat
поведение при добавлении данных может игнорировать это свойство.
Пример: @customAppend
где @customAppend
определяется потребителем
GetAccess | protected |
SetAccess | protected |
CurrentDelegate
— ContentConsumer
которому этот потребитель делегируетmatlab.net.http.io.ContentConsumer
| []
The ContentConsumer
которому делегирует этот потребитель, задается как matlab.net.http.io.ContentConsumer
объект. The delegateTo
метод вызывающего потребителя (делегатор) устанавливает CurrentDelegate
свойство. Если текущего делегирования нет, то значение []
.
MATLAB устанавливает CurrentDelegate
на []
перед вызовом initialize
.
GetAccess | protected |
SetAccess | protected |
CurrentLength
- Объем данных, имеющихся в настоящее время в Response.Body.Data
uint64.empty
(по умолчанию) | uint64
Длина данных в данный момент в 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
.
GetAccess | protected |
SetAccess | protected |
MyDelegator
— ContentConsumer
который делегировал этому потребителюmatlab.net.http.io.ContentConsumer
| пустойThe ContentConsumer
делегированный этому потребителю, указанный как matlab.net.http.io.ContentConsumer
объект. Если этот потребитель является делегатом, который был вызван другим потребителем, таким как GenericConsumer
или MultipartConsumer
, тогда это вызывающий потребитель. Он пуст для потребителя верхнего уровня, указанного в вызове send
.
Делегаты могут использовать это свойство для доступа к свойствам своих делегатов, например, чтобы определить, какой потребитель делегировал им.
GetAccess | protected |
SetAccess | protected |
initialize | Подготовьте ImageConsumer к новому изображению в сообщении HTTP |
start | Запустите передачу данных в ContentConsumer |
putData | Сохраните данные для ImageConsumer |
delegateTo | Делегат другому потребителю |
ContentConsumer
| FileConsumer
| ImageProvider
| imfinfo
| imformats
| imread
| matlab.net.URI
| MessageBody
| RequestMessage
| ResponseMessage
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.