[−][src]Struct tiff_encoder::write::ByteBlock
Datablock
that consists of a list of bytes.
It is possible to store any block of data in a ByteBlock
,
but that would require to know the Endianness
of the file
beforehand, so the bytes are written in the correct order.
Using a Datablock
, on the other hand, allows to make use
of the functionality of an EndianFile
, so the data can be
written without worrying about the endianness.
Examples
Creating a ByteBlock from a Vec<u8>
:
use tiff_encoder::prelude::*; // A vector holding arbitrary u8 data. // This is the data we want to store as a Byteblock. let data_8bits: Vec<u8> = vec![0; 65536]; // Create an Offsets of a single Byteblock from the buffer. // This is the value that can be used directly as an IFD entry value. let byte_block = ByteBlock::single(data_8bits);
Creating a ByteBlock from a Vec<u32>
:
extern crate byteorder; // Crate byteorder will be used to write 32-bit information in a 8-bit buffer. use byteorder::{LittleEndian, WriteBytesExt}; use tiff_encoder::prelude::*; // A vector holding arbitrary u32 data. // This is the data we want to store as a Byteblock. let data_32bits: Vec<u32> = vec![0; 65536]; // First, let's store the data in a u8 buffer. let mut image_bytes = Vec::with_capacity(262144); // 65536*4 (each u32 has a size of 4 bytes) for val in data_32bits { // A little endian TIFF file is assumed in this example. image_bytes.write_u32::<LittleEndian>(val).unwrap(); } // Create an Offsets of a single Byteblock from the buffer. // This is the value that can be used directly as an IFD entry value. let byte_block = ByteBlock::single(image_bytes);
Methods
impl ByteBlock
[src]
pub fn offsets(blocks: Vec<Vec<u8>>) -> Offsets<ByteBlock>
[src]
Constructs an Offsets
of ByteBlock
s from a vector of
vectors of bytes.
Each vector of bytes represents one ByteBlock
.
pub fn single(block: Vec<u8>) -> Offsets<ByteBlock>
[src]
Constructs an Offsets
from a vector of bytes.
This vector of bytes represents a single ByteBlock
.
Trait Implementations
Auto Trait Implementations
Blanket Implementations
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From for T
[src]
impl<T, U> TryFrom for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T> Borrow for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,