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 std::path::Path;
|
||||||
|
|
||||||
use crate::image::Image;
|
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
|
image
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue