https://github.com/xinntao/handyview
Handy image viewer based on PyQt5. Convenient for viewing and comparing :-)
https://github.com/xinntao/handyview
handyview handyviewer image-viewer pyqt5 zoom
Last synced: 8 months ago
JSON representation
Handy image viewer based on PyQt5. Convenient for viewing and comparing :-)
- Host: GitHub
- URL: https://github.com/xinntao/handyview
- Owner: xinntao
- License: mit
- Created: 2018-04-30T07:11:49.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2024-09-03T21:35:48.000Z (over 1 year ago)
- Last Synced: 2025-09-25T14:54:13.639Z (8 months ago)
- Topics: handyview, handyviewer, image-viewer, pyqt5, zoom
- Language: Python
- Homepage: http://xinntao.github.io/
- Size: 7.88 MB
- Stars: 641
- Watchers: 12
- Forks: 66
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
##
[](https://github.com/xinntao/HandyView/releases)

[](https://pypi.org/project/handyview/)
[](https://github.com/xinntao/HandyView/blob/master/LICENSE)
[](https://github.com/xinntao/HandyView/blob/master/.github/workflows/pylint.yml)
[](https://github.com/xinntao/HandyView/blob/master/.github/workflows/publish-pip.yml)
[](https://github.com/xinntao/HandyView/blob/master/.github/workflows/release.yml)
đģ[**Executable files**](https://github.com/xinntao/HandyView/releases) **|** đ§[**Installation**](#-Installation) **|** đ[**äŊŋį¨č¯´æ**](docs)
HandyView is a **handy image viewer** for convenient viewing and comparing. It is developed with PyQt5.
---
```Handy``` *Series*: ââ
[HandyView](https://github.com/xinntao/HandyView) â
[HandyFigure](https://github.com/xinntao/HandyFigure) â
[HandyCrawler](https://github.com/xinntao/HandyCrawler)
â
[HandyWriting](https://github.com/xinntao/HandyWriting)
## đ§ Installation
### 
1. Download the pre-compiled executable zip file from the [release page](https://github.com/xinntao/HandyView/releases).
2. Unzip the file
3. Set HandyView as the default image viewer, so that you can **double-click the image to open** HandyView.
### 
1. Download the handyviewer.dmg from the [release page](https://github.com/xinntao/HandyView/releases) and install.
2. If you fail to install the app, you may first need to [disable gatekeeper](https://disable-gatekeeper.github.io/) first. You should be aware of the risk of [disabling gatekeeper](https://disable-gatekeeper.github.io/).
3. Set HandyView as the default image viewer (use `cmd+i`), so that you can **double-click the image to open** HandyView.
### 
I used the early version of HandyView on Ubuntu. The current version is not tested on Ubuntu and may be out-of-date.
1. Clone this repo `git clone https://github.com/xinntao/HandyView.git`
1. How to double click to open an image
1. Modify the HandyView.desktop file - *Exec & Icon*
1. Copy the .desktop file to `/usr/share/applications`
1. How to change the default image viewer
1. Right click an image
1. Go to `Properties` -> `Open With`
1. Choose *HandyView*
### 
For python user, you can also launch HandyView from the command line:
1. Clone repo and install dependent packages
```bash
git clone https://github.com/xinntao/HandyView.git
cd HandyView
pip install -r requirements.txt
```
2. Run
```bash
python -m handyview.handyviewer [image_path]
```
## :sparkles: Features
- Switch among images **with fixed zoom ration**, which is useful when comparing image details. (Unfortunately, I cannot find such a image viewer and this is the initial motivation to develop HandyView).
- Various comparison modes.
- Show basic image information, *e.g.*, image path, shape, size, color type, zoom ration, etc.
- Show the position and color in the current mouse cursor.
- Draw rectangles on images and show the start and end position.
## :eyes: Screenshot
- Current screenshot
- Switch among images with **fixed zoom ratio**
- Compare images in two-column or three-column modes
- Show the position and color of the current mouse cursor
- Draw rectangles and show the start and end positions
## Compile to executable program
For Windows and MacOS users, you can find the instructions of compiling the executable program from [how-to-build](how_to_build.md).
## :book: Document (On the way)
The basic operation (such as shortcut keys) could be found in the *Help* button in the toolbar.
## :hourglass_flowing_sand: TODO list
- [ ] preview mode
- [ ] show zoom info for each folder (store in database)
- [ ] drag together in the multi-view comparison mode
### Editing operation
- [ ] Simple image edit: crop, resize, color conversion, etc
- [ ] Draw rectangular and enlarged the area
- [ ] Make GIF easily
## :books: References
- [Qt5 doc](https://doc.qt.io/qt-5/)
- [PyQt5 doc](https://doc.qt.io/qtforpython/api.html)
- [Qt Key](https://doc.qt.io/archives/qtjambi-4.5.2_01/com/trolltech/qt/core/Qt.Key.html)
## :scroll: License and Acknowledgement
This project is released under the [MIT license](./LICENSE).
### Icons
I have used the icons from [flaticon](www.flaticon.com). The following are the source links.
| Icon | Link | Icon | Link | Icon |Link|
| :--- | :---: | :--- | :---: | :--- | :---: |
|
| [Open](https://www.flaticon.com/free-icon/open_3143203?term=file%20open&page=1&position=1) |
|[History](https://www.flaticon.com/free-icon/timer_2921268) |
|[Refresh](https://www.flaticon.com/free-icon/reuse_3299869?term=refresh&page=1&position=16) |
|
| [Index](https://www.flaticon.com/free-icon/index_2807595?term=index&page=1&position=8) |
|[Include](https://www.flaticon.com/free-icon/add_2921226) |
|[Exclude](https://www.flaticon.com/free-icon/remove_2921203) |
|
| [Compare](https://www.flaticon.com/free-icon/file_748614?term=compare&page=1&position=17) |
|[Clear comparison](https://www.flaticon.com/free-icon/eraser_3277337?term=clear&page=1&position=5) |
|[Help](https://www.flaticon.com/free-icon/information-point_4231321?term=help&page=1&position=87&page=1&position=87)|
|
| [Main canvas](https://www.flaticon.com/free-icon/image_3603103) |
|[Compare canvas](https://www.flaticon.com/free-icon/portraits_3603402) |
|[Preview canvas](https://www.flaticon.com/free-icon/pieces_3603403)|
|
| [Fingerprint](https://www.flaticon.com/free-icon/fingerprint_2313448?term=fingerprint&page=1&position=7) |
| [Auto Zoom](https://www.flaticon.com/premium-icon/target_4723850?term=target%20lens&page=1&position=5&page=1&position=5&related_id=4723850&origin=search) | | |
|
| [Image](https://www.flaticon.com/free-icon/image_1829589) |
| [Crop](https://www.flaticon.com/free-icon/crop_3342178) |
| [Video](https://www.flaticon.com/free-icon/facebook_4406124) |
(pip install pyqt5 -i --trusted-host mirrors.xxx.com)
## :e-mail: Contact
If you have any question, please open an issue or email `xintao.wang@outlook.com`.