如何使用rust-image按程序生成图像?

mnemlml8  于 2023-01-09  发布在  其他
关注(0)|答案(2)|浏览(397)

我想学习 rust ,并认为这将是有趣的程序生成图像。我不知道从哪里开始,虽然... piston/rust-image?但即使这样,我应该从哪里开始?

f45qwnt8

f45qwnt81#

docsthe repository开始。
从文档的登录页上看不出来,但image中的内核类型是ImageBuffer
new函数允许你构造一个ImageBuffer来表示一个给定宽度的图像,存储给定类型的像素(例如RGB,或者with transparency)。你可以使用pixels_mutget_pixel_mutput_pixel(后者在文档中低于pixels_mut)来修改图像。

extern crate image;

use image::{ImageBuffer, Rgb};

const WIDTH: u32 = 10;
const HEIGHT: u32 = 10;

fn main() {
    // a default (black) image containing Rgb values
    let mut image = ImageBuffer::<Rgb<u8>>::new(WIDTH, HEIGHT);

    // set a central pixel to white
    image.get_pixel_mut(5, 5).data = [255, 255, 255];

    // write it out to a file
    image.save("output.png").unwrap();
}

它看起来像:

repo作为一个起点特别有用,因为它包含示例,特别是它有编程生成an imagean example。当使用一个新库时,我将打开文档,如果感到困惑,专门打开repo来查找示例。
注:
get_pixel_mut自0.24.0起已弃用:请改用get_pixel和put_pixel。

sg2wtvxw

sg2wtvxw2#

由于@huon answer是6岁的孩子,我在复制结果时遇到错误,所以我写了这个,

use image::{ImageBuffer, RgbImage};

const WIDTH:u32 = 10;
const HEIGHT:u32 = 10;

fn main() {
    let mut image: RgbImage = ImageBuffer::new(WIDTH, HEIGHT);
    *image.get_pixel_mut(5, 5) = image::Rgb([255,255,255]);
    image.save("output.png").unwrap();
}

相关问题