easymodo / qimgv Goto Github PK
View Code? Open in Web Editor NEWImage viewer. Fast, easy to use. Optional video support.
License: GNU General Public License v3.0
Image viewer. Fast, easy to use. Optional video support.
License: GNU General Public License v3.0
Hello,
How to disable a fullscreen on startup?
Using Solus Linux / qimgv master, attempting to playback video files fails without the MPV executable installed. If this is intended, I recommend adding mpv
to the list of dependencies in the README.
When MPV is installed, the file plays very small (~1/4 size) in the lower-left hand corner of the screen and without zoom, though it does scale somewhat when entering fullscreen.
Hi,
I've been using qimgv for a couple of years now and I really prefer the old way of cropping to this new one. Before, you could just drag the mouse from anywhere and create the crop region. Newer version forces you to hunt for handles in the corners of the screen (which can activate hot corners if you have those set up) and it's just generally less convenient since you have to move the mouse all across the screen. I understand why the drag handles are there but maybe the compromise would be to still allow arbitrarily drawing the crop region when the user doesn't click on the drag handles and just move the corner that's closes to the position where the user clicked? Or just let the user draw the crop region and when you detect the click that's not on the handle?
One other issue is that I find myself often renaming image files and then moving them to a permanent location. I can write a script and pop-up a rename box from a script but I have no way of letting the qimgv know that the name has changed and then you can't move it. And since qimgv doesn't monitor folders for file changes, I have to restart qimgv for it to see changes. Maybe there could be a builtin rename feature? 😄 Alternatively, maybe a way to watch folders for file changes with QFileSystemWatcher?
Thanks so much for qimgv... even after all this time I still use it daily and it's still the best!
Implement some sort of preloading?
Or maybe ditch QLabel in favor of something else
As I am using the thumbnail panel to navigate big image collections, I would find it useful to have an option to always show the thumbnail panel, like in Eye of Gnome or Gwenview when windowed. This would save a bit time and the panel wouldn't vanish if i accidentally move my mouse cursor away from it.
Hi
I have qimgv 0.7.3 installed on Arch Linux.
As we can see in the screenshot below, its icon is wrong when running on KDE Plasma Wayland session. Maybe the following link is helpful.
https://community.kde.org/Guidelines_and_HOWTOs/Wayland_Porting_Notes#Application_Icon
The Show video controls checkbox doesn't seem to do anything right now, and doesn't save its state after you close the window.
Using v0.7.3 video on windows.
As a side note, it would be great if there was a toggle to mute/unmute videos with sound in the video controls. Being able to toggle between having a video scale to fit the window and/or zooming would also be great but I understand if that might be pushing the scope of this project.
qimgv seems to keep adjacent files in its buffer. (Probably to speed up switching back and forth between two images.) This is useful, except in one scenario: when an external program modifies an image.
Suggestions:
Just a couple of improvements / bugs:
It would be really nice to have a bit of help text when you run qimgv --help
at a command line, since that's what I - and I feel like others - do with programs that they don't use often and forget how to use. Even though it's not intended for command line use, it's certainly much more helpful to have that than to just launch the program and display an error saying that there is no file called '--help'.
Even literally copy-pasting the "Default control scheme" from the README.md would be perfect, since there's also no man page or anything :)
would it be possible to have metadata displayed on demand? is such option planned?
/builddir/qimgv-0.7/core.cpp: In constructor 'Core::Core()':
/builddir/qimgv-0.7/core.cpp:22:13: error: 'M_MMAP_THRESHOLD' was not declared in this scope
mallopt(M_MMAP_THRESHOLD, 64000);
^~~~~~~~~~~~~~~~
/builddir/qimgv-0.7/core.cpp:22:5: error: 'mallopt' was not declared in this scope
mallopt(M_MMAP_THRESHOLD, 64000);
^~~~~~~
/builddir/qimgv-0.7/core.cpp:22:5: note: suggested alternative: 'malloc'
mallopt(M_MMAP_THRESHOLD, 64000);
^~~~~~~
malloc
make[2]: *** [CMakeFiles/qimgv.dir/build.make:155: CMakeFiles/qimgv.dir/core.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
[ 9%] Building CXX object CMakeFiles/qimgv.dir/components/actionmanager/actionmanager.cpp.o
make[1]: *** [CMakeFiles/Makefile2:73: CMakeFiles/qimgv.dir/all] Error 2
make: *** [Makefile:130: all] Error 2
Sorry if I'm just being really dumb but could you add a method that explains how to install this in Fedora (If its possible).
I haven't tried it yet but this looks great!
Rotating a PNG file will bloat it to close to 4 times the size imagemagick's convert
can compress it to
Hi.
Trying import qimgv into OpenMandriva repository but I got a building error.
CMakeFiles/qimgv.dir/utils/imagefactory.cpp.o -c /builddir/build/BUILD/qimgv-0.7.1/utils/imagefactory.cpp
DEBUG util.py:498: BUILDSTDERR: /builddir/build/BUILD/qimgv-0.7.1/sourcecontainers/documentinfo.cpp:110:49: error: call to deleted constructor of 'QImageReader'
DEBUG util.py:498: BUILDSTDERR: const QImageReader& reader = (mExtension) ? QImageReader(path, mExtension) : QImageReader(path);
DEBUG util.py:498: BUILDSTDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DEBUG util.py:498: BUILDSTDERR: /usr/include/qt5/QtGui/qimagereader.h:149:20: note: 'QImageReader' has been explicitly marked deleted here
DEBUG util.py:498: BUILDSTDERR: Q_DISABLE_COPY(QImageReader)
DEBUG util.py:498: BUILDSTDERR: ^
DEBUG util.py:498: BUILDSTDERR: 1 error generated.
Full build log here: https://paste.ubuntu.com/p/HgsqpfK2PW/
Building on OpenMandriva Cooker, qt5.11.
Any idea?
Hey, would you mind adding mp4 support, should be no problem as you use mpv for the webm/gif support anyway right?
Thank you for creating this application, i appreciate it! :)
As the title describes, I'd like to be able to enable "Show Image Info" when not in fullscreen mode, possibly with a keybind for toggling but perhaps that's for another ticket.
As a previously Honeyview user, this is the closest thing on Linux and I love it. <3
Hi!
Are there plans to add a color profile support for non-sRGB monitors?
This feels fairly broad, however, I haven't found a circumstance where it hasn't happened.
• If you attempt to delete a .gif or .webm, it doesn't have any effect on the actual file itself. It remains in the folder qimgv is viewing.
• If you attempt to move a .gif or .webm, it instead duplicates the file to the new location.
Steps to reproduce:
Preferences->Controls
, create a new control and map it to '='.Linux-4.18.3, qimgv 7dd7e08, qt-5.9.6
If I change the Panel Position in the settings menu to bottom it is still at the top. Removing all config files or reinstalling qimgv does not solve the issue.
Software I used:
Hi,
Quite often I notice that the image orientation of most of the images that I take with my phone is wrong when viewed with qimgv. I've narrowed it down to image orientation metadata. Apparently, most phones encode the image off a sensor in the same orientation and then they just encode the orientation into the exif.
Example pic: https://my.mixtape.moe/prbxhn.jpg
Pic above will look properly oriented in all web browsers and most viewers but not with qimgv. It contains Rotate 270 CW
as Orientation
parameter.
http://leancrew.com/all-this/2009/04/derotating-jpegs-with-exiftool/
https://sno.phy.queensu.ca/~phil/exiftool/exiftool_pod.html
Seems like this code doesn't work
fileType FileInfo::guessType() {
QString ext = getExtension(fileInfo.filePath());
if(ext == "webm" || ext == "gifv") { // case sensitivity?
return VIDEO;
}
QFile file(fileInfo.filePath());
file.open(QIODevice::ReadOnly);
//read first 2 bytes to determine file format
QByteArray startingBytes= file.read(2).toHex();
file.close();
if(startingBytes=="4749") {
return GIF;
}
else {
return STATIC;
}
}
Steps to reproduce: Open program, press ctrl+o, select image file without extension. Voila! Nothing happened.
I'm getting following error while compiling qimgv on 16.04:
[ 69%] Building CXX object gui/viewers/CMakeFiles/viewers.dir/mpvwidget.cpp.o
cd /build/qimgv-0.6/obj-x86_64-linux-gnu/gui/viewers && /usr/bin/x86_64-linux-gnu-g++ -DQT_CONCURRENT_LIB -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_DEBUG -DQT_WIDGETS_LIB -I/build/qimgv-0.6/obj-x86_64-linux-gnu/gui/viewers -I/build/qimgv-0.6/gui/viewers -I/build/qimgv-0.6 -I/build/qimgv-0.6/res -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtWidgets -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -isystem /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64 -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -fPIC -std=c++11 -O3 -DNDEBUG -fPIC -o CMakeFiles/viewers.dir/mpvwidget.cpp.o -c /build/qimgv-0.6/gui/viewers/mpvwidget.cpp
/build/qimgv-0.6/gui/viewers/mpvwidget.cpp: In member function 'void MpvWidget::command(const QVariant&)':
/build/qimgv-0.6/gui/viewers/mpvwidget.cpp:62:5: error: 'command' is not a member of 'mpv::qt'
mpv::qt::command(mpv, params);
^
/build/qimgv-0.6/gui/viewers/mpvwidget.cpp: In member function 'void MpvWidget::setProperty(const QString&, const QVariant&)':
/build/qimgv-0.6/gui/viewers/mpvwidget.cpp:66:5: error: 'set_property' is not a member of 'mpv::qt'
mpv::qt::set_property(mpv, name, value);
^
/build/qimgv-0.6/gui/viewers/mpvwidget.cpp: In member function 'QVariant MpvWidget::getProperty(const QString&) const':
/build/qimgv-0.6/gui/viewers/mpvwidget.cpp:70:12: error: 'get_property' is not a member of 'mpv::qt'
return mpv::qt::get_property(mpv, name);
Steps to reproduce: open small image, move cursor to place where minimap located, minimap become visible.
Hello!
I'm attempting to install on Ubuntu 18.04 and am running into an issue when building. I have installed the required dependencies per the instructions in the README. Any thoughts on what might be causing this? I'm not familiar with C++ enough to really parse through the error.
Here is the steps I took and the output of the ./build.sh script.
https://gist.github.com/kyleaolson/c9877cbe030457b3c68414f09ea5ea0d
Thanks!
I think that an important feature is missing - ability to sort image list by mtime, file size etc.
Hey...
I've been testing this one here for a while: qimgv64-portable-0.6.2.exe
(on Windows 10 x64 FCU).
First of all, I really like the program so far.
Nice minimalist design, very fast and responsive. Kudos to you 😄 .
Just a quick question:
In the settings menu there are options to choose a path for a mpv binary, but all these options are greyed out / deactivated. Is this intentional? Or do I have to set a specific property in the config?
Transparency fails to persist after setting it in settings, then closing qimgv and re-opening it.
On wayland on swaywm.
I just came across this program a few days ago, and I've already replaced feh with this as my default image viewer, love the speed and design choices!
The only features that I found myself wanting were that I would want to be able to navigate my file system more easily (and another one that someone else already opened).
I imagined that there would be two approaches to this, which is to replace the default file picker with a more keyboard friendly one, or to leverage the custom folder viewer that is already built into the program, which is the folderView/gallery and just surface folders in there so that we can descend/ascend. The simplest implementation would be to just add a ..
and show the current folders, and maybe have an option for hiding/showing hidden folders, but that's probably not necessary.
Adding the ability to open a file manager/explorer window with the currently opened file selected.
Loving this so far! Excited to try this out as my main image viewer. This is the one thing I'm really going to miss having though. Very useful for when you need to get to a specific file in a collection.
Would be nice to have APNG support.
Most browsers now support it, no reason to not have it in an image viewer.
Try switch between huge images (for example, few times) and take a look to the ram memory (linux issue). My images sizes over 2.9 mb.
-I'd find it useful to have a different color of background in and out of full-screen
-The ability to lock to common aspect ratios when cropping would be useful, e.g. Free, Original, 1:1, 16:9 and 18:9 (And although not necessary due to being able to rotate outside of crop, maybe a rotation button here too for the portrait equivalents)
Again though, this is by far the best image viewer I've used and I'm just trying to find things to suggest.
I love it.
I use qimgv extensively when viewing my images while also use a RAW editing software that overwrites the JPG file. I noticed that after a while the photo is automatically updated to what has been recently written, but since it's automatic, I am having trouble figuring out whether I'm looking at what I have just processed, or the old version.
Is there a way to force a reload of the current image? Or any workaround context isn't lost (i.e. So user won't need to find the image again)
Thank you! 🙂
In qimgv 0.6.3 on Windows, videos just play looped over and over. It'd be nice to have some basic controls, like a progress bar, play/pause, skip forwards and backwards (as buttons on screen and/or keyboard shortcuts).
Is there easy way to change interface localization? May be po files for poedit?
First of all, this is the first image viewer in quite some time that I'm excited about. I've tried a bunch (basically all of them in AUR) and currently use Xviewer because it does almost everything right from the UX perspective. But qimgv is faster and I love the coming webm support! Here's few things that are currently missing from qimgv and I'd hope to be able to customize (in order of my personal importance):
Delete/trash support. Would be great if you could move files to trash with a Del key (basically, I wish there was a way to bind a key to "gio trash").
Stretching and shrinking of images so they fill the window by default. It would be great to have an option for qimgv to fill the available space by default. If the image is bigger than the window, it should be shrunk into the available space and if it's smaller, it should be zoomed so it fills width or height and maintains perspective. Pressing something like Ctrl+0 would bring it to 100%. Pretty much all GTK viewers have something like this (and web browsers too).
Pressing the Esc key while in full-screen should drop the viewer into windowed mode. Pressing it again should quit the viewer. This is how a lot of other viewers and video players handle this change. It would be great if qimgv maintained this consistency.
Zoom in/Zoom out with a scroll key - currently, zooming in and zooming out with a mouse does not use mouse pointer as the origin of zoom. Also, wish there was more zoom levels and wish it used a better algo for upscaling... EWA Lanczos maybe? (this part is something that Xviewer does the best).
Anyway, this is an awesome project and I love it. It's by far the most promising image viewer I've seen in a while. Will continue using it and check its progress. Thank you so much for releasing it!
Draw a small overlay in corner showing image rect. and whats currently showing on the window. Sort of like in gwenview/honeyview.
I often find myself going through my photos using qimgv and searching for a photo to upload. Currently, after finding the image, I need to find it again using the file picker or get the absolute path through file browser.
I think the ability to copy the absolute path of the current image will really help. Or copy the image into clipboard since many app (e.g. Signal, whatsapp) can handle pasting image from clipboard too.
Happy to take a stab at it! Thanks
Sometimes I will have an open image viewer, and then I'll add/modify files in current working directory. Is there any way to add support for detecting such changes?
Otherwise, this app is very nice!
(Similar to #42)
Не хватает выпадающей панели задач и кнопки свернуть.
Надпись сверху слишком яркая, нужна настройка цвета.
Не показывать уведомление об удалении файла.
Добавить миниатюры видео.
Добавить в контекстное меню: «Открыть папку с файлом» (Открывается папка с выделенным файлом), Копировать (Чтобы потом вставить в документ или сообщение).
at the moment, qimgv keeps rewriting the config file every time it's executed, undoing any formatting or hand editing you might have done to it. it also seems to store stuff that changes on every run like savedPaths
it would be nice if we had a human friendly config file for scripts and keybinds that is at least properly formatted and doesn't change randomly, that way you could cleanly commit it to a git repo like a lot of people do with their dotfiles
i personally much prefer to just edit a text file than click through buttons to rebind stuff, so as long as it doesn't randomly overwrite the config file on me unless i use the gui configurator I'd be happy
Hi,
when compiling on Xubuntu (Ubuntu) 18.04, I get the following message when compiling (at step 2a) :
~/Builds/qimgv/build$ cmake -DCMAKE_INSTALL_PREFIX=/usr/ -DCMAKE_BINARY_DIR=${DIR}/ .. && make -j4
-- The C compiler identification is GNU 7.3.0
-- The CXX compiler identification is GNU 7.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/red/Builds/qimgv/build
Scanning dependencies of target qimgv_autogen
[ 1%] Automatic MOC and UIC for target qimgv
[ 1%] Built target qimgv_autogen
[ 2%] Generating qrc_resources.cpp
Scanning dependencies of target qimgv
[ 3%] Building CXX object CMakeFiles/qimgv.dir/appversion.cpp.o
[ 4%] Building CXX object CMakeFiles/qimgv.dir/core.cpp.o
[...]
[ 87%] Building CXX object CMakeFiles/qimgv.dir/gui/panels/sidepanel/sidepanel.cpp.o
/home/red/Builds/qimgv/gui/panels/croppanel/croppanel.cpp: In member function ‘void CropPanel::onAspectRatioSelected()’:
/home/red/Builds/qimgv/gui/panels/croppanel/croppanel.cpp:103:44: error: ‘screenAt’ is not a member of ‘QGuiApplication’
QScreen* screen = QGuiApplication::screenAt(mapToGlobal(ui->ARcomboBox->geometry().topLeft()));
^~~~~~~~
CMakeFiles/qimgv.dir/build.make:1959: recipe for target 'CMakeFiles/qimgv.dir/gui/panels/croppanel/croppanel.cpp.o' failed
make[2]: *** [CMakeFiles/qimgv.dir/gui/panels/croppanel/croppanel.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/qimgv.dir/all' failed
make[1]: *** [CMakeFiles/qimgv.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2
Any idea what the problem might be ?
Thank you !
First: great viewer, exactly what I need to browse a directory of images, make some minor changes. and save them back without much hassle.
My usecase? I have cupboard full of 20+ year old slides, finally got a slide scanner, and after that thing drops a few hundred images into some directory, i need to scroll through them quickly and possibly rotate them. And if I insert a slide the wrong way, I need to flip/mirror it as well.
However - It doesn't seem like mirroring is in the GUI somewhere. utils/imagelib.cpp has flipH and flipV methods, so I guess this should be easy; but those methods don't seem to be called from anywhere. Could you please add this to a future version?
On a side note, the current version doesn't compile on Ubuntu 16.04, since that comes with qt 5.5.1, and qimgv seems to need qt5.6. A few patches here and there fix this, at the expense of high dpi scaling and device pixel ratios. Could you try to detect these in the configure script, and possibly use some #ifdef-s to not use these features on qt 5.5? 16.04 is the current Ubuntu Long Term release, and probably won't go away for a while even when the next LTS (18.04) comes out, so there will probably a good amount of people who appreciate that. Thanks!
At now app doesn't do it.
Many of the features people are asking for can be done with a bit of CLI manipulating. If there were command line presets (similar to the 'quick copy/move' function) that the currently open file could be ran through, that would be excellent.
Hi, I'm running Windows 10 Enterprise
Opening a webm just gives me a black screen, regular images work fine. Does qimgv rely on windows media player? because I don't have that.
Is there a possibility to utilize MPV for webm display?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.