SAIL 圖像解碼庫的幾個重要更新已經發布,提供了對早已不存在的 KSquirrel 圖像檢視器的編解碼器的 C 重寫,但具有高級抽象 API 和許多改進。 該庫已可供使用,但仍在不斷改進中。 尚不能保證二進位和 API 相容性。 示範。
賽爾的特點
- 快速且易於使用的庫;
- 用 C11 寫,綁定到 C++17;
- 對圖像格式的支援是透過動態載入的編解碼器實現的,可以獨立於客戶端進行刪除和添加;
- 從文件、記憶體、自己的來源讀取;
- 支援多頁和動畫圖像;
- 對流行格式的支援仍然使用相應的庫 libjpeg、libpng 等來完成。
- 跨平台:Linux、Windows、macOS;
- 「探測」-無需解碼像素即可取得影像資訊;
- 人類實體名稱(無 FIMULTIBITMAP);
- 讀寫 ICC 配置檔;
- 發送 RGBA 或 BGRA 像素;
- 如果編解碼器支持,則傳回原始像素(例如 CMYK);
自上次發布以來的更改清單:
- API 已顯著改進和簡化。 是: struct sail_context *context; SAIL_TRY(sail_init(&context)); 結構 sail_image *圖像; 無符號字元*image_pixels; SAIL_TRY(sail_read(路徑, 上下文, &image, (void **)&image_pixels)); ....免費(圖片像素); sail_destroy_image(圖像);
現在: struct sail_image *image; SAIL_TRY(sail_read_file(path, &image); ... sail_destroy_image(image);
- 新增BMP、GIF、TIFF格式;
- VCPKG 在除 UWP 之外的所有平台上均可使用;
- 基準效能測試已發布;
- C++ 綁定已移至 C++17;
- 記憶體分配函數被收集在一個地方,以便可以輕鬆地用您自己的函數替換它們,但目前這只能透過重新編譯來完成;
- 使用者現在可以使用 CMake find_package() 連線 SAIL;
- 新增了靜態編譯的能力(SAIL_STATIC=ON);
- 新增了將所有編解碼器編譯到一個公共庫中的功能(SAIL_COMBINE_CODECS=ON);
- 增加基於 µnit 的測試的工作已經開始;
推薦安裝方式
- Linux - vcpkg、Debian 規則也可用
- Windows-vcpkg
- macOS - 釀造
來源: opennet.ru