skia_safe/codec/
decoders.rs1pub mod bmp_decoder {
2 use std::{io, result};
3
4 use crate::{codec::codecs::Decoder, codec::Result, Codec};
5
6 pub fn decode_stream(stream: &mut impl io::Read) -> result::Result<Codec, Result> {
7 decoder().from_stream(stream)
8 }
9
10 pub fn decoder() -> Decoder {
11 Decoder::construct(|decoder| unsafe { skia_bindings::C_SkBmpDecoder_Decoder(decoder) })
12 }
13}
14
15pub mod gif_decoder {
16 use std::{io, result};
17
18 use crate::{codec::codecs::Decoder, codec::Result, Codec};
19
20 pub fn decode_stream(stream: &mut impl io::Read) -> result::Result<Codec, Result> {
21 decoder().from_stream(stream)
22 }
23
24 pub fn decoder() -> Decoder {
25 Decoder::construct(|decoder| unsafe { skia_bindings::C_SkGifDecoder_Decoder(decoder) })
26 }
27}
28
29pub mod ico_decoder {
30 use std::{io, result};
31
32 use crate::{codec::codecs::Decoder, codec::Result, Codec};
33
34 pub fn decode_stream(stream: &mut impl io::Read) -> result::Result<Codec, Result> {
35 decoder().from_stream(stream)
36 }
37
38 pub fn decoder() -> Decoder {
39 Decoder::construct(|decoder| unsafe { skia_bindings::C_SkIcoDecoder_Decoder(decoder) })
40 }
41}
42
43#[cfg(feature = "jpeg")]
44pub mod jpeg_decoder {
45 use std::{io, result};
46
47 use crate::{codec::codecs::Decoder, codec::Result, Codec};
48
49 pub fn decode_stream(stream: &mut impl io::Read) -> result::Result<Codec, Result> {
50 decoder().from_stream(stream)
51 }
52
53 pub fn decoder() -> Decoder {
54 Decoder::construct(|decoder| unsafe { skia_bindings::C_SkJpegDecoder_Decoder(decoder) })
55 }
56}
57
58pub mod png_decoder {
59 use std::{io, result};
60
61 use crate::{codec::codecs::Decoder, codec::Result, Codec};
62
63 pub fn decode_stream(stream: &mut impl io::Read) -> result::Result<Codec, Result> {
64 decoder().from_stream(stream)
65 }
66
67 pub fn decoder() -> Decoder {
68 Decoder::construct(|decoder| unsafe { skia_bindings::C_SkPngDecoder_Decoder(decoder) })
69 }
70}
71
72#[cfg(any())]
73pub mod png_rust_decoder {
74 use std::{io, result};
75
76 use crate::{codec::codecs::Decoder, codec::Result, Codec};
77
78 pub fn decode_stream(stream: &mut impl io::Read) -> result::Result<Codec, Result> {
79 decoder().from_stream(stream)
80 }
81
82 pub fn decoder() -> Decoder {
83 Decoder::construct(|decoder| unsafe { skia_bindings::C_SkPngRustDecoder_Decoder(decoder) })
84 }
85}
86
87pub mod wbmp_decoder {
88 use std::{io, result};
89
90 use crate::{codec::codecs::Decoder, codec::Result, Codec};
91
92 pub fn decode_stream(stream: &mut impl io::Read) -> result::Result<Codec, Result> {
93 decoder().from_stream(stream)
94 }
95
96 pub fn decoder() -> Decoder {
97 Decoder::construct(|decoder| unsafe { skia_bindings::C_SkWbmpDecoder_Decoder(decoder) })
98 }
99}
100
101#[cfg(feature = "webp-decode")]
102pub mod webp_decoder {
103 use std::{io, result};
104
105 use crate::{codec::codecs::Decoder, codec::Result, Codec};
106
107 pub fn decode_stream(stream: &mut impl io::Read) -> result::Result<Codec, Result> {
108 decoder().from_stream(stream)
109 }
110
111 pub fn decoder() -> Decoder {
112 Decoder::construct(|decoder| unsafe { skia_bindings::C_SkWebpDecoder_Decoder(decoder) })
113 }
114}