English
|
简体中文
|
正體中文
|
日本語
LocalViewer
# Description
A High performance Android SMB/WebDAV image viewer/comic reader with network gallery folder support.
Based on [EhViewer](https://github.com/FooIbar/EhViewer)
With [Material Design 3](https://m3.material.io/)
and [Dynamic Color](https://m3.material.io/styles/color/dynamic-color/overview) Support.
Similar to Perfect Viewer and Kuro Reader, with Hi-Res images support (no downscaling), clean UI and good performance.
Build with Grok 4.5.
## Features
* Webtoon gallery reader.
* Local and network libraries for photo/video/comic/ebook.
* Easy to use, just add your folders and done.
* Window manager and folder tab, clean navigation flow between multiple sources.
* Instant scanning and classification for media files in local and network folders.
* One for all folder listing mode (Videos/Photos/Documents all with their own tags and filters).
* Fully working on Meta Quest 3.
* Open or share files like a file manager.
* Fine-tuned page loader, image prefetch with no OOM crashes.
* Gallery folder covers and reading progress.
* Native Android app (Kotlin + Jetpack Compose).
* Material Design 3 Navigation bar.
* Highly optimized network image loading, with high-quality rendering.
* HDR, Wide Color Gamut and 10-bit color mode support.
* Instant local archive reading with mmap.
* ZIP/RAR/CBZ/CBR/CBT/PDF/EPUB support over network share.
* PDF/EPUB/MOBI/FB2/TXT/AZW3/Markdown Ebook support with text formatting.
* JXL/JXR/JPG/AVIF/HEIC HDR support.
* PQ/HLG HEIF software decoding with preserved high bit depth on 64-bit builds.
* 14-Bit RAW formats decoding with true HDR output.
* RAW formats support dng/cr2/cr3/nef/nrw/arw/raf/orf/rw2/pef/srw/raw.
* Batch convert JXL/JXR/RAW to JPEG, JPEG XL, AVIF in both SDR and HDR.
* Compatible with Oppo/OnePlus ProXDR HEIC format.
* Compatible with Apple HDR (HEIF, AVIF).
* Nearest, Bilinear, B-Spline, Catmull-Rom, Mitchell-Netravali, Lanczos3 image scalers using GPU shader.
* Open offline html website archive in your browser with built-in HTTP server.
* Network folder playback for MPV/MX Player/VLC with subtitles and external autio track.
* Optimized Async TCP connection poll.
* Fast smbj client with concurrent connections.
* SMB signing JCE AESCMAC hardware acceleration.
* Ktor OkHttp WebDAV client with HTTP/2 (default) and CIO HTTP/1.1 fallback.
* High performance reader with network cache from EhViewer.
* Reader double tap to open previous/next gallery.
* Reader allow full size image decode.
* Reader auto rotate image.
* Reader comic dual pages mode.
* E-Ink mode support (ported from [venera-next](https://github.com/cyrilpeng/venera-next)).
* EasyTier support (ported from [moonlight-vplus](https://github.com/qiin2333/moonlight-vplus)).
* TXT chapter support (ported from [txtautotoc](https://github.com/cchenhen/txtautotoc)).
### Performance
* The custom SMBJ and WebDAV clients achieve 1 Gbps network speeds over Wi-Fi 7, so after v1.11.x the image reader defaults to have image caching disabled.
* Windows 11 JXR HDR screenshots can be displayed in fp16 hdr bitmaps, or transcode to Ultra HDR Jpeg.
* The image loader was tweaked for preloading and decoding 100MB jpg hdr files over network without any OOM crashes, and smaller files should load instantly.
* Accurate HDR presentation of RAW and JXR images (compared with DaVinci Resolve).
# Download
| Flavor | Minimum Android Version | Features |
|-------------|-------------------------|--------------------------------|
| Default | 12 | Basic |
| Default | 14 (arm64-v8a, x86-64) | HDR, GPU Shaders, RAW |
| EasyTier | 12 (arm64-v8a) | Basic, EasyTier |
| EasyTier | 14 (arm64-v8a) | HDR, GPU Shaders, RAW, EasyTier|
## HDR Image Conversion
LocalViewer supports converting JXR, JXL and RAW formats to Ultra HDR JPEG, AVIF and JXL with multiple HDR transfer options (ISO 21496-1 gain map, Linear, PQ).
| Target | Output depth | Transfer |
|---|---|---|
| JXL HDR | 16-bit float | Linear, with luminance metadata |
| JXL HDR PQ | 16-bit integer | PQ |
| JPEG HDR | 8-bit base + gain map | sRGB base, HDR reconstruction |
| AVIF HDR | 10-bit; 12-bit at Lossless | sRGB base + ISO gain map |
| AVIF HDR PQ | 10-bit; 12-bit at Lossless | PQ |
# Screenshot



### To use WebDAV
``openssl req -x509 -newkey rsa:4096 -keyout server.key -out server.crt -days 365 -nodes``
```.\rclone.exe serve webdav "D:\" --addr :8443 --cert .\server.crt --key .\server.key --read-only --user admin --pass password```
### To use SMB3 encryption:
`Get-SmbShare | Select-Object Name, EncryptData`
`Set-SmbShare -Name "Media" -EncryptData $true`
`Set-SmbServerConfiguration -RejectUnencryptedAccess $false -Force`
```
while ($true) {
Clear-Host
$config = Get-SmbServerConfiguration
$sessions = Get-SmbSession
Write-Host "--- SMB SERVER ENCRYPTION STATUS ---" -ForegroundColor Cyan
Write-Host "Global Server Encryption Enabled : $($config.EncryptData)"
Write-Host "Reject Unencrypted Access : $($config.RejectUnencryptedAccess)"
Write-Host "Active Sessions : $(($sessions).Count)"
Write-Host "Timestamp : $(Get-Date -Format 'HH:mm:ss')"
Write-Host "------------------------------------`n"
if ($sessions) {
$sessions | Select-Object ClientComputerName, ClientUserName, Dialect, NumOpens | Format-Table -AutoSize
}
Start-Sleep -Seconds 1
}
```
# Thanks
- [cchenhen](https://github.com/cchenhen) for txtautotoc.
- [miaoxin2003](https://github.com/miaoxin2003) for improvements to PDF.
Here is the libraries
- [Arrow](https://arrow-kt.io/)
- [AOSP & AndroidX](https://source.android.com/)
- [Kotlin & KotlinX](https://kotlinlang.org/)
- [Material Icons](https://github.com/google/material-design-icons)
- [Ktor](https://ktor.io/)
- [Coil](https://coil-kt.github.io/coil/)
- [Compose Destinations](https://composedestinations.rafaelcosta.xyz/)
- [libarchive](https://www.libarchive.org/)
- [libultrahdr](https://github.com/google/libultrahdr)
- [EasyTier](https://github.com/EasyTier/Easytier)
- [LibRaw](https://github.com/libraw/libraw)
**App libraries**
- [smbj](https://github.com/hierynomus/smbj) — SMB client
- [ZXing](https://github.com/zxing/zxing) — QR codes
- [Telephoto](https://github.com/saket/telephoto) — zoomable images
- [MaterialKolor](https://github.com/jordond/materialkolor) — dynamic color
- [Material Motion](https://github.com/fornewid/material-motion-compose) — transitions
- [Compose Preference](https://github.com/zhanghai/ComposePreference) — settings UI
- [AboutLibraries](https://github.com/mikepenz/AboutLibraries) — license screen
- [moko-resources](https://github.com/icerockdev/moko-resources) — strings
- [Reorderable](https://github.com/Calvin-LL/Reorderable) — drag-to-reorder lists
- [xmlutil](https://github.com/pdvrieze/xmlutil) — XML
- [kotlin-multiplatform-diff](https://github.com/petertrr/kotlin-multiplatform-diff) — text diff
- [Splitties](https://github.com/LouisCAD/Splitties) and [Okio](https://square.github.io/okio/)
**Native codecs**
- [libwebp](https://github.com/webmproject/libwebp)
- [libjxl](https://github.com/libjxl/libjxl)
- [libavif](https://github.com/AOMediaCodec/libavif) and [dav1d](https://code.videolan.org/videolan/dav1d)
- [libde265](https://github.com/strukturag/libde265) (PQ/HLG HEIF software decode)
- [jpegxr](https://github.com/bvibber/jpegxr)
- [OpenJPEG](https://github.com/uclouvain/openjpeg)
- [XZ](https://github.com/tukaani-project/xz) and [Nettle](https://gitlab.com/gnutls/nettle)
# License
Copyright 2014-2019 Hippo Seven
Copyright 2020-2022 NekoInverter
Copyright 2022-2023 Tarsin Norbin
Copyright 2023-2024 Foolbar
LocalViewer is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
LocalViewer is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with EhViewer. If not, see .