Crates.io | oculante |
lib.rs | oculante |
version | 0.8.22 |
source | src |
created_at | 2020-06-14 21:24:21.159603 |
updated_at | 2024-05-19 12:57:06.901441 |
description | A minimalistic image viewer with analysis and editing tools |
homepage | |
repository | https://github.com/woelper/oculante/ |
max_upload_size | |
id | 253990 |
size | 7,722,935 |
A no-nonsense hardware-accelerated image viewer
Oculante's vision is to be a fast, unobtrusive, portable image viewer with wide image format support, offering image analysis and basic editing tools.
With configurable caching, Oculante can quickly step through image sequences:
Get info about pixel values and position, with precise picking:
Raw image data can be sent to Oculante and will be loaded if possible, regardless of format. Streams of images will be played as a video. You can send images from cameras or headless systems such as a Raspberry Pi for example.
Images may contain color information that is masked by the alpha channel. Although it is present you will not see it since usually RGB values are multiplied with the A channel when displayed. Oculante allows you to inspect all channels individually and see color data without transparency applied.
Oculante needs no installation, as it is just one executable. Just download it for your system from the releases tab (https://github.com/woelper/oculante/releases). In order to open images you can configure your system to open your desired image formats with oculante, drag them onto the executable or into the window. Right now the executables are roughly 20MB, as the default is to statically link dependencies. Minimal versions with less image formats are provided for older computers/tiny systems. Packages for Arm linux are also built. Please open an issue if you want your operating system of choice supported.
On NetBSD, a pre-compiled binary is available through the native package manager. To install it, simply run
pkgin install oculante
rust-icns
)jxl-oxide
)tiff
with additional float/half support)libwebp-sys
- image
had very limited format support)dds-rs
)psd
)resvg
)exr-rs
), tonemappedquickraw
- nef, cr2, dng, mos, erf, raf, arw, 3fr, ari, srf, sr2, braw, r3d, nrw, raw). Since raw is a complex field without true standards, not all camera models are supported.libheif-rs
). Enabled on Windows builds, but optional dependency on MacOS and Linux - available behind heif
flag.oculante -l port
and oculante will switch to receive mode. You can then pipe raw image data to that port, for example using nc localhost 8888 < image.jpg
. Image types will be auto-detected. If you pipe image sequences, these will be played at about 30 fps so you can pipe videos to it. This can be useful to visualize images from a headless system.cat image | oculante -s
EXIF display
Extract a signature
turbojpeg
Oculante does in no way collect or send anonymous or non-anonynmous user data or statistics. Oculante is and will remain free and open source. There will never be ads. There are only two instances where oculante interacts with the network, and both never happen without being triggered by the user:
In addition, oculante saves some settings locally, for example:
Test / benchmark pictures:
https://unsplash.com/@mohsen_karimi
https://unsplash.com/@frstvisuals
This project is MIT licensed. This project contains GPL-licensed code, such as the LUTs in res/LUT. As a result, the source code of this project is publically available to comply with the GPL. Authors who wish to use this project without publishing source code are responsible of removing any code and its references that require source code access.
Linux:
sudo apt-get install libxcb-shape0-dev libxcb-xfixes0-dev libgtk-3-dev libasound2-dev nasm cmake
Win: Install Nasm from https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/win64/
Mac
brew install nasm
turbo
(on by default), the turbojpeg library will not be used to open jpeg images. You won't need Nasm to be installed.
file_open
will enable/disable a OS-native file open dialog. This pulls in additional dependencies and is enabled by default. Disabling it will enable a custom file dialog. This will probably the default in the future.
notan/glsl-to-spirv
(default) uses the spirv shader compiler
notan/shaderc
uses shaderc as a shader compiler. Longer build time.
update
(default) enable app updating.
mouse wheel
= zoom
left mouse
,middle mouse
= pan
ctrl + mouse wheel
= prev/next image in folder
Right mouse
pick color from image (in paint mode)
T = AlwaysOnTop
F = Fullscreen
I = InfoMode
E = EditMode
Right = NextImage
Home = FirstImage
End = LastImage
Left = PreviousImage
R = RedChannel
G = GreenChannel
B = BlueChannel
A = AlphaChannel
U = RGBChannel
C = RGBAChannel
V = ResetView
Minus = ZoomOut
Equals = ZoomIn
Key1 = ZoomActualSize
Key2 = ZoomDouble
Key3 = ZoomThree
Key4 = ZoomFour
Key5 = ZoomFive
LShift + C = CompareNext
LShift + Left = PanLeft
LShift + Right = PanRight
LShift + Up = PanUp
LShift + Down = PanDown
Delete = DeleteFile
RBracket = LosslessRotateRight
LBracket = LosslessRotateLeft
LControl + C = Copy
LControl + V = Paste
LControl + O = Browse
Q = Quit
Z = ZenMode