| 170 | } |
| 171 | |
| 172 | Valdi::Result<Ref<Image>> Image::make(const Valdi::BytesView& data) { |
| 173 | if (isSVG(data)) { |
| 174 | return makeFromSVG(data); |
| 175 | } |
| 176 | |
| 177 | Image::initializeCodecs(); |
| 178 | auto skData = skDataFromBytes(data, DataConversionModeNeverCopy); |
| 179 | |
| 180 | auto skImage = SkImages::DeferredFromEncodedData(skData); |
| 181 | |
| 182 | if (skImage == nullptr) { |
| 183 | return Valdi::Error("Unable to decode image"); |
| 184 | } |
| 185 | |
| 186 | return Ref<Image>(Valdi::makeShared<Image>(skImage)); |
| 187 | } |
| 188 | |
| 189 | bool Image::isSVG(const Valdi::BytesView& data) { |
| 190 | return snap::drawing::isSVG(data); |
no test coverage detected