Revision 33673

View differences:

tags/tmp_build/install/instalador-gvSIG-deb/README.txt
1
OVERVIEW
2
==========
3
This ANT script builds a gvSIG Debian package. 
4

  
5
PRECONDITIONS
6
==========
7
- operative system with a GLIBC compatible version for all platforms
8
Ex: If it's built on a Ubuntu 9.04 it won't run in a Debian etch 
9

  
10
- external commands cp, ln, dpck 
11
- external command make and cmake to build natives
12

  
13
- a workspace in built without errors and the directory _fwAndami/gvSIG contains
14
all the extensions
15

  
16
The directory binaries/deb-etch must have the symbolic links to the native libraries
17

  
18
The main dependencies are:
19
libgdal1.5.0 for raster support (conflicts with v1.6 in order to support grass format)
20
libstdc++5 for mrsid support
21

  
22
BUILD
23
==========
24

  
25
1.- Building JNI gdal
26
Edit libjni-gdal/CMakeModules/FindGDAL.cmake and put the path where 
27
gdal headers are placed.
28
The easy way is install from repository (sudo aptitude install libgdal1-1.5.0-grass) and
29
set the directory /usr/include/gdal
30
Define the enviroment JAVA_HOME
31
Finally, run the ant build script.
32

  
33
2.- Building JNI ECW (v3.3)
34
Edit libjni-ecw/CMakeModules/FindECW.cmake and put the path where 
35
ECW headers are placed (ie. /usr/local/include)
36
Define the enviroment JAVA_HOME 
37
Finally, run the ant build script.
38

  
39
3.- Building JNI MrSID  (v7.0.0)
40
Edit libjni-mrsid/CMakeModules/FindMRSID.cmake and put the path where 
41
MrSID headers are placed (ie /usr/local/Geo_DSDK-7.0.6.2167)
42
NOTE: each group of lines has a different include directory!!
43
Set gcc-3.4 as the default gcc compiler
44
Set g++-3.4 as the default g++ compiler
45
Change libstdc++ in the compiler ( /usr/lib/gcc/i486-linux-gnu/3.4.6). Its needed to point libstdc++.so.5
46
Define the enviroment JAVA_HOME
47
Finally, run the ant build script 
48

  
49
4.- Building JNI proj
50
Edit libjni-proj4/Makefile to set the directory where is placed the JNI headers
51
For example:
52
"default_PROJECT_INCS= -Iinclude -I/usr/lib/jvm/java-1.5.0-sun/include -I/usr/lib/jvm/java-1.5.0-sun/include/linux" 
53
In a shell execute make
54

  
55
5.- Building the package
56
Run the ant script and the binary will be placed in the directory "dist"
57

  
58

  
59
POSTCONDITIONS
60
==============
61

  
62
-gvSIG Files:
63
/opt/gvSIG/bin  --> script to run gvSIG and extensions
64
/opt/gvSIG/lib  --> java binaries (jars) 
65
/opt/gvSIG/libs --> native libraries (so)
66

  
67
-System files:
68
/usr/share/mime/packages/gvsig.xml --> gvSIG mime type definition 
69
/usr/share/applications/gvsig.desktop --> desktop shortcut definition
70
/usr/share/icons/ico-gvSIG.png --> shortcut icon
71

  
72
TODO
73
=====
74
check /usr/share/mime/packages/gvsig.xml
75
Version number automatic
76

  
77
KNOWN PROBLEMS
78
==============
79
In the build.xml copy task doesn't preserve permission. Use task exec (with command cp) instead.
80

  
81
HOWTO INSTALL
82
==============
83
aptitude install libgdal1-1.5.0-grass sun-java5-jre
84
aptitude remove libgdal1-1.6.0
85
dpkg -i *.deb
86

  
87

  
88
ANY DOUBT
89
==========
90
jvhigon@gvsig.org
0 91

  
tags/tmp_build/install/instalador-gvSIG-deb/build.xml
1
<?xml version="1.0" encoding="UTF-8"?>
2
<project name="BuildDebian" basedir="." default="build-without-jre">
3
	
4
<property name="dist.dir" value="dist"/>
5
<property name="build.dir" value="build"/>
6
<property name="gvsig.version" value="1.10"/>
7
<property name="gvsig.dir" value="/opt/gvSIG-${gvsig.version}"/>
8
<property file="../../appgvSIG/build.number" prefix="gvsig"/>
9
	
10
<!--	
11
<property name="jni-gdal.dir" value="../../libjni-gdal/lib-dist"/>
12
<property name="jni-proj.dir" value="../../libjni-proj4/dist"/>
13
-->
14

  
15
<property name="libs.dir" value="../../binaries/linux"/>
16
<property name="jni-gdal.dir" value="../../binaries/deb-etch/gdal"/>
17
<property name="jni-proj.dir" value="../../binaries/deb-etch/proj"/>
18
<property name="jni-ecw.dir" value="../../binaries/deb-etch/ecw"/>
19
<property name="jni-mrsid.dir" value="../../binaries/deb-etch/mrsid"/>
20
	
21
<target name="prepare" description="Prepare directory build" depends="prepare-common,prepare-all-natives">
22
	<!--Copy debian structure and change permissions --> 
23
	<copy todir="${build.dir}"  overwrite="true" preservelastmodified="false">
24
	    <fileset dir="${resources.dir}">
25
	    	<exclude name="gvSIG.sh"/>
26
	    </fileset>
27
	</copy>
28
	<exec executable="chmod" dir="${build.dir}/DEBIAN">
29
			<arg value="775"/>
30
			<arg value="postinst"/>
31
			<arg value="postrm"/> 
32
			<arg value="preinst"/> 
33
	</exec>
34
	<!--Copy gvSIG.sh -->
35
	<copy file="${resources.dir}/gvSIG.sh" todir="${build.dir}${gvsig.dir}/bin"/>
36
</target>
37

  
38

  
39
<target name="prepare-common" description="Prepare common files in the build directory">
40
	<!--Copy gvSIG lib -->
41
		<copy todir="${build.dir}${gvsig.dir}/bin/lib">
42
		    <fileset dir="../../_fwAndami/lib/">
43
		      <exclude name=".svn"/>
44
		    </fileset>
45
		</copy>
46
		<!--Copy gvSIG bin directory -->
47
		<copy todir="${build.dir}${gvsig.dir}/bin/gvSIG">
48
			<fileset dir="../../_fwAndami/gvSIG/">
49
				<exclude name=".svn"/>
50
			</fileset>
51
		</copy>
52
		<!--Copy theme -->
53
		<copy todir="${build.dir}${gvsig.dir}/bin/theme">
54
			<fileset dir="../../_fwAndami/theme/">
55
				<exclude name=".svn"/>
56
			</fileset>
57
		</copy>
58
		<!--Copy andami.jar -->
59
		<copy file="../../_fwAndami/andami.jar" todir="${build.dir}${gvsig.dir}/bin"/>
60
		<!-- Copy /usr resources -->
61
		<copy todir="${build.dir}/usr">
62
			<fileset dir="resources/usr"></fileset>
63
		</copy>
64
</target>
65

  
66
<target name="prepare-all-natives" description="Prepare directory build with gvSIG native libraries">
67
		<mkdir dir="${build.dir}${gvsig.dir}/libs"/>
