1
0
Fork 0
mirror of synced 2024-05-17 19:03:08 +12:00
This commit is contained in:
Rafał Mikrut 2023-04-01 17:57:06 +02:00
parent 6041ee0bc1
commit eeb69eada0
3 changed files with 9 additions and 5 deletions

5
Cargo.lock generated
View file

@ -1722,12 +1722,13 @@ checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c"
[[package]]
name = "libheif-rs"
version = "0.18.0"
version = "0.19.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "37d09b0d2d69da084eeeda9534662bc6b6096fbce3f307149750c0e572ad0ccd"
checksum = "749fcebc2069f334599304546cfa891c30be08cdf4f358ed984a2c71c5e0031f"
dependencies = [
"enumn",
"four-cc",
"libc",
"libheif-sys",
]

View file

@ -69,10 +69,10 @@ infer = "0.13.0"
num_cpus = "1.15.0"
# Heif/Heic
libheif-rs = { version = "0.18.0", optional = true } # TODO update this, decode function is missing in this version
libheif-rs = { version = "0.19.2", optional = true }
anyhow = { version = "1.0", optional = true }
state="0.5.3"
state = "0.5.3"
[features]
default = []

View file

@ -11,6 +11,8 @@ use directories_next::ProjectDirs;
use image::{DynamicImage, ImageBuffer, Rgb};
use imagepipe::{ImageSource, Pipeline};
#[cfg(feature = "heif")]
use libheif_rs::LibHeif;
#[cfg(feature = "heif")]
use libheif_rs::{ColorSpace, HeifContext, RgbChroma};
static NUMBER_OF_THREADS: state::Storage<usize> = state::Storage::new();
@ -126,9 +128,10 @@ pub fn open_cache_folder(cache_file_name: &str, save_to_cache: bool, use_json: b
#[cfg(feature = "heif")]
pub fn get_dynamic_image_from_heic(path: &str) -> Result<DynamicImage> {
let libheif = LibHeif::new();
let im = HeifContext::read_from_file(path)?;
let handle = im.primary_image_handle()?;
let image = handle.decode(ColorSpace::Rgb(RgbChroma::Rgb), None)?;
let image = libheif.decode(&handle, ColorSpace::Rgb(RgbChroma::Rgb), None)?;
let width = image.width();
let height = image.height();
let planes = image.planes();