You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kipi-plugins/kipi-plugins/imageviewer
Timothy Pearson 3318eeb3c9
Fix invalid headers in PNG files and optimize for size
8 years ago
..
cursors Fix invalid headers in PNG files and optimize for size 8 years ago
Makefile.am Additional k => tde renaming and fixes 11 years ago
README Import abandoned KDE3 version of kipi plugins 15 years ago
TODO Import abandoned KDE3 version of kipi plugins 15 years ago
help.ui Remove the tq in front of these incorrectly TQt4-converted methods/data members: 13 years ago
hi16-action-ogl.png Fix invalid headers in PNG files and optimize for size 8 years ago
hi32-action-ogl.png Fix invalid headers in PNG files and optimize for size 8 years ago
kipiplugin_viewer.desktop Fix ServiceTypes, ExcludeServiceTypes, and DocPath desktop file entries to match XDG specifications 10 years ago
plugin_viewer.cpp Rename additional header files to avoid conflicts with KDE4 11 years ago
plugin_viewer.h Rename a number of classes to enhance compatibility with KDE4 11 years ago
texture.cpp rename the following methods: 13 years ago
texture.h TQt4 port kipi-plugins 13 years ago
timer.cpp TQt4 port kipi-plugins 13 years ago
timer.h TQt4 port kipi-plugins 13 years ago
viewerwidget.cpp Rename additional header files to avoid conflicts with KDE4 11 years ago
viewerwidget.h Remove spurious TQ_OBJECT instances 12 years ago

README

-------------------------------
KIPI image viewer plugin
-------------------------------

This image viewer was designed with speed and ease of usage in mind as well as for mouseless setups (notebooks). A image is converted to a non-power-of two OpenGL texture. This means your video driver has to support the GL_ARB_texture_rectangle OpenGL extension. Please verify with the command glxinfo. Please keep in mind that you need alot of video memory: a 5MP image requires 20MB texture memory. If you run out texture ram, the downloading time of the texture can be increased up to several seconds. Next generation window managers like Beryl will require a massive amount of video memory to run this plugin.

-------------------
Handbook
-------------------

1) Start
--------

- select the images you'd like to view. Ctrl-A for all images
		if no image is selected, all images of the album are loaded and the first image will be displayed
		if one image is selected, all images are loaded and the selected image image will be displayed
		if several images are selected, only the selected images are loaded
- in Digikam, select Tool->Image viewer
  in Gwenview, select Plugins->Tools->Image viewer
- for convenience, create a shortcut in the host application. In Digikam, select Settings->Configure Shortcut, search for "image viewer"


2) Usage
--------

next image                 : scrollwheel down or n or down arrow or right arrow or Space
previous image             : scrollwheel up or p or up arrow or left arrow
toggle fullscreen/normal   : f
quit                       : Esc
toggle scrollwheel action  : c (scrollwheel either zooms or changes the image), default is changing images
rotation                   : r
reset view                 : double click
original size              : o


zooming: 

- move mouse in y-direction while pressing the right mouse button
- alternatively, press c and use the scrollwheel
- plus/minus
- ctrl + scrollwheel


panning:

- move mouse while pressing the left button


3) Performace & technical details
---------------------------------

On a PentiumM 1Ghz, slow 2.5 inch harddrive, I measured the following times for changing an image (5 megapixel, 2MB)
- loading image from cache: 0ms
- download texture to video memory: 15ms
- draw image: 16ms
  the new image is on the screen after 31ms of the user interaction
- preload next image to cache 690ms
  only after preloading is done, the next image can be displayed. 

The most expensive part is instanciating a QImage(myimage) object with 690ms, which includes reading the file from the harddrive. Downscaling to screensize and converting to GL format takes around 70ms. At least on my setup, downscaling by CPU is still faster than copying a 20Mb texture to video mem and downscaling by GPU. 

Other programs/libraries: time of loading and displaying an image
SDL :                      750ms
Kuickshow: (imlib)         690ms (without smooth rendering)
Kuickshow: (imlib)        1770ms (with smooth rendering)
feh: (imlib2)              670ms 	
this Image Viewer plugin:  720ms (implicit smooth rendering due to OGL)