68
		<!--Copy ALL natives --> 
69
		<copy todir="${build.dir}${gvsig.dir}/libs">
70
					<fileset dir="${libs.dir}">
71
						<include name="*so*"/>
72
					</fileset>
73
		</copy>	
74
</target>
75

  
76

  
77
<target name="build-without-jre" description="Creates a Debian Package" depends="clean,prepare-all-natives,copyJAI">
78
	<mkdir dir="${dist.dir}"/>
79
	<antcall target="prepare">
80
		<param name="resources.dir" value="resources/without-jre"/>
81
	</antcall>
82
	<antcall target="prepare-version"/>
83
	<exec executable="dpkg">
84
	    <arg value="--build"/>
85
		<arg value="${build.dir}"/>
86
		<arg value="${dist.dir}"/>
87
	</exec>
88
</target>
89
<target name="build-with-jre" description="Creates a Debian Package with JRE" depends="clean,prepare-all-natives,copyJRE,copyJAI">
90
		<mkdir dir="${dist.dir}"/>
91
		<antcall target="prepare">
92
			<param name="resources.dir" value="resources/with-jre"/>
93
		</antcall>
94
	<antcall target="prepare-version"/>
95
		<exec executable="dpkg">
96
		    <arg value="--build"/>
97
			<arg value="${build.dir}"/>
98
			<arg value="${dist.dir}"/>
99
		</exec>
100
</target>
101
<target name="build-with-jre-etch" description="Creates a Debian Package with JRE  and usinf etch libraries" depends="clean,prepare-all-natives,copyJRE,copyJAI">
102
			<mkdir dir="${dist.dir}"/>
103
			<antcall target="prepare">
104
				<param name="resources.dir" value="resources/with-jre"/>
105
			</antcall>
106
		<copy todir="${build.dir}${gvsig.dir}/libs" overwrite="true" preservelastmodified="false">
107
			<fileset dir="${jni-ecw.dir}"/>
108
			<fileset dir="${jni-gdal.dir}"/>
109
			<fileset dir="${jni-mrsid.dir}"/>
110
			<fileset dir="${jni-proj.dir}"/>
111
		</copy>
112
	<replace file="${build.dir}/DEBIAN/control" token="gvsig-jre" value="gvsig-jre-etch" />
113
		<antcall target="prepare-version"/>
114
			<exec executable="dpkg">
115
			    <arg value="--build"/>
116
				<arg value="${build.dir}"/>
117
				<arg value="${dist.dir}"/>
118
			</exec>
119
</target>
120
<target name="prepare-version" description="Debian control file">
121
	<replace file="${build.dir}/DEBIAN/control" token="#version#" value="${gvsig.version}" />
122
	<replace file="${build.dir}/DEBIAN/control" token="#build#" value="${gvsig.build.number}" />
123
	<replace file="${build.dir}/${gvsig.dir}/bin/gvSIG.sh" token="@version" value="${gvsig.version}" />
124
	<replace file="${build.dir}/usr/share/applications/gvsig.desktop" token="@version" value="${gvsig.version}" />
125

  
126
	<!--<replace file="${build.dir}/DEBIAN/postinst" token="@version" value="${gvsig.version}"/>
127
	<replace file="${build.dir}/DEBIAN/postrm" token="@version" value="${gvsig.version}" />
128
	-->
129
	
130
</target>
131

  
132
<target name="copyJRE" description="Adds JRE.">
133
	<copy file="../instalador-gvSIG-lin/jre/j2re-1_6_0_20-linux.tar.gz" todir="${build.dir}${gvsig.dir}"/>
134

  
135
</target>
136
<target name="copyJAI" description="Copy JAI libraries.">
137
	<copy todir="${build.dir}${gvsig.dir}/libs">
138
				<fileset dir="resources/jai/libs">
139
				</fileset>
140
	</copy>
141
	<copy todir="${build.dir}${gvsig.dir}/bin/lib">
142
					<fileset dir="resources/jai/lib">
143
					</fileset>
144
	</copy>
145
	<copy file="resources/jai/LICENSE-jai.txt" todir="${build.dir}${gvsig.dir}"/>
146
</target>	
147
	
148
<target name="clean" description="Cleans the build directory">
149
	<delete dir="${build.dir}" />	
150
</target>
151
	
