encode/
encode.rs

1use icns_rs::{IcnsEncoder, IconFormats};
2use image::open;
3use std::fs::File;
4use std::io::prelude::*;
5
6fn main() -> std::io::Result<()> {
7    // Open the image
8    let image = match open("example.png") {
9        Ok(image) => image,
10        Err(e) => {
11            println!("Error opening file: {}", e);
12            return Ok(());
13        }
14    };
15
16    // Create the encoder
17    let mut encoder = IcnsEncoder::new();
18
19    encoder.data(image);
20    encoder.formats(IconFormats::recommended());
21
22    // Encode the image
23    let data = match encoder.build() {
24        Ok(data) => data,
25        Err(e) => {
26            println!("Error encoding image: {}", e);
27            return Ok(());
28        }
29    };
30
31    // Write data to file
32    let mut file = File::create("example.icns")?;
33    file.write_all(&data)?;
34
35    Ok(())
36}