MCPcopy Create free account
hub / github.com/MegEngine/MegFlow / extract_image

Function extract_image

flow-plugins/src/utils/image.rs:129–150  ·  view source on GitHub ↗
(
    mime: Mime,
    body: impl Stream<Item = Result<impl Buf, rweb::Error>>,
)

Source from the content-addressed store, hash-verified

127}
128
129async fn extract_image(
130 mime: Mime,
131 body: impl Stream<Item = Result<impl Buf, rweb::Error>>,
132) -> Result<Image, Rejection> {
133 if mime == mime::IMAGE_STAR {
134 let mut buf = Vec::with_capacity(1024 * 1024 * 3);
135 pin_mut!(body);
136 while let Some(inner) = body.next().await {
137 let inner = inner.map_err(reject_cause)?;
138 buf.write_all(inner.chunk()).await.map_err(reject_cause)?;
139 }
140
141 use image::io::Reader as ImageReader;
142 let reader = ImageReader::new(Cursor::new(buf))
143 .with_guessed_format()
144 .map_err(reject_cause)?;
145 let image = Image(reader.decode().map_err(reject_cause)?);
146 Ok(image)
147 } else {
148 Err(rweb::reject::reject())
149 }
150}

Callers

nothing calls this directly

Calls 1

ImageClass · 0.85

Tested by

no test coverage detected