• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

docs/H03-May-2022-7,3286,735

examples/H03-May-2022-1,6441,132

lqr/H04-Dec-2012-7,5434,981

man/H04-Dec-2012-584528

AUTHORSH A D06-Apr-200842 31

COPYINGH A D27-Nov-200734.3 KiB675553

COPYING.LESSERH A D06-Apr-20087.5 KiB166128

ChangeLogH A D12-May-20093.1 KiB12277

INSTALLH A D27-Nov-20079.3 KiB237179

Makefile.amH A D09-May-2009553 3021

Makefile.inH A D03-May-202221.4 KiB705625

NEWSH A D11-May-20091.6 KiB5949

READMEH A D12-May-20094 KiB13595

README.WindowsH A D25-Jan-20112.5 KiB7454

TODOH A D28-Mar-200933 32

aclocal.m4H A D04-Dec-2012339.7 KiB9,6698,693

autogen.shH A D10-May-20094.7 KiB177138

config.guessH A D04-Dec-201243.8 KiB1,5311,321

config.h.inH A D04-Dec-20122.6 KiB10672

config.subH A D04-Dec-201234.6 KiB1,7741,631

configureH A D04-Dec-2012591.1 KiB19,77916,534

configure.acH A D04-Dec-20124.5 KiB178136

depcompH A D27-Nov-200715.6 KiB531330

install-shH A D04-Dec-201213.3 KiB521344

lqr-1.pc.inH A D06-Apr-2008263 1210

ltmain.shH A D04-Dec-2012277 KiB9,6627,310

missingH A D27-Nov-200710.8 KiB361268

mkinstalldirsH A D27-Nov-20071.9 KiB11285

README

