[dependencies]
image = "0.25.4"
webp = "0.3.0"
use std::fs::File;
use std::io::{BufReader, Read};
use image::DynamicImage;
use webp::Decoder;
fn main() {
    // 打开 WebP 文件
    let webp_file = File::open("123.webp").expect("无法打开 WebP 文件");
    let mut reader = BufReader::new(webp_file);
    // 读取文件内容到字节缓冲区
    let mut buffer = Vec::new();
    reader.read_to_end(&mut buffer).expect("无法读取 WebP 文件");
    // 解码 WebP 文件
    let decoder = Decoder::new(&buffer);
    let webp_image = decoder.decode().expect("无法解码 WebP 文件");
    // 将 WebP 图像转换为 DynamicImage
    let dynamic_image = webp_image.to_image();
    // 将 DynamicImage 转换为 ImageBuffer<Rgba<u8>, Vec<u8>>
    let image_buffer = dynamic_image.into_rgba8();
    // 保存为 PNG 文件
    DynamicImage::ImageRgba8(image_buffer).save("output.png").expect("无法保存 PNG 文件");
    println!("转换完成!");
}如果文章或资源对您有帮助,欢迎打赏作者。一路走来,感谢有您!
 支付宝打赏
支付宝打赏
      微信打赏
微信打赏
     
txttool.com 说一段 esp56物联 查询128 IP查询