152
</project>
0 153

  
tags/tmp_build/install/instalador-gvSIG-deb/resources/without-jre/gvSIG.sh
1
#!/bin/sh
2
# gvSIG.sh
3
export GVSIG_LIBS="/opt/gvSIG-@version/libs"
4
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$GVSIG_LIBS"
5
export PROJ_LIB="/opt/gvSIG-@version/bin/gvSIG/extensiones/org.gvsig.crs/data"
6
export GDAL_DATA="$GVSIG_LIBS/gdal_data"
7
cd "/opt/gvSIG-@version/bin"
8
#java -Djava.library.path=/usr/lib:"/opt/gvSIG-@version/libs" -cp andami.jar:./lib/gvsig-i18n.jar:./lib/beans.jar:./lib/log4j-1.2.8.jar:./lib/iver-utiles.jar:./lib/castor-0.9.5.3-xml.jar:./lib/crimson.jar:./lib/xerces_2_5_0.jar:./lib/javaws.jar:./lib/xml-apis.jar:./lib/looks-2.0.2.jar:./lib/JWizardComponent.jar -Xmx500M com.iver.andami.Launcher gvSIG gvSIG/extensiones $1
9

  
10
for i in ./lib/*.jar ; do
11
  LIBRARIES=$LIBRARIES:"$i"
12
done
13
for i in ./lib/*.zip ; do
14
  LIBRARIES=$LIBRARIES:"$i"
15
done
16

  
17
/usr/lib/jvm/java-6-sun/bin/java -Djava.library.path=/usr/lib:"/opt/gvSIG-@version/libs" -cp andami.jar$LIBRARIES -Xmx500M com.iver.andami.Launcher gvSIG gvSIG/extensiones "$@"
0 18

  
tags/tmp_build/install/instalador-gvSIG-deb/resources/without-jre/DEBIAN/control
1
Package: gvsig
2
Version: #version#-#build#
3
Priority: optional
4
Section: science
5
Architecture: i386
6
Depends: sun-java6-jre 
7
Maintainer: Jose Vicente Higon <jvhigon@gvsig.org>
8
Description: An open source GIS Desktop client 
9
 More information at http://www.gvsig.gva.es
tags/tmp_build/install/instalador-gvSIG-deb/resources/without-jre/DEBIAN/postinst
1
#! /bin/sh
2

  
3
if [ "$1" = "configure" ]; then
4
	if [ -x /usr/bin/update-desktop-database ] ; then
5
        	/usr/bin/update-desktop-database
6
	fi
7
	if [ -x /usr/bin/update-mime-database ] ; then
8
        	/usr/bin/update-mime-database /usr/share/mime
9
	fi
10
fi
11

  
12

  
13
if [ -d /opt/gvSIG-1.10 ]
14
then
15
	cd /opt/gvSIG-1.10
16
else
17
	echo "Directory /opt/gvSIG-1.10 doesn't exist" 
18
	exit -1
19
fi 
20

  
21
#change permissions
22
chmod 775 bin/gvSIG.sh
23
chmod 777 bin
24
chmod -R 777 bin/gvSIG/extensiones
25

  
26
#check license agreement
27
more LICENSE-jai.txt
28

  
29
while (true)
30
do
31
	echo ""
32
    echo "Do you agree? [y/n]"
33
    read ok
34
    if [ $ok = "y" ]
35
    then
36
    	exit 0
37
    else
38
    	if [ $ok = "n" ]
39
   		then
40
                exit 1
41
    	fi
42
	fi
43
done
44

  
0 45

  
tags/tmp_build/install/instalador-gvSIG-deb/resources/without-jre/DEBIAN/postrm
1
#! /bin/sh
2
# postun script for openproj
3

  
4
if [ "$1" = "configure" ]; then
5
	if [ -x /usr/bin/update-desktop-database ] ; then
6
        	/usr/bin/update-desktop-database
7
	fi
8
	if [ -x /usr/bin/update-mime-database ] ; then
9
        	/usr/bin/update-mime-database /usr/share/mime
10
	fi
11
fi
12

  
13
#remove directory
14
cd /opt
15
rm -rf gvSIG-1.10
0 16

  
tags/tmp_build/install/instalador-gvSIG-deb/resources/without-jre/DEBIAN/preinst
1
#!/bin/sh
2
exit 0
0 3

  
tags/tmp_build/install/instalador-gvSIG-deb/resources/without-jre/debian-binary
1
2.0
tags/tmp_build/install/instalador-gvSIG-deb/resources/jai/LICENSE-jai.txt
1
                           Sun Microsystems, Inc.
2
                        Binary Code License Agreement
3
                  JAVA ADVANCED IMAGING API, VERSION 1.1.2
4

  
5
READ THE TERMS OF THIS AGREEMENT AND ANY PROVIDED SUPPLEMENTAL LICENSE TERMS
6
(COLLECTIVELY "AGREEMENT") CAREFULLY BEFORE OPENING THE SOFTWARE MEDIA
7
PACKAGE.  BY OPENING THE SOFTWARE MEDIA PACKAGE, YOU AGREE TO THE TERMS OF
8
THIS AGREEMENT.  IF YOU ARE ACCESSING THE SOFTWARE ELECTRONICALLY, INDICATE
9
YOUR ACCEPTANCE OF THESE TERMS BY SELECTING THE "ACCEPT" BUTTON AT THE END
10
OF THIS AGREEMENT.  IF YOU DO NOT AGREE TO ALL THESE TERMS, PROMPTLY RETURN
11
THE UNUSED SOFTWARE TO YOUR PLACE OF PURCHASE FOR A REFUND OR, IF THE
12
SOFTWARE IS ACCESSED ELECTRONICALLY, SELECT THE "DECLINE" BUTTON AT THE END
13
OF THIS AGREEMENT.
14

  
15
1.  LICENSE TO USE.  Sun grants you a non-exclusive and non-transferable
16
license for the internal use only of the accompanying software and
17
documentation and any error corrections provided by Sun (collectively
18
"Software"), by the number of users and the class of computer hardware for
19
which the corresponding fee has been paid.
20

  
21
2.  RESTRICTIONS.  Software is confidential and copyrighted. Title to
22
Software and all associated intellectual property rights is retained by Sun
23
and/or its licensors.  Except as specifically authorized in any Supplemental
24
License Terms, you may not make copies of Software, other than a single copy
25
of Software for archival purposes.  Unless enforcement is prohibited by
26
applicable law, you may not modify, decompile, or reverse engineer
27
Software.  You acknowledge that Software is not designed, licensed or
28
intended for use in the design, construction, operation or maintenance of
29
any nuclear facility.  Sun disclaims any express or implied warranty of
30
fitness for such uses.  No right, title or interest in or to any trademark,
31
service mark, logo or trade name of Sun or its licensors is granted under
32
this Agreement.
33

  
34
3. LIMITED WARRANTY.  Sun warrants to you that for a period of ninety (90)
35
days from the date of purchase, as evidenced by a copy of the receipt, the
36
media on which Software is furnished (if any) will be free of defects in
37
materials and workmanship under normal use.  Except for the foregoing,
38
Software is provided "AS IS".  Your exclusive remedy and Sun's entire
39
liability under this limited warranty will be at Sun's option to replace
40
Software media or refund the fee paid for Software.
41

  
42
4.  DISCLAIMER OF WARRANTY.  UNLESS SPECIFIED IN THIS AGREEMENT, ALL EXPRESS
43
OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED
44
WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
45
NON-INFRINGEMENT ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT THESE DISCLAIMERS
46
ARE HELD TO BE LEGALLY INVALID.
47

  
48
5.  LIMITATION OF LIABILITY.  TO THE EXTENT NOT PROHIBITED BY LAW, IN NO
49
EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR
50
DATA, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE
51
DAMAGES, HOWEVER CAUSED REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT
52
OF OR RELATED TO THE USE OF OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS
53
BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.  In no event will Sun's
54
liability to you, whether in contract, tort (including negligence), or
55
otherwise, exceed the amount paid by you for Software under this Agreement.
56
The foregoing limitations will apply even if the above stated warranty fails
57
of its essential purpose.
58

  
59
6.  Termination.  This Agreement is effective until terminated.  You may
60
terminate this Agreement at any time by destroying all copies of Software.
61
This Agreement will terminate immediately without notice from Sun if you
62
fail to comply with any provision of this Agreement.  Upon Termination, you
63
must destroy all copies of Software.
64

  
65
7. Export Regulations. All Software and technical data delivered under this
66
Agreement are subject to US export control laws and may be subject to export
67
or import regulations in other countries.  You agree to comply strictly with
68
all such laws and regulations and acknowledge that you have the
69
responsibility to obtain such licenses to export, re-export, or import as
70
may be required after delivery to you.
71

  
72
8.   U.S. Government Restricted Rights.  If Software is being acquired by or
73
on behalf of the U.S. Government or by a U.S. Government prime contractor or
74
subcontractor (at any tier), then the Government's rights in Software and
75
accompanying documentation will be only as set forth in this Agreement; this
76
is in accordance with 48 CFR 227.7201 through 227.7202-4 (for Department of
77
Defense (DOD) acquisitions) and with 48 CFR 2.101 and 12.212 (for non-DOD
78
acquisitions).
79

  
80
9.  Governing Law.  Any action related to this Agreement will be governed by
81
California law and controlling U.S. federal law.  No choice of law rules of
82
any jurisdiction will apply.
83

  
84
10.  Severability. If any provision of this Agreement is held to be
85
unenforceable, this Agreement will remain in effect with the provision
86
omitted, unless omission would frustrate the intent of the parties, in which
87
case this Agreement will immediately terminate.
88

  
89
11.  Integration.  This Agreement is the entire agreement between you and
90
Sun relating to its subject matter.  It supersedes all prior or
91
contemporaneous oral or written communications, proposals, representations
92
and warranties and prevails over any conflicting or additional terms of any
93
quote, order, acknowledgment, or other communication between the parties
94
relating to its subject matter during the term of this Agreement.  No
95
modification of this Agreement will be binding, unless in writing and signed
96
by an authorized representative of each party.
97

  
98
                             DEVELOPMENT TOOLS
99
                    JAVA ADVANCED IMAGING, VERSION 1.1.2
100
                         SUPPLEMENTAL LICENSE TERMS
101

  
102
These supplemental license terms ("Supplemental Terms") add to or modify the
103
terms of the Binary Code License Agreement (collectively, the "Agreement").
104
Capitalized terms not defined in these Supplemental Terms shall have the
105
same meanings ascribed to them in the Agreement. These Supplemental Terms
106
shall supersede any inconsistent or conflicting terms in the Agreement, or
107
in any license contained within the Software.
108

  
109
1. Software Internal Use and Development License Grant. Subject to the terms
110
and conditions of this Agreement, including, but not limited to Section 3
111
(Java(TM) Technology Restrictions) of these Supplemental Terms, Sun grants
112
you a non-exclusive, non-transferable, limited license to reproduce
113
internally and use internally the binary form of the Software complete and
114
unmodified for the sole purpose of designing, developing and testing your
115
Java applets and applications intended to run on the Java platform
116
("Programs").
117

  
118
2. License to Distribute Software.  In addition to the license granted in
119
Section 1 (Software Internal Use and Development License Grant) of these
120
Supplemental Terms, subject to the terms and conditions of this Agreement,
121
including but not limited to Section 3 (Java Technology Restrictions) of
122
these Supplemental Terms, Sun grants you a non-exclusive, non-transferable,
123
limited license to reproduce and distribute the Software in binary code form
124
only, provided that you (i) distribute the Software complete and unmodified
125
and only bundled as part of your Programs, (ii) do not distribute additional
126
software intended to replace any component(s) of the Software, (iii) do not
127
remove or alter any proprietary legends or notices contained in the
128
Software, (iv) only distribute the Software subject to a license agreement
129
that protects Sun's interests consistent with the terms contained in this
130
Agreement, and (v) agree to defend and indemnify Sun and its licensors from
131
and against any damages, costs, liabilities, settlement amounts and/or
132
expenses (including attorneys' fees) incurred in connection with any claim,
133
lawsuit or action by any third party that arises or results from the use or
134
distribution of any and all Programs and/or Software.
135

  
136
3. Java Technology Restrictions. You may not modify the Java Platform
137
Interface ("JPI", identified as classes contained within the "java" package
138
or any subpackages of the "java" package), by creating additional classes
139
within the JPI or otherwise causing the addition to or modification of the
140
classes in the JPI.  In the event that you create an additional class and
141
associated API(s) which (i) extends the functionality of the Java platform,
142
and (ii) is exposed to third party software developers for the purpose of
143
developing additional software which invokes such additional API, you must
144
promptly publish broadly an accurate specification for such API for free use
145
by all developers. You may not create, or authorize your licensees to
146
create, additional classes, interfaces, or subpackages that are in any way
147
identified as "java", "javax", "sun" or similar convention as specified by
148
Sun in any naming convention designation.
149

  
150
4.  Java Runtime Availability.  Refer to the appropriate version of the Java
151
Runtime Environment binary code license (currently located at
152
http://www.java.sun.com/jdk/index.html) for the availability of runtime code
153
which may be distributed with Java applets and applications.
154

  
155
5. Trademarks and Logos. You acknowledge and agree as between you and Sun
156
that Sun owns the SUN, SOLARIS, JAVA, JINI, FORTE, STAROFFICE, STARPORTAL
157
and iPLANET trademarks and all SUN, SOLARIS, JAVA, JINI, FORTE, STAROFFICE,
158
STARPORTAL and iPLANET-related trademarks, service marks, logos and other
159
brand designations ("Sun Marks"), and you agree to comply with the Sun
160
Trademark and Logo Usage Requirements currently located at
161
http://www.sun.com/policies/trademarks. Any use you make of the Sun Marks
162
inures to Sun's benefit.
163

  
164
6. Source Code. Software may contain source code that is provided solely for
165
reference purposes pursuant to the terms of this Agreement.  Source code may
166
not be redistributed unless expressly provided for in this Agreement.
167

  
168
7.  Termination for Infringement.  Either party may terminate this Agreement
169
immediately should any Software become, or in either party's opinion be
170
likely to become, the subject of a claim of infringement of any intellectual
171
property right.
172

  
173
For inquiries please contact: Sun Microsystems, Inc.,.   4150 Network
174
Circle, Santa Clara, California 95054, U.S.A
175
(Form ID#011801)
0 176

  
tags/tmp_build/install/instalador-gvSIG-deb/resources/jai/COPYRIGHT-jai.txt
1
Copyright 2002 Sun Microsystems, Inc., 4150
2
Network Circle, Santa Clara, California 95054, U.S.A. All rights reserved.
3

  
4
Sun Microsystems, Inc. has intellectual property rights relating to
5
technology embodied in this product. In particular, and without
6
limitation, these intellectual property rights may include one or more
7
of the U.S. patents listed at http://www.sun.com/patents and one or more
8
additional patents or pending patent applications in the U.S. and other
9
countries.
10

  
11
This product is distributed under licenses restricting its use, copying
12
distribution, and decompilation. No part of this product may be
13
reproduced in any form by any means without prior written authorization
14
of Sun and its licensors, if any.
15

  
16
Third-party software, including font technology, is copyrighted and
17
licensed from Sun suppliers.
18

  
19
Parts of the product may be derived from Berkeley BSD systems, licensed
20
from the University of California. UNIX is a registered trademark in the
21
U.S. and in other countries, exclusively licensed through X/Open
22
Company, Ltd.
23

  
24
Sun, Sun Microsystems, the Sun logo, Java, and Solaris, the 100% Pure
25
Java logo, the Java Coffee Cup logo and the Solaris logo are trademarks
26
or registered trademarks of Sun Microsystems, Inc. in the U.S. and other
27
countries.
28

  
29

  
30

  
31
The OPEN LOOK and Sun(TM) Graphical User Interface was developed by Sun
32
Microsystems, Inc. for its users and licensees. Sun acknowledges the
33
pioneering efforts of Xerox in researching and developing the concept of
34
visual or graphical user interfaces for the computer industry. Sun holds
35
a non-exclusive license from Xerox to the Xerox Graphical User
36
Interface, which license also covers Sun's licensees who implement OPEN
37
LOOK GUIs and otherwise comply with Sun's written license agreements.
38

  
39
Federal Acquisitions: Commercial Software - Government Users Subject to
40
Standard License Terms and Conditions.
41

  
42
DOCUMENTATION IS PROVIDED "AS IS" AND ALL EXPRESS OR IMPLIED
43
CONDITIONS. REPRESENTATIONS AND WARRANTIES, INCLUDING ANY
44
IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
45
PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE DISCLAIMED,
46
EXCEPT TO THE EXTENT THAT SUCH DISCLAIMERS ARE HELD TO BE
47
LEGALLY INVALID.
48

  
49

  
50

  
51
Copyright 2002 Sun Microsystems, Inc., 4150
52
Network Circle, Santa Clara, California 95054, Etats-Unis. Tous droits
53
r?serv?s.
54

  
55
Sun Microsystems, Inc. a les droits de propri?t? intellectuels relatants
56
? la technologie incorpor?e dans ce produit. En particulier, et sans la
57
limitation, ces droits de propri?t? intellectuels peuvent inclure un ou
58
plus des brevets am?ricains ?num?r?s ? http://www.sun.com/patents et un
59
ou les brevets plus suppl?mentaires ou les applications de brevet en
60
attente dans les Etats - Unis et les autres pays.
61

  
62
Ce produit ou document est prot?g? par un copyright et distribu? avec
63
des licences qui en restreignent l'utilisation, la copie, la
64
distribution, et la d?compilation. Aucune partie de ce produit ou
65
document ne peut ?tre reproduite sous aucune forme, par quelque moyen
66
que ce soit, sans l'autorisation pr?alable et ?crite de Sun et de ses
67
bailleurs de licence, s'il y ena.
68

  
69
Le logiciel d?tenu par des tiers, et qui comprend la technologie
70
relative aux polices de caract?res, est prot?g? par un copyright et
71
licenci? par des fournisseurs de Sun.
72

  
73
Des parties de ce produit pourront ?tre d?riv?es des syst?mes Berkeley
74
BSD licenci?s par l'Universit? de Californie. UNIX est une marque
75
d?pos?e aux Etats-Unis et dans d'autres pays et licenci?e exclusivement
76
par X/Open Company, Ltd.
77

  
78
Sun, Sun Microsystems, le logo Sun, Java, Solaris, le logo 100% Pure
79
Java, le logo Java Coffee Cup et le logo Solaris sont des marques de
80
fabrique ou des marques d?pos?es de Sun Microsystems, Inc. aux
81
Etats-Unis et dans d'autres pays.
82

  
83

  
84

  
85
L'interface d'utilisation graphique OPEN LOOK et Sun(TM) a ?t?
86
d?velopp?e par Sun Microsystems, Inc. pour ses utilisateurs et
87
licenci?s. Sun reconna?t les efforts de pionniers de Xerox pour la
88
recherche et le d?veloppment du concept des interfaces d'utilisation
89
visuelle ou graphique pour l'industrie de l'informatique. Sun d?tient
90
une license non exclusive do Xerox sur l'interface d'utilisation
91
graphique Xerox, cette licence couvrant ?galement les licenci?es de Sun
92
qui mettent en place l'interface d 'utilisation graphique OPEN LOOK et
93
qui en outre se conforment aux licences ?crites de Sun.
94

  
95
DOCUMENTATION EST FOURNIE "EN L'?TAT" ET TOUTES AUTRES CONDITIONS,
96
DECLARATIONS ET GARANTIES EXPRESSES OU TACITES SONT FORMELLEMENT
97
EXCLUES, DANS LA MESURE AUTORISEE PAR LA LOI APPLICABLE, Y COMPRIS
98
NOTAMMENT TOUTE GARANTIE IMPLICITE RELATIVE A LA QUALITE MARCHANDE, A
99
L'APTITUDE A UNE UTILISATION PARTICULIERE OU A L'ABSENCE DE CONTREFA?ON.
0 100

  
tags/tmp_build/install/instalador-gvSIG-deb/resources/jai/README-jai.txt
1
JavaTM Advanced Imaging API v1.1.2 Readme
2

  
3
Contents
4

  
5
   * Introduction
6
        o Installation and System Requirements
7
        o Documentation
8
        o Bugs
9
   * Overview of JAI Functionality
10
        o Core Functionality
11
        o Operators
12
             + Native Acceleration
13
        o How to Run the JAI 1.1 version of Remote Imaging
14
        o How to Run the JAI 1.0.2 version of Remote Imaging
15
   * What's New
16
        o Core Classes
17
        o Operations
18
        o Network Imaging
19
        o Widget Package
20
        o Fixed Bugs
21
   * Changes From JAI 1.1.2-beta to JAI 1.1.2-RC
22
        o Bugs Fixed in JAI 1.1.2-RC
23
        o Enhancements Added in JAI 1.1.2-RC
24
   * Changes From JAI 1.1.2-RC to JAI 1.1.2
25
        o Bugs Fixed in JAI 1.1.2
26
        o Enhancements Added in JAI 1.1.2
27

  
28
   * Feedback
29

  
30
Introduction
31

  
32
The Maintenance Review release of the 1.1 version of the Java TM Advanced
33
Imaging (JAI) specification contains some changes since the JAI 1.1
34
specification Final Release. The present reference implementation, called
35
Java Advanced Imaging 1.1.2, implements the Maintenance Review version of
36
the JAI 1.1 specification and also contains bug fixes and performance
37
enhancements with respect to the most recent implementation of the JAI 1.1
38
specification Final Release which was called JAI 1.1.1_01. It represents
39
development pursuant to maintenance of the Java Advanced Imaging 1.1 JSR.
40

  
41
The changes since JAI 1.1.1_01 are described in the "What's New" section of
42
this document.
43

  
44
The Java Advanced Imaging API home page is located at
45
http://java.sun.com/products/java-media/jai/. There you will find binaries,
46
documentation, answers to frequently asked questions, and other information.
47

  
48
Installation and System Requirements
49

  
50
For general installation instructions please refer to the INSTALL page. For
51
system requirements please refer to the system requirements section of the
52
INSTALL page.
53

  
54
Documentation
55

  
56
Links to Java Advanced Imaging documentation are available at
57
http://java.sun.com/products/java-media/jai/docs/
58

  
59
Bugs
60

  
61
Some bugs are known to exist - see the BUGS page for details.
62

  
63
Overview of JAI Functionality
64

  
65
Core Functionality
66

  
67
All areas of the JAI specification have been implemented for this release.
68
The com.sun.media.jai.codec package continues to be an uncommitted part of
69
JAI. For mode information on image reading and writing images on the Java 2
70
platform and in JAI please refer to the page Image I/O in Java Advanced
71
Imaging.
72

  
73
All operators outlined in the Java Advanced Imaging API specification are
74
implemented.
75

  
76
The major areas of JAI functionality are described below:
77

  
78
  1. Tiling
79

  
80
     Images are made up of tiles. Different images may have different tile
81
     sizes. Each tile can be processed and stored in memory separately.
82
     Tiles may be stored in a centrally-maintained cache for performance.
83
     The use of tiling also facilitates the use of multiple threads for
84
     computation. Previously allocated tiles may also be re-used to save
85
     memory.
86

  
87
  2. Deferred execution
88

  
89
     Image operations performed on an image do not take place immediately
90
     when they are defined. Calculation of pixels happens only when a
91
     portion of the resultant image is requested, and only tiles that are
92
     needed are processed. However, operations always appear semantically to
93
     be completed immediately.
94

  
95
  3. Threaded Computation
96

  
97
     Requests for tiles are given to several running threads, allowing
98
     potential speedups on multi-processor systems or when requesting data
99
     over the network.
100

  
101
  4. Object-Oriented Extensibility
102

  
103
     Users can add their own image operators or override existing operators
104
     by registering the new operators with the operation registry. Please
105
     see the "The Java Advanced Imaging API White Paper," the API
106
     documentation, the JAI tutorial, the sample code, and the jai-interest
107
     archives for more information (in the archives search for subjects
108
     beginning with "sample code").
109

  
110
     Additionally, users may extend a number of non-image classes in order
111
     to add functionality to JAI:
112

  
113
        o Border Extension
114

  
115
          Operators may obtain an extended view of their sources using an
116
          extensible mechanism for generating pixel values outside of the
117
          source image bounds. New subclasses of BorderExtender may be used
118
          to obtain customized functionality.
119

  
120
        o Image Warping
121

  
122
          Subclasses of Warp may be written to perform customized image
123
          warping.
124

  
125
        o Pixel Interpolation
126

  
127
          Subclasses of Interpolation may be written to perform customized
128
          pixel interpolation.
129

  
130
        o Color Spaces
131

  
132
          Subclasses of ColorSpaceJAI may be written to implement
133
          mathematically defined color space transformations without the
134
          need for ICC profiles.
135

  
136
  5. Graphics2D-Style Drawing
137

  
138
     Graphics2D-style drawing may be performed on a TiledImage in a manner
139
     analogous to that available for java.awt.image.BufferedImage.
140

  
141
     The RenderableGraphics class provides a way to store a sequence of
142
     drawing commands and to "replay" them at an arbitrary output
143
     resolution.
144

  
145
  6. Regions of interest (ROIs)
146

  
147
     Non-rectangular portions of an image may be specified using a ROI or
148
     ROIShape object. These ROIs may be used as parameters to the Extrema,
149
     Mean, Histogram or Mosaic operations and the TiledImage.set() and
150
     TiledImage.setData() methods. Operations produce an appropriate ROI
151
     property on their output when one exists on their input.
152

  
153
  7. Image file handling
154

  
155
     This release of Java Advanced Imaging supports BMP, FlashPIX, GIF,
156
     JPEG, PNG, PNM, and TIFF images as defined in the TIFF 6.0
157
     specification, and WBMP type 0 B/W uncompressed bitmaps. TIFF G3 (1D
158
     and 2D), G4, PackBits, LZW, JPEG, and DEFLATE (Zip) compression types
159
     are understood.
160

  
161
     The classes dealing with image file handling (the
162
     com.sun.media.jai.codec package and private implementation packages
163
     that provide support for it) are provided in a separate jai file,
164
     jai_codec.jar. This jar file may be used separately from the
165
     jai_core.jar file containing the various javax.media.jai packages and
166
     their supporting classes.
167

  
168
     As described in the Core Functionality section of this document, the
169
     image codec classes should be considered as temporary helper functions.
170
     They will be replaced by a new API for image I/O that has been defined
171
     under the Java Community Process.
172

  
173
        o BMP File Handling:
174

  
175
               The BMP reader can read Version 2.x, 3.x and some 4.x BMP
176
               images. BMP images with 1, 4, 8, 24 bits can be read with
177
               this reader. Support for 16 and 32 bit images has also been
178
               implemented, although such images are not very common.
179

  
180
               Reading of compressed BMPs is supported. BI_RGB, BI_RLE8,
181
               BI_RLE4 and BI_BITFIELDS compressions are handled.
182

  
183
               The BMP reader emits properties such as type of compression,
184
               bits per pixel etc. Use the getPropertyNames() method to get
185
               the names of all the properties emitted.
186

  
187
               BMP Limitations:
188

  
189
                  + Only the default RGB color space is supported.
190
                  + Alpha channels are not supported.
191

  
192
               BMP Writer:
193
                  + The BMP writer is capable of writing images in the
194
                    Version 3 format. Images which make use of a
195
                    IndexColorModel with 2, 16, or 256 palette entries will
196
                    be written in palette form.
197
                  + RLE4 and RLE8 compression is supported when compatible
198
                    with the image data.
199

  
200
        o FlashPIX file handling:
201

  
202
               A limited FlashPIX reader is provided that is capable of
203
               extracting a single resolution from a FlashPIX image file.
204
               Only simple FlashPix files are decoded properly.
205

  
206
               The image view object is ignored, and image property
207
               information is not exported.
208

  
209
               There is no FlashPIX writer.
210

  
211
        o GIF file handling:
212

  
213
               There is no GIF writer due to the patent on the LZW
214
               compression algorithm.
215

  
216
        o JPEG file handling:
217

  
218
             + JPEG files are read and written using the classes found in
219
               the com.sun.image.codec.jpeg package of the JDK. A set of
220
               simple JAI wrapper classes around these classes is provided.
221
             + The JPEG decoder cannot read abbreviated streams, either
222
               tables-only or image-only.
223

  
224
        o PNG file handling:
225

  
226
               All files in the PNGSuite test suite have been read and
227
               written successfully. See the documentation in
228
               com.sun.media.jai.codec.PNGDecodeParam and PNGEncodeParam for
229
               more information.
230

  
231
        o PNM file handling:
232

  
233
               PNM files may be read and written in both ASCII and raw
234
               formats. The encoder automatically selects between PBM
235
               (bitmap), PGM (grayscale) and PPM (RGB) files according to
236
               the number of bands and bit depth of the source image.
237

  
238
               Due to the limitations of the format, only images with 1 or 3
239
               bands may be written.
240

  
241
        o TIFF file handling:
242

  
243
          TIFF support has the following limitations:
244

  
245
             + The TIFF encoder does not support LZW compression due to the
246
               patent on the algorithm.
247
             + Planar format (PlanarConfiguration field has value 2) is not
248
               supported for decoding or encoding.
249

  
250
        o WBMP file handling:
251

  
252
               The WBMP codec reads and writes images in the Wireless Bitmap
253
               format described in chapter 6 and Appendix A of the Wireless
254
               Application Protocol (WAP) Wireless Application Environment
255
               Specification, Version 1.3, 29 March 2000. The WBMP type
256
               supported is WBMP Type 0: B/W, Uncompressed Bitmap. There are
257
               no limitations on the image dimensions.
258

  
259
  8. Image Layouts
260

  
261
     Images with arbitrary pixel layouts may be processed in a uniform
262
     manner using the PixelAccessor and RasterAccessor classes.
263

  
264
     Source images with ComponentColorModels and IndexColorModels are
265
     supported. DirectColorModel images are not supported.
266

  
267
     PixelAccessor and RasterAccessor provide the most efficient support for
268
     the ComponentSampleModel/ComponentColorModel combination.
269

  
270
  9. Image Collections
271

  
272
     The output of a standard image operator on an instance of
273
     java.util.Collection is a collection of the same type. Nested
274
     collections are supported. Operators may also emit collections of their
275
     choice, or take collections as sources and emit a single image.
276

  
277
 10. Remote Imaging
278

  
279
     JAI allows operations to be performed remotely to be created in a
280
     manner similar to local operations. RemoteJAI.create() and
281
     RemoteJAI.createRenderable() can be used to create operations that are
282
     performed on remote hosts. Operation chains are created on the client
283
     and can contain a mix of local and remote operations by using
284
     JAI.create() and RemoteJAI.create(), respectively to create the
285
     operations.
286

  
287
     The "fileload" and "filestore" operations can allow files that reside
288
     only on remote filesystems to be loaded and stored remotely. This can
289
     be accomplished by setting the checkFileLocally argument to the
290
     operation to be false, in which case the presence of the file to be
291
     loaded or stored is not checked on the local file system when the
292
     operation is first created.
293

  
294
     See sections below for instructions on how to use the JAI 1.0.2 and 1.1
295
     or later versions of remote imaging.
296

  
297
 11. Iterators
298

  
299
     Optimized Rect and Random iterators exist as well as a non-optimized
300
     version of the Rook iterator.
301

  
302
 12. Snapshotting of External Sources
303

  
304
     SnapshotImage provides an arbitrary number of synchronous views of a
305
     possibly changing WritableRenderedImage.
306

  
307
 13. Meta-data Handling
308

  
309
     Meta-data handling is provided via a name-value database of properties
310
     associated with each JAI image. Mechanisms are provided by which such
311
     properties may be generated and processed in the course of image
312
     manipulation. The ability to defer computation of such data is also
313
     provided in a manner conceptually equivalent to that available for
314
     image data. Please refer to the DeferredData and DeferredProperty
315
     classes for more information.
316

  
317
 14. Serialization Support
318

  
319
     SerializerFactory provides a framework is provided to assist in
320
     serializing instances of classes which do not implement
321
     java.io.Serializable. Such objects must be serialized by extracting a
322
     serializable version of their state from which the original object may
323
     be extracted after deserialization.
324

  
325
Operators
326

  
327
Java Advanced Imaging extends the imaging functionality provided in the Java
328
2D API by providing a more flexible and scalable architecture targeted for
329
complex, high performance imaging requirements. In this context a large
330
number of imaging operators are provided.
331

  
332
   * Native Acceleration
333

  
334
     Pure Java implementations are provided for all image operators and
335
     imaging performance is addressed for some of these by providing C-based
336
     native code. Native C-code based acceleration for a certain subset of
337
     operators under specific conditions (listed in the table below) is
338
     available for the Sun/Solaris, Win32 and Linux (x86 only) platforms. On
339
     Sun UltraSPARC-based platforms, additional performance is gained with
340
     hardware acceleration via the VIS instructions for most natively
341
     supported operators. On Win32 platforms which support MMX instructions,
342
     hardware acceleration is gained for a subset of the natively supported
343
     operators.
344

  
345
     If a native implementation is present it is, by default, the preferred
346
     implementation. But if the nature of the sources and parameters of the
347
     operation are incompatible with the native operation then processing
348
     will revert to Java code. In general the following minimum requirements
349
     must be adhered to for the mediaLib native implementation of an
350
     operation to be executed:
351

  
352
        o All sources must be RenderedImages.
353
        o All sources and destination must have
354
             + a SampleModel which is a ComponentSampleModel and
355
             + a ColorModel which is a ComponentColorModel or no ColorModel
356
               (i.e., it is null).
357
        o All sources and the destination must have at most 4 bands of pixel
358
          data.
359
        o If Interpolation type is one of the arguments to the operator,
360
          then native acceleration is available only for Nearest, Bilinear,
361
          Bicubic and Bicubic2 cases. Additionally for byte images
362
          InterpolationTable is also supported for native acceleration.
363

  
364
     Further restrictions may be imposed by individual operations but the
365
     above are the most common requirements.
366

  
367
   * Imaging Operators
368

  
369
     The following image operators are implemented in this release. Only a
370
     brief description of each operator is provided here. For detailed
371
     information on these operators, refer to the package
372
     javax.media.jai.operator in the full documentation available at
373
     http://java.sun.com/products/java-media/jai/docs/index.html.
374

  
375
     All operations are performed on a per-band basis, unless specified
376
     otherwise. C acceleration applies to all platforms whereas VIS is
377
     specific to Sun UltraSPARC and MMX to Windows.
378

  
379
       1. Point and Arithmetic Operators
380

  
381
                                                     Native Acceleration
382
              Operator Name       Description
383
                                                 C VIS MMX      Notes
384
                                Computes the
385
           absolute             absolute value   X  X   X
386
                                of the pixels of
387
                                an image.
388
                                Adds the pixel
389
           add                  values of two    X  X   X
390
                                source images.
391
                                Adds a
392
           addcollection        collection of
393
                                images to one
394
                                another.
395
                                Adds a set of
396
                                constant values
397
           addconst             to the pixel     X  X   X
398
                                values of a
399
                                source image.
400
                                Adds a set of
401
                                constant values
402
           addconsttocollection to the pixel     X  X   X
403
                                values of a
404
                                Collection of
405
                                source images.
406
                                And's the pixel
407
           and                  values of two    X  X   X
408
                                source images.
409
                                And's the pixel
410
                                values of a
411
           andconst             source image     X  X   X
412
                                with a set of
413
                                constants.
414
                                Computes a
415
                                linear
416
           bandcombine          combination of   X  X   X  3x4 matrix only.
417
                                the bands of an
418
                                image.
419
                                Creates an image
420
                                consisting of
421
                                all bands of all
422
           bandmerge            sources
423
                                concatenated in
424
                                the order
425
                                encountered.
426
                                Selects a subset
427
                                of the bands of            Only if the band
428
           bandselect           an image,        X  X   X  selection is
429
                                possibly                   monotonically
430
                                reordering them.           increasing.
431
                                Thresholds a
432
                                single-band
433
           binarize             image to two     X  X
434
                                levels to
435
                                generate a
436
                                bilevel output.
437
                                Set all pixel
438
                                values below the
439
                                low value to
440
                                that low value,
441
           clamp                set all the      X  X   X
442
                                pixel values
443
                                above the high
444
                                value to that
445
                                high value.
446
                                Converts an
447
           colorconvert         image to a given
448
                                ColorSpace.
449
                                Generates an
450
                                optimal LUT by
451
           colorquantizer       executing a
452
                                color
453
                                quantization
454
                                algorithm
455
                                Combines two
456
                                images based on
457
           composite            their alpha      X  X   X
458
                                values at each
459
                                pixel.
460
                                Creates an image
461
           constant             with constant
462
                                pixel values.
463
                                Divides the
464
                                pixel values of
465
                                the first source
466
           divide               image by the     X
467
                                pixel values of
468
                                the second
469
                                source image.
470
                                Divides the
471
                                pixel values of
472
           dividebyconst        a source image   X
473
                                by a set of
474
                                constants.
475
                                Divides a set of
476
           divideintoconst      constants by the X
477
                                pixel values of
478
                                a source image.
479
                                Computes the
480
           exp                  exponential of   X
481
                                the pixel values
482
                                of an image.
483
                                Performs
484
                                reformatting on
485
                                an image,
486
                                including data
487
           format               type casting,
488
                                replacing the
489
                                SampleModel and
490
                                ColorModel, and
491
                                restructuring
492
                                the tile grid.
493
                                Inverts the
494
           invert               pixel values of  X  X   X
495
                                an image.
496
                                Computes the
497
                                natural
498
           log                  logarithm of the X
499
                                pixel values of
500
                                an image.
501

  
502
                                Performs general           Only if table
503
           lookup               table lookup on  X  X   X  has less than or
504
                                an image.                  equal to 4
505
                                                           bands.
506
                                Performs a
507
                                piecewise linear
508
                                remapping of
509
           matchcdf             pixel values to
510
                                match a given
511
                                cumulative
512
                                distribution
513
                                function.
514
                                Chooses the
515
           max                  maximum pixel    X  X   X
516
                                values between
517
                                two images.
518
                                Chooses the
519
           min                  minimum pixel    X  X   X
520
                                values between
521
                                two images.
522
                                Multiplies the
523
           multiply             pixel values of  X  X
524
                                two source
525
                                images.
526
                                Multiplies the
527
                                pixel values of
528
           multiplyconst        a source image   X  X
529
                                by a set of
530
                                constants.
531
                                Inverts the
532
           not                  pixel values of  X  X   X
533
                                a source image.
534
                                Or's the pixel
535
           or                   values of two    X  X   X
536
                                source images.
537
                                Or's the pixel
538
                                values of a
539
           orconst              source image     X  X   X
540
                                with a set of
541
                                constants.
542
                                Overlays one
543
           overlay              image on top of
544
                                another image.
545
                                Performs
546
                                piecewise linear
547
           piecewise            remapping of the
548
                                pixel values of
549
                                an image.
550
                                Performs a
551
                                linear remapping
552
           rescale              of the pixel     X  X
553
                                values of an
554
                                image.
555
                                Subtracts the
556
                                pixel values of
557
           subtract             one image from   X  X   X
558
                                those of
559
                                another.
560
                                Subtracts a set
561
                                of constant
562
           subtractconst        values from the  X  X   X
563
                                pixel values of
564
                                an image.
565
                                Subtracts a set
566
                                of constant
567
           subtractfromconst    values from the  X  X   X
568
                                pixel values of
569
                                an image.
570
                                Maps the pixel
571
                                values that fall
572
           threshold            between a low    X  X   X
573
                                and high value
574
                                to a set of
575
                                constants.
576
                                Xor's the pixel
577
           xor                  values of two    X  X   X
578
                                source images.
579
                                Xor's a source
580
           xorconst             image with a set X  X   X
581
                                of constants.
582

  
583
       2. Area and Geometric Operators
584

  
585
                                                      Native Acceleration
586
               Operator Name        Description
587
                                                  C VIS MMX       Notes
588

  
589
                                 Performs first             InterpolationTable
590
           affine                order geometric  X  X   X  is not MMX
591
                                 image warping.             accelerated for
592
                                                            even byte images.
593

  
594
           border                Adds a border
595
                                 around an image.
596
                                 Convolves an
597
           boxfilter             image using a
598
                                 two-dimensional
599
                                 box filter.
600
                                 Performs an MxN
601
           convolve              image            X  X   X  General and
602
                                 convolution.               separable cases.
603
                                 Extracts a
604
           crop                  subarea of an
605
                                 image.
606
                                 Performs
607
                                                            Only single band,
608
           dilate                morphological    X  X   X  3x3 kernels
609
                                 dilation on an
610
                                 image.                     centered at 1,1
611
                                 Performs
612
                                                            Only single band,
613
           erode                 morphological    X  X   X  3x3 kernels
614
                                 erosion on an
615
                                 image.                     centered at 1,1
616
                                 Performs a
617
                                 combined integral
618
           filteredsubsample     subsample and    X  X   X
619
                                 symmetric
620
                                 product-separable
621
                                 filter.
622
                                 Performs edge
623
           gradientmagnitude     detection using  X  X   X
624
                                 orthogonal
625
                                 gradient masks.
626
                                 Computes the               Only single band;
627
           maxfilter             maximum value of X  X   X  only for a SQUARE
628
                                 a pixel                    mask of size 3, 5,
629
                                 neighborhood.              or 7
630
                                 Computes the
631
           medianfilter          median value of aX  X   X
632
                                 pixel
633
                                 neighborhood.
634
                                 Computes the               Only single band;
635
           minfilter             minimum value of X  X   X  only for a SQUARE
636
                                 a pixel                    mask of size 3, 5,
637
                                 neighborhood.              or 7
638
                                 Creates a mosaic
639
           mosaic                of two or more   X  X   X
640
                                 rendered images.
641

  
642
                                 Rotates an image           InterpolationTable
643
           rotate                about an         X  X   X  is not MMX
644
                                 arbitrary point.           accelerated for
645
                                                            even byte images.
646

  
647
                                 Scales and                 InterpolationTable
648
           scale                 translates an    X  X   X  is not MMX
649
                                 image.                     accelerated for
650
                                                            even byte images.
651
                                                            InterpolationTable
652
           shear                 Shears an image. X  X   X  is not MMX
653
                                                            accelerated for
654
                                                            even byte images.
655
                                 Subsamples an
656
           subsampleaverage      image by         X  X
657
                                 averaging over a
658
                                 moving window.
659
                                 Subsamples a
660
           subsamplebinarytogray bilevel image to X  X
661
                                 a grayscale
662
                                 image.
663
                                 Translates an
664
                                 image by an                InterpolationTable
665
           translate             integral or      X  X   X  is not MMX
666
                                 fractional                 accelerated for
667
                                 amount.                    even byte images.
668
                                 Reflects an image
669
                                 in a specified
670
           transpose             direction or     X  X   X
671
                                 rotates an image
672
                                 in multiples of
673
                                 90 degrees.
674
                                 Sharpens an image
675
           unsharpmask           by suppressing   X  X   X  General and
676
                                 the low                    separable kernels.
677
                                 frequencies.
678
                                 Performs
679
           warp                  geometric warpingX  X   X  polynomial and
680
                                 on an image.               grid only.
681

  
682
       3. Frequency-domain, Transform, and Complex Operators
683

  
684
                                                               Native
685
            Operator Name           Description             Acceleration
686
                                                          C  VIS  MMX Notes
687

  
688
           conjugate        Computes the complex
689
                            conjugate of an image.
690

  
691
           dct              Computes the Discrete Cosine  X
692
                            Transform of an image.
693
                            Computes the Discrete
694
           dft              Fourier Transform of an       X
695
                            image, possibly resulting in
696
                            a complex image.
697

  
698
           dividecomplex    Computes the quotient of two
699
                            complex images.
700
                            Computes the inverse
701
           idct             Discrete Cosine Transform of  X
702
                            an image.
703
                            Computes the inverse
704
           idft             Discrete Fourier Transform    X
705
                            of an image.
706

  
707
           magnitude        Computes the magnitude of a
708
                            complex image.
709
                            Computes the squared
710
           magnitudesquared magnitude of a complex
711
                            image.
712

  
713
           multiplycomplex  Computes the product of two
714
                            complex images.
715

  
716
           periodicshift    Shifts an image
717
                            periodically.
718

  
719
           phase            Computes the phase angle of
720
                            a complex image.
721
                            Creates a complex image from
722
           polartocomplex   two images representing
723
                            magnitude and phase.
724

  
725
       4. Statistical Operators
726

  
727
                                              Native
728
            Operator                       Acceleration
729
              Name        Description
730
                                         C  VIS MMX  Notes
731
                      Computes the
732
                      maximum and                         Only if the ROI
733
           extrema    minimum pixel      X   X   X        is null or
734
                      values of an                        encloses the
735
                      image.                              entire image.
736
                      Computes the
737
           histogram  histogram of an    X   X   X
738
                      image.
739
                                                          Only if the ROI
740
                      Computes the mean                   is null or
741
           mean       pixel value of a   X   X   X        encloses the
742
                      region of an                        entire image and
743
                      image.                              the sampling
744
                                                          period is 1.
745

  
746
       5. Sourceless Operators
747

  
748
           Operator Name                    Description
749
           imagefunction Creates an image by evaluating a function.
750
           pattern       Creates an image consisting of a repeated pattern.
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff