#preview #thumbnail #windows

thumbcache

在 Windows 上获取文件缩略图

2 个版本

0.1.1 2024年8月27日
0.1.0 2024年8月27日

#5#thumbnail

MIT 许可证

7KB
72

thumbcache

使用 Windows thumbcache 获取文件的 bmp 预览图。

用法

当尝试从非图像文件(.zip 或 .exe)获取预览图时将抛出错误。如果预览图不存在也可能抛出错误。因此,检查错误比依赖于 .unwrap()? 语法更好。

use std::io::{Error, Write};

pub fn main() -> Result<(), Error> {
  let hbitmap = thumbcache::get_hbitmap(r"C:\path-to-file.jpeg", 96, 96, 0x08)?;
  
  // true  — include .bpm file headers
  // false — dont
  let bitmap = thumbcache::get_bitmap_bits(hbitmap, true);

  let mut file_out = std::fs::File::create("./out.bmp")?;
  let _ = file_out.write_all(&bitmap);
  
  Ok(())
}

来源

在编写这个程序时,我使用了以下来源。我还使用了 ChatGPT,因为我最初并不是 Rust 开发者,并且对 C 或 WinAPI 并不熟悉。我认为这值得一提。

https://stackoverflow.com/questions/14207618/get-bytes-from-hbitmap

https://stackoverflow.com/questions/21751747/extract-thumbnail-for-any-file-in-windows

依赖项

~128MB
~2M SLoC