1
2LiquidRescale library 0.4.0
3===========================
4
5Table of contents
6-----------------
7  * Introduction
8    + Library features
9  * Installation
10    + Requirements
11    + Normal setup
12  * Using the library
13  * References
14  * Copyright
15
16
17+ Introduction
18--------------
19
20The LiquidRescale (lqr) library provides a C/C++ API for
21performing non-uniform resizing of images by the seam-carving
22technique.
23
24++ Library features
25
26The library takes images in plain array format as input
27and converts them to a multi-size representation.
28Following is a list of features:
29
30  * Easy to use and fully documented API
31  * Currently supports 8 bit to 64 bit per channel images
32  * Support for different color models: grayscale, RGB, CMY
33    and their variants, and even custom ones
34  * Areas in the image can be marked for preservation or
35    discard, or for additional seam rigidity
36  * Once the image has been fully processed, the scaling can
37    be done in real-time. In fact, the information can be saved
38    and read out later without any further processing
39  * The resizing is done with a single function which
40    automatically performs all the necessary operations; it
41    can also work in successive steps without wasting
42    computational time
43  * Possibility to tune the carving operation by letting the
44    seams be less connected, or more rigid, or both (the
45    rigidity can be also be modulated through a mask, to get
46    a differnet behaviour in different areas of the image)
47  * Can export and import the visibility map (the seams)
48  * Other images can be attached and undergo the same carving
49    process as the parent image
50  * The automatic feature detection algorithm can be tuned
51    by selecting among different energy gradient functions,
52    and easily defining custom ones
53  * Reports progress through a customisable interface
54  * A signalling system permits to cleanly handle errors
55  * Portable to all major OS's
56
57
58
59+ Installation
60--------------
61
62++ Dependencies
63
64The lqr library depends on the glib-2.0 libraries
65
66++ Normal setup
67
68The build package uses autotools and libtool, so the installation
69commands on Unix systems are simply
70
71./configure && make && sudo make install
72
73The last step requires administrative privileges.
74(Note: the default installation path is /usr since version 0.4)
75
76If you want to also install the man pages for the library functions,
77add the option `--enable-install-man' in the call to ./configure.
78
79If you want to disable legacy macro names which do not begin with
80LQR_ then add the option `--diable-legacy-macros'
81
82See the INSTALL file for a full description.
83
84
85
86+ Using the library for development
87-------------------------------------
88
89In order to use the library functions and structures from
90a C or C++ program, you have to add this include line in
91your program:
92
93#include <lqr.h>
94
95At compile time, you can take advantage of pkg-config to set
96the proper flags.
97
98In the `examples' directory you can find a basic example program,
99`liquidrescale-basic', and a full-featured demo program,
100`liquidrescale', together with a simple Makefile. Both
101programs are fully commented.
102
103The "basic" version demonstrates how to use the strictly-needed
104library functions, while the full version uses almost all of the
105API methods provided. The Makefile shows how to set the compilation
106flags.
107
108See the README file in that directory for more information.
109
110The complete manual and reference for the library, together with
111some additional notes, can be found in the `docs' directory in
112docbook format. The reference is also provided in man page format.
113The makefile in that directory (hopefully) generates the manual in
114html format, using xsltproc; then you'll find the index named after
115`liblqr_manual_index.html'.
116See the README file in that directory for further information.
117
118
119
120+ References
121------------
122
123The library implements the algorithm described in the paper
124"Seam Carving for Content-Aware Image Resizing"
125by Shai Avidan and Ariel Shamir, which can be found at
126http://www.faculty.idc.ac.il/arik/imret.pdf
127
128
129
130+ Copyright
131-----------
132
133Copyright (C) 2007-2009 Carlo Baldassi <carlobaldassi@gmail.com>
134
135

README.Windows

1Compiling the library in Windows
2================================
3
4DISCLAIMER: these notes are not very reliable, as they're
5based on some very simple tests, without much knowledge of
6the Windows operating system.
7
81) Using MinGW/MSYS
9
10Everything goes as in standard *nix systems (you should
11probably change the default installation location with the
12--prefix option in `configure').
13With the default options, the `configure' sctipt produces a
14DLL.  If you want to build a static library, you should pass the
15options --disable-shared and --disable-declspec to
16`configure', and make sure you define the preprocessor
17LQR_DISABLE_DECLSPEC whenever you want to compile/link
18against the static library.
19
202) Using MS Visual C++
21
22The library compiles with `Microsoft Visual C++ 2008 Express
23edition' and `Microsoft Visual C++ 2010 Express Edition'.
24Follow these steps:
25
26  a) Create a new project (suggested name: `liblqr-1-0')
27
28   *) In the 2008 edition, create an empty DLL project with
29      the default setup (choose Console Application then
30      Advanced Settings -> DLL + Empty Project). The
31      suggested name is liblr-1-0
32
33   *) In the 2010 edition, choose Empty project
34
35  b) Copy the `lqr' directory in the project directory you
36  have created
37
38  c) Add all the source files within the `lqr' directory to
39  the project (right-click -> Add -> Existing item...)
40
41  d) Go to Project -> Properties in the menu. This opens a
42  dialog. At the top, set "Configuration:" to "All
43  Configurations". Then, go to "Configuration Properties"
44  and set the options as follows:
45
46   *) [2010 edition only] General -> Configuration Type:
47      Dynamic Library
48
49   *) C/C++ -> General -> Additional Include Directories:
50      add the directory `lqr' and its parent, and also the
51      directory where all the necessary glib-2.0 headers are
52      found (usually, there are 2 of those, one ends with
53      `include\glib-2.0', another with
54      `lib\glib-2.0\include')
55
56   *) C/C++ -> Preprocessor -> Preprocessor Definitions: add
57      LQR_EXPORTS to the list
58
59   *) C/C++ -> Advanced -> Compile As: Compile as C Code (it
60      also works otherwise, but this option seems to make
61      sense given that the library is ANSI C)
62
63   *) Linker -> General -> Version: set version number
64
65   *) Linker -> General -> Additional Library Directories:
66      add the directory where glib-2.0.lib is found
67
68   *) Linker -> Input -> Additional Dependencies: add
69      glib-2.0.lib
70
71When you build the project, it should produce the library
72liblqr-1-0.lib and liblqr-1-0.dll files (assuming your
73project is called `liblqr-1-0').
74