gpt4 book ai didi

image-processing - 如何将 DynamicImage 转换为 Base64?

转载 作者:行者123 更新时间:2023-11-29 08:31:10 24 4
gpt4 key购买 nike

我可以使用 imagebase64 包将 Base64 字符串转换为 DynamicImage,但我无法将图像转换回 Base64字符串。

我在这里做错了什么?如何实现?

extern crate base64;
extern crate image;

fn main() {
/*
Base64 to image
let img_buffer = base64::decode("qwerty...").unwrap();
let mut base_img = image::load_from_memory(img_buffer.as_slice()).unwrap();

*/

let mut base_img = image::open("player.png").unwrap();

base_img.invert();

// base_img.save("player1.png").unwrap();

// image to Base64
let res_base64 = base64::encode(base_img.raw_pixels().as_slice());

println!("{}", res_base64)
}

原始图片的Base64值

iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAgAElEQVR42uydd5hlRZn/v1Un3dzdt/P0pJ6enANxGKISFEQkg4ur6667uquuCiKCIJKUpAj7U3cN66orWVERVxBmmDxMYHLOM90znfvGk6rq98e9ICoo0Kf73u5+P8+DjPBwZrpO1Xm...

Gimp倒像的Base64值

iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAB3RJTUUH4wgMCCwxQF4N2QAAIABJREFUeNrsvXmc3FWZ7...

我得到的响应不是正确的 Base64 值:

////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///...

最佳答案

原始图像和 Gimp 图像的 Base64 值表示 PNG 编码图像。您得到的响应代表原始像素数据。在编码为 Base64 之前,您需要将数据转换为 PNG。应该这样做:

let mut buf = vec![[]];
base_img.write_to(&mut buf, image::ImageOutputFormat::PNG);
let res_base64 = base64::encode(&buf);

关于image-processing - 如何将 DynamicImage 转换为 Base64?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57457818/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com