added the decoder and began to configure it
created new variables and initiated them with calues from the .info added some questions
This commit is contained in:
parent
83318d8035
commit
65e422e547
|
@ -1,15 +1,53 @@
|
|||
use std::path::Path;
|
||||
|
||||
use crate::image::Image;
|
||||
use std::fs::File;
|
||||
|
||||
pub fn image_loader(path: &Path) -> Image<f32> {
|
||||
|
||||
/* !!!Fragen!!!
|
||||
- was ist .unwrap()
|
||||
- was ist ein IDAT chunk (bei read.info() in der doku)
|
||||
- was ist .output_buffer_size()
|
||||
- was ist .next_frame
|
||||
- kann ich srgb nutzen für dir rgba values bzw für den rgb teil
|
||||
- woher ziehe ich den alpha channel
|
||||
- ist makierter teil kommplet nötig
|
||||
*/
|
||||
|
||||
pub fn image_loader(path: &Path) -> Image<f32>
|
||||
{
|
||||
//marker1
|
||||
|
||||
// The decoder is a build for reader and can be used to set various decoding options
|
||||
// via `Transformations`. The default output transformation is `Transformations::IDENTITY`.
|
||||
|
||||
//open a path in the decoder to look into the img
|
||||
let decoder = png::Decoder::new(File::open(path).unwrap());
|
||||
|
||||
let mut reader = decoder.read_info().unwrap();
|
||||
// Allocate the output buffer.
|
||||
let mut buf = vec![0; reader.output_buffer_size()];
|
||||
// Read the next frame. An APNG might contain multiple frames.
|
||||
let info = reader.next_frame(&mut buf).unwrap();
|
||||
|
||||
let bit_depth = reader.info().bit_depth;
|
||||
let color_type = reader.info().color_type;
|
||||
let width = reader.info().width;
|
||||
let height = reader.info().height;
|
||||
|
||||
// Grab the bytes of the image.
|
||||
let bytes = &buf[..info.buffer_size()];
|
||||
// Inspect more details of the last read frame.
|
||||
let in_animation = reader.info().frame_control.is_some();
|
||||
|
||||
//marker1
|
||||
let vec: Vec<(f32, f32, f32, f32)> = vec!
|
||||
[
|
||||
(-33.0, 7732.0, 2564355.0, -79.0),
|
||||
(1.0, 79.0, 255.0, 1.05),
|
||||
(300.0, 300.0, 300.0, 300.0),
|
||||
];
|
||||
let image: Image<f32> = Image::new(1, 3, vec, path.to_path_buf());
|
||||
|
||||
let vec: Vec<(f32, f32, f32, f32)> = vec![
|
||||
(-33.0, 7732.0, 2564355.0, -79.0),
|
||||
(1.0, 79.0, 255.0, 1.05),
|
||||
(300.0, 300.0, 300.0, 300.0),
|
||||
];
|
||||
let image: Image<f32> = Image::new(1, 3, vec);
|
||||
image
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue