-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathREADME
222 lines (156 loc) · 6.42 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
galapix - A Zoomable Image Viewer zoomview
==========================================
galapix is an image viewer that allows you to directly zoom into large
collection of tens of thousand of images from tiny thumbnails down to
the images original size fluently with very short load times and no
loss of interactivity. It accomplishes this by keeping a tile cache
which stores not only thumbnails for one size, but thumbnails of many
different sizes. This thumbnail cache requires at maximum 1.5x times
as much storage as the images themselves, but as tiles are generated
on demand often far less.
galapix can also be used to view gigapixel sized images. The Zoomify
ImageProperties.xml file format is support.
galapix supports a wide varity of image formats including JPEG, PNG,
XCF (Gimp), KRA (Krita) and all stuff supported by ImageMagick.
Portability:
============
galapix is written with GNU/Linux in mind, calls to external
application, which are used to handle all kinds of file formats might
not be portable to other platforms. There are also plenty of other
little details that will make portability to non-POSIX OSs problematic
(thread and directory handling).
Features:
=========
* support for large image collections of tens of thousands of images
* support for extremely large images (gigapixel range)
* support for a wide varity of image formats (png, jpeg, xcf, kra,
svg and everything supported by ImageMagick)
* support for a wide varity of archive formats (rar, zip, tar)
* very fast once the cache is generated
* flexible layouting functions
* abiltiy to move images around and resize them on the workspace
* very responsive, loading happens completly in the background and
never blocks interactivity
* workspace layout can be saved and loaded
* Space Navigator is fully supported
Required Libraries and Tools:
=============================
* OpenGL - http://www.opengl.org
* SQlite - http://www.sqlite.org/
* libjpeg - http://www.ijg.org/
* libpng - http://www.libpng.org/pub/png/
* scons - http://www.scons.org/
* GLEW - http://glew.sourceforge.net/
* Magick++ - http://www.imagemagick.org/Magick%2B%2B/
* boost - http://www.boost.org/
* librsvg - http://librsvg.sourceforge.net/
* libexif - http://libexif.sourceforge.net/
On Ubuntu 14.04 one can install all required libraries with this call:
sudo apt-get install \
libboost1.55-dev \
libsqlite3-dev \
libglew1.5-dev \
libjpeg8-dev \
libpng12-dev \
scons \
libmagick++-dev \
libcurl4-gnutls-dev \
libglademm-2.4-dev \
libgtkglextmm-x11-1.2-dev \
libspnav-dev \
libexif-dev
The following packages are optional and used to handle some more
exotic image formats:
sudo apt-get install \
librsvg2-bin \
ufraw \
krita \
xcftools
OpenGL is required as well, but not listed here, since installation
might differ depending on the brand of graphics card. For other
distributions library names might be slighly different, but all the
required libraries should be part of most distributions.
Compilation:
============
The easiest way to compile is to type:
scons
The rest should happen automatically.
If you want to customize compiler options or other stuff you can do that
by running:
scons CXX=g++-4.2 BUILD=debug ...
To get a list of available variables use:
scons -h
If the scons script fails to configure properly you can get additional
information from "config.log".
Running:
========
Galapix comes in two versions, one is galapix.sdl, a GUI-less SDL
based version and galapix.gtk a GUI version. The Gtk version is at
this point very incomplete and hasn't been tested much, but it might
be easier to use then figuring out the keybinding used by the SDL
version.
Galapix comes with a number of sub commands, allowing the user to either
view images or pre-generate thumbnails. The most basic command is:
build/galapix.gtk view [FILES]...
Which displays the given files. To pregenerate only the small
thumbnails you use:
build/galapix.gtk thumbgen [FILES]...
To generate not only the small thumbnails, but all tiles you use:
build/galapix.gtk prepare [FILES]...
The other available commands are mostly for debugging and have little
actualy use.
Via the -d flag you can specifiy a database, so that you can have
different databases for different files. If you give an empty string
-d "", no database file will be created, the database will resist in
memory only.
As a special gimmick you can run:
build/galapix.gtk view buildin://mandelbrot
To get a classic Mandelbrot set.
Keyboard Commands for Galapix SDL:
==================================
Key | Function
----------+------------------------------
F11 | toggle fullscreen
t | toggle trackball mode (mouse is grabbed and cursor hidden)
1 | regular image layout
2 | tight image layout
3 | random image layout
4 | relayout images in a non-overlapping form
5 | layout images in a tight fashion
g | toggle grid
h | reset zoom and scroll
m | switch to move/resize tools
p | switch pan/zoom tools
b | toggle background color
i | only display selected images, remove the rest
n | random shuffle images
s | sort images alphabetically
shift+s | sort images alphabetically in reverse order
page up | increase gamma
page down | increase gamma
space | print the currently visible images to stdout
delete | remove selected images from workspace
home | zoom in
end | zoom out
shift | rotate the view by moving the mouse while shift is hold down
left | rotate the view 90
right | rotate the view -90
up | reset view rotation to 0 degree
escape | exit galapix
SpaceNavigator Support:
=======================
galapix supports the Space Navigator via the Open Source spacenavd daemon:
* http://spacenav.sourceforge.net
The 3Dconnexion's official 3dxsrv daemon is not supported, neither is
directly reading from /dev/input/eventX.
Issues:
=======
* Galapix is very picky about I/O, so if you have updatedb running in
the background or other indexing software, it can get very slow.
* Incremental loading is not fully optimized, so you see more
artifacts then you should.
* Running multiple instances of galapix at once can lead to:
terminate called after throwing an instance of 'SQLiteError'
what(): SQLiteStatement::~SQLiteStatement: column filename is not unique
Aborted
# EOF #