1use icns_rs::{IcnsEncoder, IconFormats};
2use image::open;
3use std::fs::File;
4use std::io::prelude::*;
5
6fn main() -> std::io::Result<()> {
7 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 let mut encoder = IcnsEncoder::new();
18
19 encoder.data(image);
20 encoder.formats(IconFormats::recommended());
21
22 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 let mut file = File::create("example.icns")?;
33 file.write_all(&data)?;
34
35 Ok(())
36}