Rik*_*Rik 5 procedural image rust
我想学习Rust,并认为程序生成图像会很有趣.我不知道从哪里开始...... 活塞/锈图像?但即便如此,我应该从哪里开始?
从文档的登录页面看不是很明显,但核心类型image是ImageBuffer.
该new函数允许构造ImageBuffer表示具有给定/宽度的图像,存储给定类型的像素(例如RGB或具有透明度的像素).可以使用类似的方法pixels_mut,get_pixel_mut和put_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();
}
Run Code Online (Sandbox Code Playgroud)
看起来像: 
repo作为起点特别有用,因为它包含示例,特别是它有一个以编程方式生成图像的示例.使用新库时,我会打开文档,如果感到困惑,我会专门寻找示例.
由于 @huon 答案已有 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();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3070 次 |
| 最近记录: |