Преглед на файлове

Add a printing function that displays png_image

Lucas Stadler преди 10 години
родител
ревизия
6a04b2debb
променени са 1 файла, в които са добавени 15 реда и са изтрити 3 реда
  1. 15 3
      rust/coffi/src/main.rs

+ 15 - 3
rust/coffi/src/main.rs

@ -28,11 +28,23 @@ fn main() {
28 28
    let x = unsafe { cos(3.1415) };
29 29
    println!("cos(3.1415) = {}", x);
30 30
31
    let mut img: png_image;
31
    fn get_message(msg: [u8; 64]) -> String {
32
        let mut vec = Vec::new();
33
        for i in 0..64 {
34
            vec.push(msg[i]);
35
        }
36
        String::from_utf8(vec).unwrap()
37
    }
38
39
    fn print_img(img: &png_image) {
40
        println!("{}x{} {} {} {} {} {} {}", img.width, img.height, img.version, img.format, img.flags, img.colormap_entries, img.warning_or_error, get_message(img.message))
41
    }
42
32 43
    unsafe {
33
        img = std::mem::zeroed();
44
        let mut img: png_image = std::mem::zeroed();
45
        print_img(&img);
34 46
        let res = png_image_begin_read_from_file(&mut img, "mei.png".as_ptr());
35 47
        println!("read_from_file: {}", res);
36
        println!("{}x{}", img.width, img.height);
48
        print_img(&img);
37 49
    }
38 50
}