adjust image size
This commit is contained in:
parent
e0c5acefb7
commit
c860fd09a4
19
src/main.rs
19
src/main.rs
|
@ -348,22 +348,24 @@ impl<'a> Acquisition<'a> {
|
||||||
fn get_image(self) -> Result<(), Error> {
|
fn get_image(self) -> Result<(), Error> {
|
||||||
let parameters = self.handle.parameters()?;
|
let parameters = self.handle.parameters()?;
|
||||||
|
|
||||||
let bytesize = parameters.bytes_per_line() * parameters.lines() * parameters.depth();
|
let bytesize = parameters.bytes_per_line() * parameters.depth();
|
||||||
let mut image = Vec::<u8>::with_capacity(bytesize as _);
|
let mut image = vec![0_u8; bytesize as _];
|
||||||
|
|
||||||
let mut len = 0;
|
let mut buffer = &mut image[..];
|
||||||
// unsafe { checked(|| sane_set_io_mode(self.handle.0, SANE_FALSE as _))? };
|
// unsafe { checked(|| sane_set_io_mode(self.handle.0, SANE_FALSE as _))? };
|
||||||
|
|
||||||
unsafe {
|
unsafe {
|
||||||
'read_loop: loop {
|
'read_loop: loop {
|
||||||
|
let mut len = 0;
|
||||||
let e = checked(|| {
|
let e = checked(|| {
|
||||||
sane_read(
|
sane_read(
|
||||||
self.handle.0,
|
self.handle.0,
|
||||||
image.as_mut_ptr(),
|
buffer.as_mut_ptr(),
|
||||||
image.len() as _,
|
buffer.len() as _,
|
||||||
&mut len,
|
&mut len,
|
||||||
)
|
)
|
||||||
});
|
});
|
||||||
|
buffer = &mut buffer[len as usize..];
|
||||||
if let Err(err) = e {
|
if let Err(err) = e {
|
||||||
if err.is_eof() {
|
if err.is_eof() {
|
||||||
break 'read_loop;
|
break 'read_loop;
|
||||||
|
@ -371,13 +373,10 @@ impl<'a> Acquisition<'a> {
|
||||||
return Err(err);
|
return Err(err);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if len != 0 {
|
// std::thread::sleep(std::time::Duration::from_millis(100));
|
||||||
panic!()
|
|
||||||
}
|
|
||||||
std::thread::sleep(std::time::Duration::from_millis(100));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
println!("{}", len);
|
assert_eq!(buffer.len(), 0);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue