Qt5 image viewer with optional video support

Overview

qimgv | Current version: 1.0.2

Image viewer. Fast, easy to use. Optional video support.

Screenshots

Main window & panel Folder view Settings window
img1 img2 img3

Key features:

  • Simple UI

  • Fast

  • Easy to use

  • Fully configurable, including themes, shortcuts

  • High quality scaling

  • Basic image editing: Crop, Rotate and Resize

  • Ability to quickly copy / move images to different folders

  • Experimental video playback via libmpv

  • Folder view mode

  • Ability to run shell scripts

Default control scheme:

Action Shortcut
Next image Right arrow / MouseWheel
Previous image Left arrow / MouseWheel
Goto first image Home
Goto last image End
Zoom in Ctrl+MouseWheel / Crtl+Up
Zoom out Ctrl+MouseWheel / Crtl+Down
Zoom (alt. method) Hold right mouse button & move up / down
Fit mode: window 1
Fit mode: width 2
Fit mode: 1:1 (no scaling) 3
Switch fit modes Space
Toggle fullscreen mode DoubleClick / F / F11
Exit fullscreen mode Esc
Show EXIF panel I
Crop image X
Resize image R
Rotate left Ctrl+L
Rotate Right Ctrl+R
Open containing directory Ctrl+D
Slideshow mode ~
Shuffle mode Ctrl+~
Quick copy C
Quick move M
Move to trash Delete
Delete file Shift+Delete
Save Ctrl+S
Save As Ctrl+Shift+S
Folder view Enter / Backspace
Open Ctrl+O
Print / Export PDF Ctrl+P
Settings P
Exit application Esc / Ctrl+Q / Alt+X / MiddleClick

... and more.

Note: you can configure every shortcut by going to Settings > Controls

User interface

The idea is to have a uncluttered, simple and easy to use UI. You can see UI elements only when you need them.

There is a pull-down panel with thumbnails, as well as folder view. You can also bring up a context menu via right click.

Using quick copy / quick move panels

Bring up the panel with C or M shortcut. You will see 9 destination directories, click on the folder icon to change them.

With panel visible, use 1 - 9 keys to copy/move current image to corresponding directory.

When you are done press C or M again to hide the panel.

Running scripts

You can run custom scripts on a current image.

Open Settings > Scripts. Press Add. Here you can choose between a shell command and a shell script.

Example of a command:

convert %file% %file%_.pdf

Example of a shell script file ($1 will be image path):

#!/bin/bash
gimp "$1"

Note: The script file must be an executable. Also, "shebang" (#!/bin/bash) needs to be present.

When you've created your script go to Settings > Controls > Add, then select it and assign a shortcut like for any regular action.

HiDPI (Linux / MacOS only)

If qimgv appears too small / too big on your display, you can override the scale factor. Example:

QT_SCALE_FACTOR="1.5" qimgv /path/to/image.png

You can put it in qimgv.desktop file to make it permanent. Using values less than 1.0 is not supported.

qimgv should also obey the global scale factor set in KDE's systemsettings.

High quality scaling

qimgv supports nicer scaling filters when compiled with opencv support (ON by default, but might vary depending on your linux distribution). Filter options are available in Settings > Scaling. Bicubic or bilinear+sharpen is recommended.

Additional image formats

qimgv can open some extra formats via third-party image plugins. All of them are included with windows package.

Format Plugin
JPEG-XL github.com/novomesk/qt-jpegxl-image-plugin
AVIF github.com/novomesk/qt-avif-image-plugin
APNG github.com/Skycoder42/QtApng
HEIF / HEIC github.com/jakar/qt-heif-image-plugin
RAW https://gitlab.com/mardy/qtraw

Installation

Windows builds

Grab the latest release here

Windows builds are portable (everything is contained within install folder). Installer additionally sets up file associations.

NOTE: -video variants include mpv for video support

GNU+Linux

Arch Linux / Manjaro / etc.

AUR package:

qimgv-git

Ubuntu / Linux Mint / Pop!_OS / etc.

sudo add-apt-repository ppa:easymodo/qimgv
sudo apt update
sudo apt install qimgv

Alternative package with kde support:

sudo apt install qimgv-kde

Fedora

sudo dnf install qimgv

OpenSUSE

zypper install qimgv

Gentoo

emerge qimgv

Void linux

xbps-install -S qimgv

Alpine Linux

apk add qimgv

This list may be incomplete.

Compiling from source

See Compiling qimgv from source on the wiki

Donate

If you wish to throw me a few bucks, you can do it here:

Donate

Any support is appreciated!

Comments
  • Copy image to clipboard compatibility issues

    Copy image to clipboard compatibility issues

    I've noticed that when using the Ctrl+C copy image to clipboard feature in qimgv, some things will accept it being pasted while others that should, won't. I end up having to use Honeyview to copy the image to clipboard instead, and then it works on everything I expect it to work on.

    I've been wanting to wait until I had something more substantive than this, but I'm honestly not sure how I can compare the differences between qimgv's copy image to clipboard and Honeyview's. Do you know of any way to do this so I can describe this issue in greater detail? Or I suppose the alternative is you can try Honeyview and compare for yourself.

    opened by ImportTaste 11
  • Suse Thumbleweed: Video does not work

    Suse Thumbleweed: Video does not work

    Installed qimgv using the official repo

    use: qimgv /directory/with/movies

    result: motage screen with movie previews (working)

    use: qimgv /path/to/movie/file

    result: message: [VideoPlayerInitProxy] Error - could not load player library Transparent video screen is visible

    Compiled my own versions (used: "zypper source-install -D qimgv" to get the Suse patches". Applied only "qimgv-includepath.patch" and "qimgv-nosharedlib.patch") Was a bit toying around. The "createPlayerWidgetFn fn" seems also null?

    opened by EdwinKM 9
  • Option to set the focus point when toggling 1:1

    Option to set the focus point when toggling 1:1

    It used to be that when toggling 1:1 and the image is bigger than the screen the image would be aligned/snapped to top, but latest patches changed it to middle, so top & bottom parts of the image are not visible without scrolling.

    I'd prefer it to revert back as it's annoying to read comic pages like that, but I understand that might just be my preference, so lets add an option? :)

    opened by darsain 9
  • Core cumped when opening any video

    Core cumped when opening any video

    Opening a video file (mp4, webm) either directly or browsing a folder makes qimgv instantly crash.

    katt@main ~ » qimgv /home/katt/Videos/YWMaGkw1KmslOJV_.mp4
    terminate called after throwing an instance of 'std::runtime_error'
      what():  could not initialize OpenGL
    [1]    12298 abort (core dumped)  qimgv /home/katt/Videos/YWMaGkw1KmslOJV_.mp4
    

    Arch Linux Linux 5.8.7-zen1-1-zen mesa 20.1.7-1 qimgv-git v0.9.2.alpha.r0.g7b7f9c1-1 mpv-git 0.32.0_714_g5a4fc8684e-1

    Not sure what other information could be useful, playing videos in mpv works fine and glxgears (OpenGL) works just fine.

                    Stack trace of thread 12298:
                    #0  0x00007fef6976f615 raise (libc.so.6 + 0x3d615)
                    #1  0x00007fef69758862 abort (libc.so.6 + 0x26862)
                    #2  0x00007fef69af186a _ZN9__gnu_cxx27__verbose_terminate_handlerEv (libstdc++.so.6 + 0x9686a)
                    #3  0x00007fef69afdd9a _ZN10__cxxabiv111__terminateEPFvvE (libstdc++.so.6 + 0xa2d9a)
                    #4  0x00007fef69afde07 _ZSt9terminatev (libstdc++.so.6 + 0xa2e07)
                    #5  0x00007fef69afe0ae __cxa_throw (libstdc++.so.6 + 0xa30ae)
                    #6  0x00007fef5000a09f _ZN9MpvWidget12initializeGLEv (player_mpv.so + 0x809f)
                    #7  0x00007fef6d9073f9 _ZN13QOpenGLWidget5eventEP6QEvent (libQt5Widgets.so.5 + 0x1ba3f9)
                    #8  0x00007fef6d8a6702 _ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent (libQt5Widgets.so.5 + 0x159702)
                    #9  0x00007fef6b25879a _ZN16QCoreApplication15notifyInternal2EP7QObjectP6QEvent (libQt5Core.so.5 + 0x2b179a)
                    #10 0x00007fef6d8d96e8 n/a (libQt5Widgets.so.5 + 0x18c6e8)
                    #11 0x00007fef6d8d96bd n/a (libQt5Widgets.so.5 + 0x18c6bd)
                    #12 0x00007fef6d8e8f8a _ZN7QWidget9setParentEPS_6QFlagsIN2Qt10WindowTypeEE (libQt5Widgets.so.5 + 0x19bf8a)
                    #13 0x00005599b1a2c7c4 _ZN20VideoPlayerInitProxy10initPlayerEv (qimgv + 0x1197c4)
                    #14 0x00005599b1a2c0fa _ZN20VideoPlayerInitProxy4showEv (qimgv + 0x1190fa)
                    #15 0x00005599b1a2d548 _ZN12ViewerWidget17enableVideoPlayerEv (qimgv + 0x11a548)
                    #16 0x00005599b1a2e40b _ZN12ViewerWidget9showVideoE7QString (qimgv + 0x11b40b)
                    #17 0x00005599b19db0c7 _ZN2MW8setVideoE7QString (qimgv + 0xc80c7)
                    #18 0x00005599b1983792 _ZN4Core11guiSetImageESt10shared_ptrI5ImageE (qimgv + 0x70792)
                    #19 0x00005599b19840a5 _ZN4Core16onModelItemReadyESt10shared_ptrI5ImageE (qimgv + 0x710a5)
                    #20 0x00005599b1986b19 _ZN9QtPrivate11FunctorCallINS_11IndexesListIJLi0EEEENS_4ListIJSt10shared_ptrI5ImageEEEEvM4CoreFvS6_EE4callESA_PS8_PPv (qimgv + 0x73b19)
                    #21 0x00007fef6b28fa06 n/a (libQt5Core.so.5 + 0x2e8a06)
                    #22 0x00005599b1963716 _ZN14DirectoryModel9itemReadyESt10shared_ptrI5ImageE (qimgv + 0x50716)
                    #23 0x00005599b199dbb8 _ZN14DirectoryModel4loadE7QStringb (qimgv + 0x8abb8)
                    #24 0x00005599b197f854 _ZN4Core9loadIndexEibb (qimgv + 0x6c854)
                    #25 0x00005599b198044f _ZN4Core8loadPathE7QString (qimgv + 0x6d44f)
                    #26 0x00005599b195ee3b main (qimgv + 0x4be3b)
                    #27 0x00007fef6975a152 __libc_start_main (libc.so.6 + 0x28152)
                    #28 0x00005599b195f7ee _start (qimgv + 0x4c7ee)
                    
                    Stack trace of thread 12301:
                    #0  0x00007fef6982746f __poll (libc.so.6 + 0xf546f)
                    #1  0x00007fef68db3168 n/a (libglib-2.0.so.0 + 0xa0168)
                    #2  0x00007fef68d64221 g_main_context_iteration (libglib-2.0.so.0 + 0x51221)
                    #3  0x00007fef6b2b1311 _ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE (libQt5Core.so.5 + 0x30a311)
                    #4  0x00007fef6b25711c _ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE (libQt5Core.so.5 + 0x2b011c)
                    #5  0x00007fef6b072c32 _ZN7QThread4execEv (libQt5Core.so.5 + 0xcbc32)
                    #6  0x00007fef654e4098 n/a (libQt5DBus.so.5 + 0x17098)
                    #7  0x00007fef6b073e0f n/a (libQt5Core.so.5 + 0xcce0f)
                    #8  0x00007fef697193e9 start_thread (libpthread.so.0 + 0x93e9)
                    #9  0x00007fef69832293 __clone (libc.so.6 + 0x100293)
                    
                    Stack trace of thread 12302:
                    #0  0x00007fef6971f6a2 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf6a2)
                    #1  0x00007fef5c686e3c n/a (radeonsi_dri.so + 0x4b0e3c)
                    #2  0x00007fef5c685838 n/a (radeonsi_dri.so + 0x4af838)
                    #3  0x00007fef697193e9 start_thread (libpthread.so.0 + 0x93e9)
                    #4  0x00007fef69832293 __clone (libc.so.6 + 0x100293)
                    
                    Stack trace of thread 12299:
                    #0  0x00007fef6982746f __poll (libc.so.6 + 0xf546f)
                    #1  0x00007fef65a0963b n/a (libxcb.so.1 + 0xc63b)
                    #2  0x00007fef65a0b37b xcb_wait_for_event (libxcb.so.1 + 0xe37b)
                    #3  0x00007fef655fbc51 n/a (libQt5XcbQpa.so.5 + 0x5dc51)
                    #4  0x00007fef6b073e0f n/a (libQt5Core.so.5 + 0xcce0f)
                    #5  0x00007fef697193e9 start_thread (libpthread.so.0 + 0x93e9)
                    #6  0x00007fef69832293 __clone (libc.so.6 + 0x100293)
                    
                    Stack trace of thread 12312:
                    #0  0x00007fef6971f6a2 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf6a2)
                    #1  0x00007fef5c686e3c n/a (radeonsi_dri.so + 0x4b0e3c)
                    #2  0x00007fef5c685838 n/a (radeonsi_dri.so + 0x4af838)
                    #3  0x00007fef697193e9 start_thread (libpthread.so.0 + 0x93e9)
                    #4  0x00007fef69832293 __clone (libc.so.6 + 0x100293)
                    
                    Stack trace of thread 12308:
                    #0  0x00007fef6971f6a2 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf6a2)
                    #1  0x00007fef5c686e3c n/a (radeonsi_dri.so + 0x4b0e3c)
                    #2  0x00007fef5c685838 n/a (radeonsi_dri.so + 0x4af838)
                    #3  0x00007fef697193e9 start_thread (libpthread.so.0 + 0x93e9)
                    #4  0x00007fef69832293 __clone (libc.so.6 + 0x100293)
                    
                    Stack trace of thread 12329:
                    #0  0x00007fef6982cfcb __mprotect (libc.so.6 + 0xfafcb)
                    #1  0x00007fef697bb217 sysmalloc (libc.so.6 + 0x89217)
                    #2  0x00007fef697bcd6e _int_malloc (libc.so.6 + 0x8ad6e)
                    #3  0x00007fef697bde51 malloc (libc.so.6 + 0x8be51)
                    #4  0x00007fef6557c20d n/a (libfontconfig.so.1 + 0x2920d)
                    #5  0x00007fef6557f2f8 n/a (libfontconfig.so.1 + 0x2c2f8)
                    #6  0x00007fef68c5d9e8 n/a (libexpat.so.1 + 0xc9e8)
                    #7  0x00007fef68c5bddd n/a (libexpat.so.1 + 0xaddd)
                    #8  0x00007fef68c5f621 n/a (libexpat.so.1 + 0xe621)
                    #9  0x00007fef68c618cc XML_ParseBuffer (libexpat.so.1 + 0x108cc)
                    #10 0x00007fef6557d025 n/a (libfontconfig.so.1 + 0x2a025)
                    #11 0x00007fef6557d658 n/a (libfontconfig.so.1 + 0x2a658)
                    #12 0x00007fef6557d714 n/a (libfontconfig.so.1 + 0x2a714)
                    #13 0x00007fef6557dea2 n/a (libfontconfig.so.1 + 0x2aea2)
                    #14 0x00007fef68c5d9e8 n/a (libexpat.so.1 + 0xc9e8)
                    #15 0x00007fef68c5bddd n/a (libexpat.so.1 + 0xaddd)
                    #16 0x00007fef68c5f621 n/a (libexpat.so.1 + 0xe621)
                    #17 0x00007fef68c618cc XML_ParseBuffer (libexpat.so.1 + 0x108cc)
                    #18 0x00007fef6557d025 n/a (libfontconfig.so.1 + 0x2a025)
                    #19 0x00007fef6557d658 n/a (libfontconfig.so.1 + 0x2a658)
                    #20 0x00007fef40039c8b n/a (libass.so.9 + 0x24c8b)
                    #21 0x00007fef4002172b n/a (libass.so.9 + 0xc72b)
                    #22 0x00007fef40028a92 ass_set_fonts (libass.so.9 + 0x13a92)
                    #23 0x00007fef402113a1 mp_ass_configure_fonts (libmpv.so.1 + 0xdb3a1)
                    #24 0x00007fef402186ca create_ass_renderer (libmpv.so.1 + 0xe26ca)
                    #25 0x00007fef40218d66 update_external (libmpv.so.1 + 0xe2d66)
                    #26 0x00007fef401e5b4f cmd_osd_overlay (libmpv.so.1 + 0xafb4f)
                    #27 0x00007fef401f1daa run_command (libmpv.so.1 + 0xbbdaa)
                    #28 0x00007fef401e140c run_client_command (libmpv.so.1 + 0xab40c)
                    #29 0x00007fef401e31ed mpv_command_node (libmpv.so.1 + 0xad1ed)
                    #30 0x00007fef401fdee2 script_command_native (libmpv.so.1 + 0xc7ee2)
                    #31 0x00007fef206b2936 n/a (libluajit-5.1.so.2 + 0x8936)
                    #32 0x00007fef206f8790 lua_pcall (libluajit-5.1.so.2 + 0x4e790)
                    #33 0x00007fef401fc710 script_autofree_trampoline (libmpv.so.1 + 0xc6710)
                    #34 0x00007fef206b2936 n/a (libluajit-5.1.so.2 + 0x8936)
                    #35 0x00007fef401fce9a load_scripts (libmpv.so.1 + 0xc6e9a)
                    #36 0x00007fef206b2936 n/a (libluajit-5.1.so.2 + 0x8936)
                    #37 0x00007fef206f8790 lua_pcall (libluajit-5.1.so.2 + 0x4e790)
                    #38 0x00007fef401fdcb6 run_lua (libmpv.so.1 + 0xc7cb6)
                    #39 0x00007fef206b2936 n/a (libluajit-5.1.so.2 + 0x8936)
                    #40 0x00007fef206f87cc lua_cpcall (libluajit-5.1.so.2 + 0x4e7cc)
                    #41 0x00007fef401fb3fe load_lua (libmpv.so.1 + 0xc53fe)
                    #42 0x00007fef40205d87 run_script (libmpv.so.1 + 0xcfd87)
                    #43 0x00007fef4020625b script_thread (libmpv.so.1 + 0xd025b)
                    #44 0x00007fef697193e9 start_thread (libpthread.so.0 + 0x93e9)
                    #45 0x00007fef69832293 __clone (libc.so.6 + 0x100293)
                    
                    Stack trace of thread 12309:
                    #0  0x00007fef6971f6a2 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf6a2)
                    #1  0x00007fef5c686e3c n/a (radeonsi_dri.so + 0x4b0e3c)
                    #2  0x00007fef5c685838 n/a (radeonsi_dri.so + 0x4af838)
                    #3  0x00007fef697193e9 start_thread (libpthread.so.0 + 0x93e9)
                    #4  0x00007fef69832293 __clone (libc.so.6 + 0x100293)
                    
                    Stack trace of thread 12311:
                    #0  0x00007fef6971f6a2 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf6a2)
                    #1  0x00007fef5c686e3c n/a (radeonsi_dri.so + 0x4b0e3c)
                    #2  0x00007fef5c685838 n/a (radeonsi_dri.so + 0x4af838)
                    #3  0x00007fef697193e9 start_thread (libpthread.so.0 + 0x93e9)
                    #4  0x00007fef69832293 __clone (libc.so.6 + 0x100293)
                    
                    Stack trace of thread 12315:
                    #0  0x00007fef6971f6a2 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf6a2)
                    #1  0x00007fef5c686e3c n/a (radeonsi_dri.so + 0x4b0e3c)
                    #2  0x00007fef5c685838 n/a (radeonsi_dri.so + 0x4af838)
                    #3  0x00007fef697193e9 start_thread (libpthread.so.0 + 0x93e9)
                    #4  0x00007fef69832293 __clone (libc.so.6 + 0x100293)
                    
                    Stack trace of thread 12307:
                    #0  0x00007fef6971f6a2 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf6a2)
                    #1  0x00007fef5c686e3c n/a (radeonsi_dri.so + 0x4b0e3c)
                    #2  0x00007fef5c685838 n/a (radeonsi_dri.so + 0x4af838)
                    #3  0x00007fef697193e9 start_thread (libpthread.so.0 + 0x93e9)
                    #4  0x00007fef69832293 __clone (libc.so.6 + 0x100293)
                    
                    Stack trace of thread 12322:
                    #0  0x00007fef6971f6a2 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf6a2)
                    #1  0x00007fef5c686e3c n/a (radeonsi_dri.so + 0x4b0e3c)
                    #2  0x00007fef5c685838 n/a (radeonsi_dri.so + 0x4af838)
                    #3  0x00007fef697193e9 start_thread (libpthread.so.0 + 0x93e9)
                    #4  0x00007fef69832293 __clone (libc.so.6 + 0x100293)
                    
                    Stack trace of thread 12305:
                    #0  0x00007fef6971f6a2 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf6a2)
                    #1  0x00007fef5c686e3c n/a (radeonsi_dri.so + 0x4b0e3c)
                    #2  0x00007fef5c685838 n/a (radeonsi_dri.so + 0x4af838)
                    #3  0x00007fef697193e9 start_thread (libpthread.so.0 + 0x93e9)
                    #4  0x00007fef69832293 __clone (libc.so.6 + 0x100293)
                    
                    Stack trace of thread 12320:
                    #0  0x00007fef6971f6a2 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf6a2)
                    #1  0x00007fef5c686e3c n/a (radeonsi_dri.so + 0x4b0e3c)
                    #2  0x00007fef5c685838 n/a (radeonsi_dri.so + 0x4af838)
                    #3  0x00007fef697193e9 start_thread (libpthread.so.0 + 0x93e9)
                    #4  0x00007fef69832293 __clone (libc.so.6 + 0x100293)
                    
                    Stack trace of thread 12328:
                    #0  0x00007fef6971f6a2 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf6a2)
                    #1  0x00007fef401c902c mp_dispatch_lock (libmpv.so.1 + 0x9302c)
                    #2  0x00007fef401e13dd lock_core (libmpv.so.1 + 0xab3dd)
                    #3  0x00007fef401fe7ab script_commandv (libmpv.so.1 + 0xc87ab)
                    #4  0x00007fef206b2936 n/a (libluajit-5.1.so.2 + 0x8936)
                    #5  0x00007fef401fce9a load_scripts (libmpv.so.1 + 0xc6e9a)
                    #6  0x00007fef206b2936 n/a (libluajit-5.1.so.2 + 0x8936)
                    #7  0x00007fef206f8790 lua_pcall (libluajit-5.1.so.2 + 0x4e790)
                    #8  0x00007fef401fdcb6 run_lua (libmpv.so.1 + 0xc7cb6)
                    #9  0x00007fef206b2936 n/a (libluajit-5.1.so.2 + 0x8936)
                    #10 0x00007fef206f87cc lua_cpcall (libluajit-5.1.so.2 + 0x4e7cc)
                    #11 0x00007fef401fb3fe load_lua (libmpv.so.1 + 0xc53fe)
                    #12 0x00007fef40205d87 run_script (libmpv.so.1 + 0xcfd87)
                    #13 0x00007fef4020625b script_thread (libmpv.so.1 + 0xd025b)
                    #14 0x00007fef697193e9 start_thread (libpthread.so.0 + 0x93e9)
                    #15 0x00007fef69832293 __clone (libc.so.6 + 0x100293)
                    
                    Stack trace of thread 12314:
                    #0  0x00007fef6971f6a2 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf6a2)
                    #1  0x00007fef5c686e3c n/a (radeonsi_dri.so + 0x4b0e3c)
                    #2  0x00007fef5c685838 n/a (radeonsi_dri.so + 0x4af838)
                    #3  0x00007fef697193e9 start_thread (libpthread.so.0 + 0x93e9)
                    #4  0x00007fef69832293 __clone (libc.so.6 + 0x100293)
                    
                    Stack trace of thread 12306:
                    #0  0x00007fef6971f6a2 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf6a2)
                    #1  0x00007fef5c686e3c n/a (radeonsi_dri.so + 0x4b0e3c)
                    #2  0x00007fef5c685838 n/a (radeonsi_dri.so + 0x4af838)
                    #3  0x00007fef697193e9 start_thread (libpthread.so.0 + 0x93e9)
                    #4  0x00007fef69832293 __clone (libc.so.6 + 0x100293)
                    
                    Stack trace of thread 12313:
                    #0  0x00007fef6971f6a2 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf6a2)
                    #1  0x00007fef5c686e3c n/a (radeonsi_dri.so + 0x4b0e3c)
                    #2  0x00007fef5c685838 n/a (radeonsi_dri.so + 0x4af838)
                    #3  0x00007fef697193e9 start_thread (libpthread.so.0 + 0x93e9)
                    #4  0x00007fef69832293 __clone (libc.so.6 + 0x100293)
                    
                    Stack trace of thread 12317:
                    #0  0x00007fef6971f6a2 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf6a2)
                    #1  0x00007fef5c686e3c n/a (radeonsi_dri.so + 0x4b0e3c)
                    #2  0x00007fef5c685838 n/a (radeonsi_dri.so + 0x4af838)
                    #3  0x00007fef697193e9 start_thread (libpthread.so.0 + 0x93e9)
                    #4  0x00007fef69832293 __clone (libc.so.6 + 0x100293)
                    
                    Stack trace of thread 12327:
                    #0  0x00007fef6971f9c8 pthread_cond_timedwait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf9c8)
                    #1  0x00007fef401e0dc5 wait_wakeup (libmpv.so.1 + 0xaadc5)
                    #2  0x00007fef401e2585 mpv_wait_event (libmpv.so.1 + 0xac585)
                    #3  0x00007fef401fde1b script_raw_wait_event (libmpv.so.1 + 0xc7e1b)
                    #4  0x00007fef206b2936 n/a (libluajit-5.1.so.2 + 0x8936)
                    #5  0x00007fef206f8790 lua_pcall (libluajit-5.1.so.2 + 0x4e790)
                    #6  0x00007fef401fc710 script_autofree_trampoline (libmpv.so.1 + 0xc6710)
                    #7  0x00007fef206b2936 n/a (libluajit-5.1.so.2 + 0x8936)
                    #8  0x00007fef401fce9a load_scripts (libmpv.so.1 + 0xc6e9a)
                    #9  0x00007fef206b2936 n/a (libluajit-5.1.so.2 + 0x8936)
                    #10 0x00007fef206f8790 lua_pcall (libluajit-5.1.so.2 + 0x4e790)
                    #11 0x00007fef401fdcb6 run_lua (libmpv.so.1 + 0xc7cb6)
                    #12 0x00007fef206b2936 n/a (libluajit-5.1.so.2 + 0x8936)
                    #13 0x00007fef206f87cc lua_cpcall (libluajit-5.1.so.2 + 0x4e7cc)
                    #14 0x00007fef401fb3fe load_lua (libmpv.so.1 + 0xc53fe)
                    #15 0x00007fef40205d87 run_script (libmpv.so.1 + 0xcfd87)
                    #16 0x00007fef4020625b script_thread (libmpv.so.1 + 0xd025b)
                    #17 0x00007fef697193e9 start_thread (libpthread.so.0 + 0x93e9)
                    #18 0x00007fef69832293 __clone (libc.so.6 + 0x100293)
                    
                    Stack trace of thread 12319:
                    #0  0x00007fef6971f6a2 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf6a2)
                    #1  0x00007fef5c686e3c n/a (radeonsi_dri.so + 0x4b0e3c)
                    #2  0x00007fef5c685838 n/a (radeonsi_dri.so + 0x4af838)
                    #3  0x00007fef697193e9 start_thread (libpthread.so.0 + 0x93e9)
                    #4  0x00007fef69832293 __clone (libc.so.6 + 0x100293)
                    
                    Stack trace of thread 12310:
                    #0  0x00007fef6971f6a2 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf6a2)
                    #1  0x00007fef5c686e3c n/a (radeonsi_dri.so + 0x4b0e3c)
                    #2  0x00007fef5c685838 n/a (radeonsi_dri.so + 0x4af838)
                    #3  0x00007fef697193e9 start_thread (libpthread.so.0 + 0x93e9)
                    #4  0x00007fef69832293 __clone (libc.so.6 + 0x100293)
                    
                    Stack trace of thread 12318:
                    #0  0x00007fef6971f6a2 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf6a2)
                    #1  0x00007fef5c686e3c n/a (radeonsi_dri.so + 0x4b0e3c)
                    #2  0x00007fef5c685838 n/a (radeonsi_dri.so + 0x4af838)
                    #3  0x00007fef697193e9 start_thread (libpthread.so.0 + 0x93e9)
                    #4  0x00007fef69832293 __clone (libc.so.6 + 0x100293)
                    
                    Stack trace of thread 12324:
                    #0  0x00007fef6982746f __poll (libc.so.6 + 0xf546f)
                    #1  0x00005599b19cd7d4 poll (qimgv + 0xba7d4)
                    #2  0x00007fef6b28fa06 n/a (libQt5Core.so.5 + 0x2e8a06)
                    #3  0x00007fef6b071bab _ZN7QThread7startedENS_14QPrivateSignalE (libQt5Core.so.5 + 0xcabab)
                    #4  0x00007fef6b073df5 n/a (libQt5Core.so.5 + 0xccdf5)
                    #5  0x00007fef697193e9 start_thread (libpthread.so.0 + 0x93e9)
                    #6  0x00007fef69832293 __clone (libc.so.6 + 0x100293)
                    
                    Stack trace of thread 12316:
                    #0  0x00007fef6971f6a2 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf6a2)
                    #1  0x00007fef5c686e3c n/a (radeonsi_dri.so + 0x4b0e3c)
                    #2  0x00007fef5c685838 n/a (radeonsi_dri.so + 0x4af838)
                    #3  0x00007fef697193e9 start_thread (libpthread.so.0 + 0x93e9)
                    #4  0x00007fef69832293 __clone (libc.so.6 + 0x100293)
                    
                    Stack trace of thread 12331:
                    #0  0x00007fef6971f6a2 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf6a2)
                    #1  0x00007fef5c686e3c n/a (radeonsi_dri.so + 0x4b0e3c)
                    #2  0x00007fef5c685838 n/a (radeonsi_dri.so + 0x4af838)
                    #3  0x00007fef697193e9 start_thread (libpthread.so.0 + 0x93e9)
                    #4  0x00007fef69832293 __clone (libc.so.6 + 0x100293)
                    
                    Stack trace of thread 12332:
                    #0  0x00007fef6971f6a2 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf6a2)
                    #1  0x00007fef5c686e3c n/a (radeonsi_dri.so + 0x4b0e3c)
                    #2  0x00007fef5c685838 n/a (radeonsi_dri.so + 0x4af838)
                    #3  0x00007fef697193e9 start_thread (libpthread.so.0 + 0x93e9)
                    #4  0x00007fef69832293 __clone (libc.so.6 + 0x100293)
                    
                    Stack trace of thread 12304:
                    #0  0x00007fef6971f6a2 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf6a2)
                    #1  0x00007fef5c686e3c n/a (radeonsi_dri.so + 0x4b0e3c)
                    #2  0x00007fef5c685838 n/a (radeonsi_dri.so + 0x4af838)
                    #3  0x00007fef697193e9 start_thread (libpthread.so.0 + 0x93e9)
                    #4  0x00007fef69832293 __clone (libc.so.6 + 0x100293)
                    
                    Stack trace of thread 12303:
                    #0  0x00007fef6971f6a2 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf6a2)
                    #1  0x00007fef5c686e3c n/a (radeonsi_dri.so + 0x4b0e3c)
                    #2  0x00007fef5c685838 n/a (radeonsi_dri.so + 0x4af838)
                    #3  0x00007fef697193e9 start_thread (libpthread.so.0 + 0x93e9)
                    #4  0x00007fef69832293 __clone (libc.so.6 + 0x100293)
                    
                    Stack trace of thread 12321:
                    #0  0x00007fef6971f6a2 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf6a2)
                    #1  0x00007fef5c686e3c n/a (radeonsi_dri.so + 0x4b0e3c)
                    #2  0x00007fef5c685838 n/a (radeonsi_dri.so + 0x4af838)
                    #3  0x00007fef697193e9 start_thread (libpthread.so.0 + 0x93e9)
                    #4  0x00007fef69832293 __clone (libc.so.6 + 0x100293)
                    
                    Stack trace of thread 12326:
                    #0  0x00007fef6971f6a2 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf6a2)
                    #1  0x00007fef401c8d66 mp_dispatch_queue_process (libmpv.so.1 + 0x92d66)
                    #2  0x00007fef4020209a mp_wait_events (libmpv.so.1 + 0xcc09a)
                    #3  0x00007fef40204a12 mp_idle (libmpv.so.1 + 0xcea12)
                    #4  0x00007fef401fb256 mp_play_files (libmpv.so.1 + 0xc5256)
                    #5  0x00007fef401e2129 core_thread (libmpv.so.1 + 0xac129)
                    #6  0x00007fef697193e9 start_thread (libpthread.so.0 + 0x93e9)
                    #7  0x00007fef69832293 __clone (libc.so.6 + 0x100293)
                    
                    Stack trace of thread 12323:
                    #0  0x00007fef6971f6a2 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf6a2)
                    #1  0x00007fef5c686e3c n/a (radeonsi_dri.so + 0x4b0e3c)
                    #2  0x00007fef5c685838 n/a (radeonsi_dri.so + 0x4af838)
                    #3  0x00007fef697193e9 start_thread (libpthread.so.0 + 0x93e9)
                    #4  0x00007fef69832293 __clone (libc.so.6 + 0x100293)
    
    Reading symbols from /usr/bin/qimgv...
    Reading symbols from /usr/lib/debug/usr/bin/qimgv.debug...
    [New LWP 12298]
    [New LWP 12301]
    [New LWP 12302]
    [New LWP 12299]
    [New LWP 12312]
    [New LWP 12308]
    [New LWP 12329]
    [New LWP 12309]
    [New LWP 12311]
    [New LWP 12315]
    [New LWP 12307]
    [New LWP 12322]
    [New LWP 12305]
    [New LWP 12320]
    [New LWP 12328]
    [New LWP 12314]
    [New LWP 12306]
    [New LWP 12313]
    [New LWP 12317]
    [New LWP 12327]
    [New LWP 12319]
    [New LWP 12310]
    [New LWP 12318]
    [New LWP 12324]
    [New LWP 12316]
    [New LWP 12331]
    [New LWP 12332]
    [New LWP 12304]
    [New LWP 12303]
    [New LWP 12321]
    [New LWP 12326]
    [New LWP 12323]
    [Thread debugging using libthread_db enabled]
    Using host libthread_db library "/usr/lib/libthread_db.so.1".
    Core was generated by `qimgv /home/katt/Videos/YWMaGkw1KmslOJV_.mp4'.
    Program terminated with signal SIGABRT, Aborted.
    #0  0x00007fef6976f615 in raise () from /usr/lib/libc.so.6
    [Current thread is 1 (Thread 0x7fef659e93c0 (LWP 12298))]
    
    opened by kattjevfel 8
  • The procedure entry point ?left@QString@@QEBA?AVI@H@Z

    The procedure entry point ?left@QString@@QEBA?AVI@H@Z

    I keep getting this error when I click on the picture when viewing it:

    The procedure entry point ?left@QString@@QEBA?AVI@H@Z could not be located in the dynamic link library Qt5Core.dll.

    The file is available in the directory where the program is located. I'm running the portable version.

    opened by MNeMoNiCuZ 8
  • When will the installer be available?

    When will the installer be available?

    When will the installer format release be available? 7z format is also not convenient, since not all users have enough knowledge to open it, it is better to zip.

    I ask you, please collect the installer, it's not difficult, programs like Inno Setup can do this without much difficulty.

    The program has been added to my website with approximately 1300 people daily traffic (link).

    opened by mrkaban 8
  • Webp opened but not shown

    Webp opened but not shown

    Windows 10 0.8.6 x64

    When I directly open attached image, Qimgv window opens but shows nothing. When I switch to webp from another image, it shows successfully.

    mbike.webp.zip zip because github doesn't supports webp upload

    opened by Ser-Gen 8
  • Next/prev image actions have non-sequential movement

    Next/prev image actions have non-sequential movement

    In my system with qimgv (git-master) loading the next or previous image in a folder loads a picture that doesn't follow the current one. For example, if the current picture is the 5th out of 10, it may not load the 4th or the 6th.

    System information: Debian Bullseye (testing) qimgv: git-master

    qimgv-non-sequential.zip

    opened by dpalacio 7
  • No seekbar for webm/mp4 clips and can't move files that contain #

    No seekbar for webm/mp4 clips and can't move files that contain #

    Hi,

    I'm running the very latest qimgv that I just compiled and have verified that these two issues are present.

    1. When viewing mp4/webm clips, the seekbar immediately disappears and doesn't show up on hover/mouse move. This used to work in all versions prior to 0.9.0

    2. I've noticed that you cannot move/copy files that contain''#' in the name. Error message says Source file does not exist. To verify, rename any file to test #test.jpg for example and attempt to move it. Also, you cannot rename such files either (empty file rename message box shows up).

    Thanks!

    opened by nick-s-b 7
  • Prevent context menu from appearing off the screen

    Prevent context menu from appearing off the screen

    image

    Generally speaking, most apps will have the context menu spawn going upward rather than downward if the cursor is too far down, leftward instead of rightward if the cursor is too far to the right, or both if both are true.

    opened by ImportTaste 7
  • Zoom in/out doesn't work if plasma mouse gestures are set to RMB

    Zoom in/out doesn't work if plasma mouse gestures are set to RMB

    to be honest i'm not sure if it's something to report. RMB hold and move up/down is great way to control zoom of images, but it collides with plasma gestures (if also set to RMB) — making it impossible to use. i know there are plenty of options which include excluding gestures for specific applications, yet i decided to inform You (@easymodo) that this takes place, and perhaps it's wise in this situation to let user control which button to hold for zoom, just as other keys are controllable. thanks!

    opened by alekksander 7
  • [Feature request] Expose sorting as command line argument

    [Feature request] Expose sorting as command line argument

    There is currently no way to have directory-specific sort settings, i.e. the default sort settings applies to all directories. Implementing this would be nice, but maybe a simpler approach would be to expose sorting as a command line argument. That way a user can have default sorting (e.g. for me A-Z makes the most sense in general because files are usually named with timestamps and probably viewed in order from oldest to newest), while for phone pictures we tend to view photos from newest to oldest created/modified. In this example, A-Z can be set as the default and a simple wrapper command to use qimgv with sorting set to newest to oldest created/modified via command line for ~/pictures/phone is a suitable approach.

    This is useful for viewing files in a directory as a one-off; however, directory-specific settings are still more useful if you're using qimgv to navigate and view files from multiple directories, in which case the problem of the same sort setting applying to all directories still exists.

    I don't believe there's a specific feature request for directory-specific sort settings, but if there isn't, feel free to change the title to that as that is the preferred approach.

    opened by rieje 0
  • Window size error at run time.

    Window size error at run time.

    run the program first and then load the image file, there is no problem.

    However, when I double-click the image file to run it, the image and window size are slightly larger.

    If it's a small picture, it doesn't matter much. However, the big picture where the "screen area limit option" is applied is clearly visible.

    on windows 11, 10 Automated build version,

    opened by Gttrdkn 0
  • Feature Request: Preserve zoom level and pan position when browsing images

    Feature Request: Preserve zoom level and pan position when browsing images

    If the next/previous image I'm changing to has the same dimensions as the current one, it would be nice to be able to preserve the zoom level and pan position. The viewport can switch back to default zoom/fit when the resolution of the image I'm changing to differs from the current one.

    Use case: This would be handy if you want to compare two similar images, for example, say noise levels

    This could be a toggle in the settings.

    opened by mojo-jojo-7 0
  • qimgv crashed when going to the next image

    qimgv crashed when going to the next image

    Hi I use qimgv 1.0.2-2 on Arch Linux.

    I opened an image located in a folder with several images, I was going to the next images by pressing the right arrow, qimgv crashed at some point.

    Here is the backtrace generated with gdb:

    Thread 9 (Thread 0x7f4a8a9936c0 (LWP 22384)):
    #0  0x00007f4ac71b3b94 in ?? () from /usr/lib/libopencv_imgproc.so.406
    #1  0x00007f4ac71bdf00 in ?? () from /usr/lib/libopencv_imgproc.so.406
    #2  0x00007f4ac449468e in ?? () from /usr/lib/libopencv_core.so.406
    #3  0x00007f4ac448cc4b in ?? () from /usr/lib/libopencv_core.so.406
    #4  0x00007f4ac44a0247 in ?? () from /usr/lib/libopencv_core.so.406
    #5  0x00007f4ac407f48b in ?? () from /usr/lib/libtbb.so.12
    #6  0x00007f4ac4081169 in ?? () from /usr/lib/libtbb.so.12
    #7  0x00007f4ac529f8fd in start_thread (arg=<optimized out>) at pthread_create.c:442
    #8  0x00007f4ac5321a60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
    
    Thread 8 (Thread 0x7f4aa69556c0 (LWP 22381)):
    #0  0x00007f4ac53140bf in __GI___poll (fds=fds@entry=0x7f4aa6954c20, nfds=nfds@entry=1, timeout=timeout@entry=300) at ../sysdeps/unix/sysv/linux/poll.c:29
    #1  0x0000562f1292208d in poll (__timeout=300, __nfds=1, __fds=0x7f4aa6954c20) at /usr/include/bits/poll2.h:39
    #2  LinuxWorker::run (this=0x562f133f5050) at /usr/src/debug/qimgv/qimgv-1.0.2/qimgv/components/directorymanager/watchers/linux/linuxworker.cpp:44
    #3  0x00007f4ac5abda51 in QtPrivate::QSlotObjectBase::call (a=<optimized out>, r=<optimized out>, this=<optimized out>, this=<optimized out>, r=<optimized out>, a=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
    #4  doActivate<false> (sender=0x562f133f5070, signal_index=3, argv=0x7f4aa6954d60) at kernel/qobject.cpp:3919
    #5  0x00007f4ac58e241f in QThread::started (this=this@entry=0x562f133f5070, _t1=...) at .moc/moc_qthread.cpp:163
    #6  0x00007f4ac58e42d1 in QThreadPrivate::start (arg=0x562f133f5070) at thread/qthread_unix.cpp:325
    #7  0x00007f4ac529f8fd in start_thread (arg=<optimized out>) at pthread_create.c:442
    #8  0x00007f4ac5321a60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
    
    Thread 7 (Thread 0x7f4a8bdff6c0 (LWP 22383)):
    #0  0x00007f4ac71b3b1f in ?? () from /usr/lib/libopencv_imgproc.so.406
    #1  0x00007f4ac71bdf00 in ?? () from /usr/lib/libopencv_imgproc.so.406
    #2  0x00007f4ac449468e in ?? () from /usr/lib/libopencv_core.so.406
    #3  0x00007f4ac448cc4b in ?? () from /usr/lib/libopencv_core.so.406
    #4  0x00007f4ac44a0247 in ?? () from /usr/lib/libopencv_core.so.406
    #5  0x00007f4ac40871b3 in ?? () from /usr/lib/libtbb.so.12
    #6  0x00007f4ac44a011d in ?? () from /usr/lib/libopencv_core.so.406
    #7  0x00007f4ac4073ce1 in ?? () from /usr/lib/libtbb.so.12
    #8  0x00007f4ac4494c0b in cv::parallel_for_(cv::Range const&, cv::ParallelLoopBody const&, double) () from /usr/lib/libopencv_core.so.406
    #9  0x00007f4ac71be84e in void cv::opt_SSE4_1::GaussianBlurFixedPoint<unsigned short>(cv::Mat const&, cv::Mat&, unsigned short const*, int, unsigned short const*, int, int) () from /usr/lib/libopencv_imgproc.so.406
    #10 0x00007f4ac70d9fcb in cv::GaussianBlur(cv::_InputArray const&, cv::_OutputArray const&, cv::Size_<int>, double, double, int) () from /usr/lib/libopencv_imgproc.so.406
    #11 0x0000562f129b2640 in ImageLib::scaled_CV (source=std::shared_ptr<const QImage> (use count 3, weak count 0) = {...}, destSize=..., filter=<optimized out>, sharpen=<optimized out>) at /usr/src/debug/qimgv/qimgv-1.0.2/qimgv/utils/imagelib.cpp:199
    #12 0x0000562f129b2958 in ImageLib::scaled (source=std::shared_ptr<const QImage> (use count 3, weak count 0) = {...}, destSize=..., filter=filter@entry=QI_FILTER_CV_CUBIC) at /usr/src/debug/qimgv/qimgv-1.0.2/qimgv/utils/imagelib.cpp:150
    #13 0x0000562f1290ba22 in ScalerRunnable::run (this=0x562f133ac110) at /usr/src/debug/qimgv/qimgv-1.0.2/qimgv/components/scaler/scalerrunnable.cpp:20
    #14 0x00007f4ac58e8211 in QThreadPoolThread::run (this=0x562f133d54e0) at thread/qthreadpool.cpp:100
    #15 0x00007f4ac58e42ea in QThreadPrivate::start (arg=0x562f133d54e0) at thread/qthread_unix.cpp:330
    #16 0x00007f4ac529f8fd in start_thread (arg=<optimized out>) at pthread_create.c:442
    #17 0x00007f4ac5321a60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
    
    Thread 6 (Thread 0x7f4aa71566c0 (LWP 22378)):
    #0  __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x562f1321bc68) at futex-internal.c:57
    #1  __futex_abstimed_wait_common (futex_word=futex_word@entry=0x562f1321bc68, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87
    #2  0x00007f4ac529c51f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x562f1321bc68, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139
    #3  0x00007f4ac529ecd0 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x562f1321bc18, cond=0x562f1321bc40) at pthread_cond_wait.c:503
    #4  ___pthread_cond_wait (cond=0x562f1321bc40, mutex=0x562f1321bc18) at pthread_cond_wait.c:618
    #5  0x00007f4aae70799e in cnd_wait () at ../mesa-22.2.3/src/c11/impl/threads_posix.c:135
    #6  0x00007f4aae6baf8c in util_queue_thread_func () at ../mesa-22.2.3/src/util/u_queue.c:287
    #7  0x00007f4aae7078cc in impl_thrd_routine () at ../mesa-22.2.3/src/c11/impl/threads_posix.c:67
    #8  0x00007f4ac529f8fd in start_thread (arg=<optimized out>) at pthread_create.c:442
    #9  0x00007f4ac5321a60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
    
    Thread 5 (Thread 0x7f4abc9df6c0 (LWP 22377)):
    #0  0x00007f4ac53140bf in __GI___poll (fds=fds@entry=0x7f4abc9ded30, nfds=nfds@entry=2, timeout=timeout@entry=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
    #1  0x00007f4abff9bcdd in poll (__timeout=-1, __nfds=2, __fds=0x7f4abc9ded30) at /usr/include/bits/poll2.h:39
    #2  QtWaylandClient::EventThread::run (this=0x562f13200e00) at /usr/src/debug/qt5-wayland/qtwayland/src/client/qwaylanddisplay.cpp:208
    #3  0x00007f4ac58e42ea in QThreadPrivate::start (arg=0x562f13200e00) at thread/qthread_unix.cpp:330
    #4  0x00007f4ac529f8fd in start_thread (arg=<optimized out>) at pthread_create.c:442
    #5  0x00007f4ac5321a60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
    
    Thread 4 (Thread 0x7f4abd1e06c0 (LWP 22376)):
    #0  0x00007f4ac53140bf in __GI___poll (fds=fds@entry=0x7f4abd1dfd30, nfds=nfds@entry=2, timeout=timeout@entry=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
    #1  0x00007f4abff9bcdd in poll (__timeout=-1, __nfds=2, __fds=0x7f4abd1dfd30) at /usr/include/bits/poll2.h:39
    #2  QtWaylandClient::EventThread::run (this=0x562f131fd0f0) at /usr/src/debug/qt5-wayland/qtwayland/src/client/qwaylanddisplay.cpp:208
    #3  0x00007f4ac58e42ea in QThreadPrivate::start (arg=0x562f131fd0f0) at thread/qthread_unix.cpp:330
    #4  0x00007f4ac529f8fd in start_thread (arg=<optimized out>) at pthread_create.c:442
    #5  0x00007f4ac5321a60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
    
    Thread 3 (Thread 0x7f4ac3d31840 (LWP 22374)):
    #0  0x00007f4ac53140bf in __GI___poll (fds=0x562f13445130, nfds=1, timeout=56) at ../sysdeps/unix/sysv/linux/poll.c:29
    #1  0x00007f4ac396d1ff in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x562f13445130, timeout=<optimized out>, context=0x7f4ab8005010) at ../glib/glib/gmain.c:4543
    #2  g_main_context_iterate.constprop.0 (context=0x7f4ab8005010, block=1, dispatch=1, self=<optimized out>) at ../glib/glib/gmain.c:4233
    #3  0x00007f4ac3915132 in g_main_context_iteration (context=0x7f4ab8005010, may_block=1) at ../glib/glib/gmain.c:4303
    #4  0x00007f4ac5ad7c4c in QEventDispatcherGlib::processEvents (this=0x562f131db3e0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
    #5  0x00007f4ac5a8573c in QEventLoop::exec (this=0x7fff2f3ee180, flags=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
    #6  0x00007f4ac5a90269 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
    #7  0x00007f4ac5f3a112 in QGuiApplication::exec () at kernel/qguiapplication.cpp:1870
    #8  0x00007f4ac6776f2a in QApplication::exec () at kernel/qapplication.cpp:2829
    #9  0x0000562f128a22bd in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/qimgv/qimgv-1.0.2/qimgv/main.cpp:167
    
    Thread 2 (Thread 0x7f4abfa996c0 (LWP 22375)):
    #0  0x00007f4ac53140bf in __GI___poll (fds=0x7f4ab80053e0, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
    #1  0x00007f4ac396d1ff in g_main_context_poll (priority=<optimized out>, n_fds=2, fds=0x7f4ab80053e0, timeout=<optimized out>, context=0x7f4ab8001cf0) at ../glib/glib/gmain.c:4543
    #2  g_main_context_iterate.constprop.0 (context=0x7f4ab8001cf0, block=1, dispatch=1, self=<optimized out>) at ../glib/glib/gmain.c:4233
    #3  0x00007f4ac3915132 in g_main_context_iteration (context=0x7f4ab8001cf0, may_block=1) at ../glib/glib/gmain.c:4303
    #4  0x00007f4ac5ad7c4c in QEventDispatcherGlib::processEvents (this=0x7f4ab8000b70, flags=...) at kernel/qeventdispatcher_glib.cpp:423
    #5  0x00007f4ac5a8573c in QEventLoop::exec (this=0x7f4abfa98d10, flags=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
    #6  0x00007f4ac58e721f in QThread::exec (this=this@entry=0x7f4abfbb1560 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
    #7  0x00007f4abfb55cba in QDBusConnectionManager::run (this=0x7f4abfbb1560 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at /usr/src/debug/qt5-base/qtbase/src/dbus/qdbusconnection.cpp:179
    #8  0x00007f4ac58e42ea in QThreadPrivate::start (arg=0x7f4abfbb1560 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:330
    #9  0x00007f4ac529f8fd in start_thread (arg=<optimized out>) at pthread_create.c:442
    #10 0x00007f4ac5321a60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
    
    Thread 1 (Thread 0x7f4aa61546c0 (LWP 22382)):
    #0  std::__atomic_base<QObjectPrivate::Connection*>::load (__m=std::memory_order_relaxed, this=0x20) at /usr/include/c++/12.2.0/atomic:578
    #1  std::atomic<QObjectPrivate::Connection*>::load (__m=std::memory_order_relaxed, this=0x20) at /usr/include/c++/12.2.0/atomic:579
    #2  QAtomicOps<QObjectPrivate::Connection*>::loadRelaxed<QObjectPrivate::Connection*> (_q_value=<error reading variable: Cannot access memory at address 0x20>) at ../../include/QtCore/../../src/corelib/thread/qatomic_cxx11.h:239
    #3  QBasicAtomicPointer<QObjectPrivate::Connection>::loadRelaxed (this=0x20) at ../../include/QtCore/../../src/corelib/thread/qbasicatomic.h:248
    #4  QObjectPrivate::ConnectionData::cleanOrphanedConnections (lockPolicy=QObjectPrivate::ConnectionData::NeedToLock, sender=0x562f133ff7d0, this=0x0) at kernel/qobject_p.h:292
    #5  doActivate<false> (sender=0x562f133ff7d0, signal_index=3, argv=0x7f4aa6153c80) at kernel/qobject.cpp:3961
    #6  0x0000562f128a5ebc in LoaderRunnable::finished (this=this@entry=0x562f133ff7d0, _t1=std::shared_ptr<Image> (use count 3, weak count 0) = {...}, _t2=...) at /usr/src/debug/qimgv/qimgv-1.0.2/build/qimgv/qimgv_autogen/NCIJ6LDRA3/moc_loaderrunnable.cpp:146
    #7  0x0000562f12909a40 in LoaderRunnable::run (this=0x562f133ff7d0) at /usr/src/debug/qimgv/qimgv-1.0.2/qimgv/components/loader/loaderrunnable.cpp:13
    #8  0x00007f4ac58e8211 in QThreadPoolThread::run (this=0x562f134016e0) at thread/qthreadpool.cpp:100
    #9  0x00007f4ac58e42ea in QThreadPrivate::start (arg=0x562f134016e0) at thread/qthread_unix.cpp:330
    #10 0x00007f4ac529f8fd in start_thread (arg=<optimized out>) at pthread_create.c:442
    #11 0x00007f4ac5321a60 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
    
    
    opened by glaubersm 1
  • Source build requires qttools5-dev

    Source build requires qttools5-dev

    I'm running Ubuntu 22.04.1 LTS. When following the build instructions, my output is

    -- The CXX compiler identification is GNU 11.3.0
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Check for working CXX compiler: /usr/bin/c++ - skipped
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- Build configuration: 
    -- Qt Version: 5.15.3
    -- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.2") 
    -- Checking for module 'exiv2'
    --   Found exiv2, version 0.27.5
    -- Found OpenCV: /usr (found version "4.5.4") found components: core imgproc 
    -- Could NOT find Qt5LinguistTools (missing: Qt5LinguistTools_DIR)
    CMake Warning at qimgv/CMakeLists.txt:11 (find_package):
      Found package configuration file:
    
        /usr/lib/x86_64-linux-gnu/cmake/Qt5/Qt5Config.cmake
    
      but it set Qt5_FOUND to FALSE so package "Qt5" is considered to be NOT
      FOUND.  Reason given by package:
    
      Failed to find Qt5 component "LinguistTools" config file at
      "/usr/lib/x86_64-linux-gnu/cmake/Qt5LinguistTools/Qt5LinguistToolsConfig.cmake"
    
    
      
    
    
    
    CMake Error at qimgv/CMakeLists.txt:29 (qt5_add_translation):
      Unknown CMake command "qt5_add_translation".
    
    
    -- Configuring incomplete, errors occurred!
    

    In addition to the packages listed to build, I also needed qttools5-dev.

    Once that is installed, the build completes successfully. All that's needed is a wiki update.

    opened by epeay 0
Releases(latest-dev)
Owner
null
Video, Image and GIF upscale/enlarge(Super-Resolution) and Video frame interpolation. Achieved with Waifu2x, SRMD, RealSR, Anime4K, RIFE, CAIN, DAIN and ACNet.

Video, Image and GIF upscale/enlarge(Super-Resolution) and Video frame interpolation. Achieved with Waifu2x, SRMD, RealSR, Anime4K, RIFE, CAIN, DAIN and ACNet.

Aaron Feng 8.7k Jan 7, 2023
HDRView is a simple research-oriented image viewer with an emphasis on examining and comparing high-dynamic range (HDR) images

HDRView is a simple research-oriented high-dynamic range image viewer with an emphasis on examining and comparing images, and including minimalistic tonemapping capabilities. HDRView currently supports reading EXR, PNG, TGA, BMP, HDR, JPG, GIF, PNM, PFM, and PSD images and writing EXR, HDR, PNG, TGA, PPM, PFM, and BMP images.

Wojciech Jarosz 177 Jan 5, 2023
An image and texture viewer for tga, png, apng, exr, dds, gif, hdr, jpg, tif, ico, webp, and bmp files

An image and texture viewer for tga, png, apng, exr, dds, gif, hdr, jpg, tif, ico, webp, and bmp files. Uses Dear ImGui, OpenGL, and Tacent. Useful for game devs as it displays information like the presence of an alpha channel and querying specific pixels for their colour.

Tristan Grimmer 159 Dec 31, 2022
PoC black/white image sequence to dumpy gif image sequence converter

PoC black/white image sequence to dumpy gif image sequence converter

null 69 Dec 9, 2022
The “Quite OK Image” format for fast, lossless image compression

The “Quite OK Image” format for fast, lossless image compression

Dominic Szablewski 6k Dec 30, 2022
Like feh, but better, faster, more image formats, simpler, more lightweight, animation support, and better UI

Like feh, but better, faster, more image formats, simpler, more lightweight, animation support, and better UI

martin 11 Oct 23, 2022
Pangolin: a lightweight portable rapid development library for managing OpenGL display / interaction and abstracting video input.

What is Pangolin Pangolin is a lightweight portable rapid development library for managing OpenGL display / interaction and abstracting video input. A

Yee 1 Dec 25, 2021
A fast image processing library with low memory needs.

libvips : an image processing library Introduction libvips is a demand-driven, horizontally threaded image processing library. Compared to similar lib

libvips 26 Nov 10, 2022
C++ image processing and machine learning library with using of SIMD: SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX-512, VMX(Altivec) and VSX(Power7), NEON for ARM.

Introduction The Simd Library is a free open source image processing and machine learning library, designed for C and C++ programmers. It provides man

Ihar Yermalayeu 1.7k Jan 5, 2023
a generic C++ library for image analysis

VIGRA Computer Vision Library Copyright 1998-2013 by Ullrich Koethe This file is part of the VIGRA computer vision library. You may use,

Ullrich Koethe 378 Dec 30, 2022
Intel® Open Image Denoise library

Intel Open Image Denoise is an open source library of high-performance, high-quality denoising filters for images rendered with ray tracing

Intel® Open Image Denoise 1.3k Dec 28, 2022
GLSL Image Processing System

GIPS: The GLSL Image Processing System An image processing application that applies filters written in the OpenGL Shading Language (GLSL). This means

Martin Fiedler 57 Nov 29, 2022
Arduino PNG image decoder library

An 'embedded-friendly' (aka Arduino) PNG image decoding library

Larry Bank 102 Jan 6, 2023
libvot - A C++11 multi-thread library for image retrieval

libvot is a fast implementation of vocabulary tree, which is an algorithm widely used in image retrieval and computer vision. It usually comprises three components to build a image retrieval system using vocabulary tree: build a k-means tree using sift descriptors from images, register images into the database, query images against the database. I

Tianwei Shen 174 Dec 22, 2022
ppl.cv is a high-performance image processing library of openPPL supporting x86 and cuda platforms.

ppl.cv is a high-performance image processing library of openPPL supporting x86 and cuda platforms.

null 366 Dec 30, 2022
pngtostl is a program that converts a PNG image into STL 3D models

pngtostl is a program that converts a PNG image into a litophane, in STL format, suitable to be printed by entry level 3D printers.

Salvatore Sanfilippo 157 Dec 17, 2022
An AV1 Image (AVIF) file format plug-in for Adobe® Photoshop®

avif-format An AV1 Image (AVIF) file format plug-in for Adobe® Photoshop®. Single images can be loaded and saved using 8, 10 or 12 bits-per-channel, i

Nicholas Hayes 100 Dec 20, 2022
An 'embedded-friendly' (aka Arduino) JPEG image encoding library

Starting in the late 80's I wrote my own imaging codecs for the existing standards (CCITT G3/G4 was the first). I soon added GIF, JPEG and not long after that, the PNG specification was ratified. All of this code was "clean room" - written just from the specification. I used my imaging library in many projects and products over the years and recently decided that some of my codecs could get a new lease on life as open source, embedded-friendly libraries for microcontrollers.

Larry Bank 38 Dec 30, 2022