Enum ImageOrientation
pub enum ImageOrientation {
Normal,
FlipHorizontal,
Rotate180,
FlipVertical,
Transpose,
Rotate90,
Transverse,
Rotate270,
}Expand description
How the stored pixel grid is turned to be displayed upright, with the
semantics of the TIFF and EXIF Orientation tag.
The four quarter-turn cases (swaps_axes) swap the
displayed width and height. Mapping a point back to a source pixel undoes
the orientation, so a press on a turned picture still finds the pixel
drawn under it.
Variants§
Normal
1 — stored upright. The overwhelmingly common case.
FlipHorizontal
2 — mirrored left-to-right.
Rotate180
3 — rotated 180°.
FlipVertical
4 — mirrored top-to-bottom.
Transpose
5 — transposed (mirrored along the main diagonal).
Rotate90
6 — rotated 90° clockwise for display.
Transverse
7 — transversed (mirrored along the anti-diagonal).
Rotate270
8 — rotated 270° clockwise for display.
Implementations§
§impl ImageOrientation
impl ImageOrientation
pub const fn from_exif(value: u16) -> Option<ImageOrientation>
pub const fn from_exif(value: u16) -> Option<ImageOrientation>
The orientation a TIFF or EXIF Orientation value names, or None
outside 1..=8.
pub const fn from_tiff(value: u16) -> ImageOrientation
pub const fn from_tiff(value: u16) -> ImageOrientation
pub const fn swaps_axes(self) -> bool
pub const fn swaps_axes(self) -> bool
Whether displaying this orientation swaps width and height.
pub const fn is_identity(self) -> bool
pub const fn is_identity(self) -> bool
Whether this is a no-op, so callers can skip work entirely.
pub const fn displayed_size(self, width: u32, height: u32) -> (u32, u32)
pub const fn displayed_size(self, width: u32, height: u32) -> (u32, u32)
The displayed size of a width × height source.
Trait Implementations§
§impl Clone for ImageOrientation
impl Clone for ImageOrientation
§fn clone(&self) -> ImageOrientation
fn clone(&self) -> ImageOrientation
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for ImageOrientation
§impl Debug for ImageOrientation
impl Debug for ImageOrientation
§impl Default for ImageOrientation
impl Default for ImageOrientation
§fn default() -> ImageOrientation
fn default() -> ImageOrientation
impl Eq for ImageOrientation
§impl Hash for ImageOrientation
impl Hash for ImageOrientation
§impl PartialEq for ImageOrientation
impl PartialEq for ImageOrientation
impl StructuralPartialEq for ImageOrientation
Auto Trait Implementations§
impl Freeze for ImageOrientation
impl RefUnwindSafe for ImageOrientation
impl Send for ImageOrientation
impl Sync for ImageOrientation
impl Unpin for ImageOrientation
impl UnsafeUnpin for ImageOrientation
impl UnwindSafe for ImageOrientation
Blanket Implementations§
§impl<T> AnyEq for T
impl<T> AnyEq for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.impl<T> ErasedDestructor for Twhere
T: 'static,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more