【Rust日報】2021-01-09 GTK-RS Channel問題中的多線程處理

qcms

Firefox的庫,用於在ICC配置文件之間轉換圖像數據。git

    // Decode the jpeg
   let mut d = jpeg_decoder::Decoder::new(std::fs::File::open("/Users/jrmuizel/Desktop/DSCF2460.jpg").unwrap());
   let mut data = d.decode().unwrap();
   let info = d.info().unwrap();

   // Extract the profile after decode
   let profile = d.icc_profile().unwrap();

   // Create a new qcms Profile
   let input = qcms::Profile::new_from_slice(&profile).unwrap();
   let mut output = qcms::Profile::new_sRGB();
   output.precache_output_transform();

   // Create a transform between input and output profiles and apply it.
   let xfm = qcms::Transform::new(&input, &output, qcms::DataType::RGB8, qcms::Intent::default()).unwrap();
   xfm.apply(&mut data);

   // write the result to a PNG
   let mut encoder = png::Encoder::new(std::fs::File::create("out.png").unwrap(), info.width as u32, info.height as u32);
   encoder.set_color(png::ColorType::Rgb);
   encoder.set_srgb(png::SrgbRenderingIntent::Perceptual);
   let mut writer = encoder.write_header().unwrap();
   writer.write_image_data(&data).unwrap(); // Save

這個庫最初是用C編寫的,使用c2rust將其轉換爲Rust,而後重構爲更安全、更慣用的Rust。Github 連接,https://github.com/FirefoxGraphics/qcms/github

GTK-RS Channel問題中的多線程處理

大家好,我是一個Rust初學者,做爲個人第一個項目,我正在開發一個GTK應用程序使用the Rust's GTK binding。我有一個跨線程修改小部件的問題。在個人應用程序中,有兩個主要線程:編程

  • 一個默認線程
  • 一個「analizer」線程,它將運行一些cmd命令並修改一些小部件。

文章連接,https://www.reddit.com/r/rust/comments/ktlet6/multithreading_in_gtkrs_channel_problem/安全

爲生鏽項目優化CI/CD Pipeline(Gitlab和Docker)

Rust是什麼?Rust是一種相似於C的編程語言(通用),這意味着它是一種編譯語言,而且在管理內存等方面具備新的強大功能。酷的東西!rust沒有垃圾收集器,這太棒了。DevOps是什麼。。。多線程

相關文章
相關標籤/搜索