1#![doc = include_str!("../README.md")]
2#![allow(non_upper_case_globals)]
3#![allow(non_camel_case_types)]
4#![allow(non_snake_case)]
5
6pub mod nvtiff;
7pub mod result;
8pub use nvtiff::*;
9pub use result::{NvTiffResult, NvTiffResultCheck};
10
11#[cfg(test)]
12mod tests {
13 use crate::{
14 nvtiffCompression, nvtiffImageInfo, nvtiffPhotometricInt, nvtiffPlanarConfig,
15 nvtiffSampleFormat, nvtiffStatus_t, nvtiffStream, nvtiffStreamCreate,
16 nvtiffStreamGetImageInfo, nvtiffStreamGetNumImages, nvtiffStreamParseFromFile,
17 };
18
19 #[test]
20 fn test_nvtiff_get_metadata_info() {
21 let mut stream = std::mem::MaybeUninit::uninit();
27 let mut tiff_stream: *mut nvtiffStream = stream.as_mut_ptr();
28
29 let status_create: nvtiffStatus_t::Type =
30 unsafe { nvtiffStreamCreate(&raw mut tiff_stream) };
31 dbg!(status_create); assert_eq!(status_create, nvtiffStatus_t::NVTIFF_STATUS_SUCCESS);
33
34 let tiff_cstr = std::ffi::CString::new("images/bali_notiles.tif").unwrap();
36 let tiff_path: *const std::os::raw::c_char = tiff_cstr.as_ptr();
37
38 let status_parse: u32 = unsafe { nvtiffStreamParseFromFile(tiff_path, tiff_stream) };
39 dbg!(status_parse); assert_eq!(status_parse, nvtiffStatus_t::NVTIFF_STATUS_SUCCESS);
41
42 let mut num_images: u32 = 0;
44
45 let status_numimages: u32 =
46 unsafe { nvtiffStreamGetNumImages(tiff_stream, &raw mut num_images) };
47 assert_eq!(status_numimages, nvtiffStatus_t::NVTIFF_STATUS_SUCCESS);
48 dbg!(status_numimages);
49 assert_eq!(num_images, 1);
50
51 let mut image_info = nvtiffImageInfo::default();
53
54 let status_imageinfo: u32 =
55 unsafe { nvtiffStreamGetImageInfo(tiff_stream, 0, &raw mut image_info) };
56 assert_eq!(status_imageinfo, nvtiffStatus_t::NVTIFF_STATUS_SUCCESS);
57 dbg!(image_info);
58 assert_eq!(
59 image_info,
60 nvtiffImageInfo {
61 image_type: 0, image_width: 725,
63 image_height: 489,
64 compression: nvtiffCompression::NVTIFF_COMPRESSION_LZW, photometric_int: nvtiffPhotometricInt::NVTIFF_PHOTOMETRIC_RGB, planar_config: nvtiffPlanarConfig::NVTIFF_PLANARCONFIG_CONTIG, samples_per_pixel: 3,
68 bits_per_pixel: 24,
69 bits_per_sample: [8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
70 sample_format: [
71 nvtiffSampleFormat::NVTIFF_SAMPLEFORMAT_UINT, nvtiffSampleFormat::NVTIFF_SAMPLEFORMAT_UINT, nvtiffSampleFormat::NVTIFF_SAMPLEFORMAT_UINT, 0,
75 0,
76 0,
77 0,
78 0,
79 0,
80 0,
81 0,
82 0,
83 0,
84 0,
85 0,
86 0
87 ],
88 }
89 );
90 }
91}