Copyright
Copyright © José
Luis Lara Carrascal 2008-2013 
Sumario
Introducción
Instalación
Iniciamos Fotoxx
Enlaces
Introducción
Fotoxx no es sólo un editor de imagen más disponible para los usuarios de GNU/Linux,
sino que ofrece unas funciones de edición de las que otros
programas del mismo tipo carecen. Me ha sorprendido gratamente este
programa, lo reconozco, la generación de los índices de
las miniaturas es sorprendentemente rápido (incluso las de gran
tamaño), sus funciones de composición de imágenes
(muy indicado para los paisajes, o las imágenes de revistas que
solemos escanear y que suelen estar divididas en 2 páginas)
soportan hasta cálculo automático de las coordenadas de
superposición, la posibilidad de creación de
imágenes HDR,
unas más que aceptables opciones de ajustes de brillo y
contraste y en definitiva un programa a la altura de sus
homólogos en Windows,
y que se echaba en falta en nuestro sistema.
Instalación
Dependencias
Herramientas de Compilación
Entre paréntesis la
versión con la que se ha compilado Fotoxx para la elaboración de este documento.
* GCC - (4.8.0) o Clang - (3.2)
* Make - (3.82)
* Pkg-config - (0.28)
Librerías
de Desarrollo
*
Xorg o XFree86 - (Xorg 7.7 / xorg-server 1.14.0)
* GTK+ - (3.8.1)
* Libpng - (1.4.12)
* Libtiff - (4.0.3)
* Liblcms - (2.4)
Aplicaciones
* ExifTool - (9.18)
* DCRaw - (9.16)
* UFRaw - (0.19.2)
* Xdg-utils - (1.1.0-rc1)
Descarga
fotoxx-13.05.2.tar.gz
Extracción 
| Información general sobre el uso de los comandos |
En los comandos largos, seleccionar el comando desde su comienzo, omitiendo el símbolo ($ o #) y el espacio que existe entre éste y el comando. Una vez lo hemos seleccionado, pegarlo con el botón central del ratón sobre la
línea de comandos de la terminal, y darle a intro o enter. El comando se queda grabado en el historial de bash, por lo que podemos buscarlo con las flechas arriba y abajo del teclado para poder utilizarlo posteriormente, hasta que desaparezca del historial, si no volvemos a ejecutarlo y utilizamos otros comandos.
La barra inclinada hacia la izquierda (\) que aparece al final de la línea de algunos comandos, sirve para cortar el comando y poder seguir escribiéndolo en la siguiente línea. Cuando seleccionamos un comando cortado, y lo pegamos en la línea de comandos, la línea o líneas siguientes al comando de inicio aparecerán con el símbolo inicial (>), que indica la continuación del comando introducido en la siguiente línea. Le damos a intro o enter, y éste se ejecutará sin ningún problema. En el historial de bash, el comando aparecerá todo junto,
sin saltos de línea.
Los comandos de bucle que empiezan por for y terminan en done, hay que seleccionarlos desde for hasta done inclusive. Y luego realizar la misma operación de copiado y pegado que se explica en el comienzo de esta nota de
información.
|
$ tar zxvf fotoxx-13.05.2.tar.gz
$ cd fotoxx-13.05.2
$ export {CC,CXX}=clang
|
Explicación
de los comandos
export {CC,CXX}=clang
:
Si vamos a compilar el paquete con Clang, establecemos
la correspondiente variable de entorno.
Optimizaciones
GCC
$ sed -i '6,7s:-O3:& -march=amdfam10 -mtune=amdfam10:' Makefile
|
Clang
$ sed -i '6,7s:-O3:& -march=amdfam10:' Makefile
|
| Donde pone amdfam10
se indica el procesador respectivo de cada sistema
seleccionándolo de la siguiente tabla: |
Nota informativa sobre las optimizaciones para GCC
|
* La opción '-march=' establece el procesador mínimo con el que funcionará el programa compilado, la opción '-mtune=' el procesador específico para el que será optimizado.
* Los valores separados por comas, son equivalentes, es decir, que lo mismo da poner '-march=k8' que '-march=athlon64'.
* En versiones de GCC 3.2.x e inferiores se utiliza la opción '-mcpu=' en lugar de '-mtune='.
|
Nota informativa sobre las optimizaciones para Clang
|
* La opción '-mtune=' no
está soportada por Clang.
* Los valores de color azul no son compatibles con Clang.
* Las filas con el fondo de color amarillo son valores exclusivos de Clang,
y por lo tanto, no son aplicables con GCC.
|
| Valores |
CPU |
| generic |
Produce un código
binario optimizado para la mayor parte de procesadores existentes.
Utilizar este valor si no sabemos el nombre del procesador que
tenemos en nuestro equipo. Este valor sólo es aplicable en
la opción '-mtune='. Esta opción está disponible a
partir de GCC 4.2.x. |
| i386 |
Intel i386.
|
| i486 |
Intel i486. |
| i586, pentium |
Intel Pentium sin soporte de instrucciones MMX. |
| pentium-mmx |
Intel PentiumMMX basado en Pentium con soporte de instrucciones MMX. |
| pentiumpro |
Intel PentiumPro. |
| i686 |
Produce un código binario optimizado para la mayor parte de
procesadores compatibles con la serie 80686 de Intel. Todos los actuales lo son. |
| pentium2 |
Intel Pentium2 basado en PentiumPro con soporte de instrucciones MMX. |
| pentium3, pentium3m |
Intel Pentium3 basado en PentiumPro con soporte de instrucciones MMX y SSE. |
| pentium-m |
Versión de bajo
consumo de Intel Pentium3 con soporte de instrucciones MMX, SSE y SSE2.
Utilizado por los portátiles Centrino. |
| pentium4, pentium4m |
Intel Pentium4 con soporte de instrucciones MMX, SSE y SSE2. |
| x86-64 |
Procesadores
AMD y compatibles con soporte de instrucciones x86-64, SSE2 y
extensiones
64-bit. |
| yonah |
Procesadores
basados en la microarquitectura de Pentium M, con soporte de
instrucciones MMX, SSE, SSE2 y SSE3. |
| prescott |
Versión mejorada de Intel Pentium4 con soporte de instrucciones MMX, SSE, SSE2 y SSE3. |
| nocona |
Versión mejorada de Intel Pentium4 con extensiones 64-bit y soporte de instrucciones MMX, SSE, SSE2 y SSE3. |
| core2 |
Intel Core2 con
extensiones 64-bit y soporte de instrucciones MMX, SSE, SSE2, SSE3 y
SSSE3. Esta opción está disponible a partir de GCC 4.3.x. |
| penryn |
Intel
Penryn con soporte de instrucciones MMX, SSE, SSE2, SSE3,
SSSE3 y SSE4.1. |
| corei7 |
Intel Core i7 con
extensiones 64-bit y soporte de instrucciones MMX, SSE, SSE2, SSE3,
SSSE3, SSE4.1 y SSE4.2. Soporta también los procesadores Intel
Core i3 e i5. Esta opción está disponible a partir
de GCC 4.6.x. |
| nehalem |
Procesadores
basados en la microarquitectura de procesador Nehalem de Intel. |
| westmere |
Procesadores
basados en la microarquitectura de procesador Westmere de Intel. |
| corei7-avx |
Intel Core i7 con
extensiones 64-bit y soporte de instrucciones MMX, SSE, SSE2, SSE3,
SSSE3, SSE4.1, SSE4.2, AVX, AES y PCLMUL. Soporta también los
procesadores Intel Core i3 e i5. Esta opción está
disponible a partir de GCC 4.6.x. |
| core-avx-i |
Intel Core (ivyBridge) con
extensiones 64-bit y soporte de instrucciones MMX, SSE, SSE2, SSE3,
SSSE3, SSE4.1, SSE4.2, AVX, AES, PCLMUL, FSGSBASE, RDRND y F16C. Esta opción está disponible a partir
de GCC 4.7.x. |
| core-avx2 |
Intel Core (Haswell). Esta opción está disponible a partir
de GCC 4.7.x. |
| atom |
Intel Atom con extensiones 64-bit y soporte de instrucciones MMX, SSE, SSE2, SSE3 y SSSE3. Esta opción está
disponible a partir de GCC 4.5.x. |
| k6 |
AMD K6 con soporte de instrucciones MMX. |
| k6-2, k6-3 |
Versiones mejoradas de AMD K6 con soporte de instrucciones MMX y 3DNow!. |
| athlon, athlon-tbird |
AMD Athlon con soporte de instrucciones MMX, 3DNow!, enhanced 3DNow! y SSE prefetch. |
| athlon4, athlon-xp, athlon-mp |
Versiones mejoradas de AMD Athlon con soporte de instrucciones MMX, 3DNow!, enhanced 3DNow! y full SSE. |
| k8, opteron, athlon64, athlon-fx |
Procesadores basados en
AMD K8 core con soporte de instrucciones x86-64 (MMX, SSE, SSE2,
3DNow!, enhanced 3DNow! y extensiones 64-bit). |
| k8-sse3, opteron-sse3, athlon64-sse3 |
Versiones mejoradas de
AMD K8 core con soporte de instrucciones SSE3. Esta opción
está disponible a partir de GCC 4.3.x. |
| amdfam10, barcelona |
Procesadores basados en
AMD Family 10h core con soporte de instrucciones x86-64 (MMX, SSE,
SSE2, SSE3, SSE4A, 3DNow!, enhanced 3DNow!, ABM y extensiones
64-bit). Esta opción está disponible a partir de GCC 4.3.x. |
| btver1 |
Procesadores basados en
AMD Family 14h core con soporte de instrucciones x86-64 (MMX, SSE,
SSE2, SSE3, SSE4A, CX16, ABM y extensiones 64-bit). Esta opción está disponible a partir
de GCC 4.6.x. |
| btver2 |
Procesadores basados en
AMD Family 16h core con soporte de instrucciones x86-64 (MOVBE, F16C, BMI, AVX, PCL_MUL, AES, SSE4.2, SSE4.1, CX16, ABM, SSE4A, SSSE3, SSE3, SSE2, SSE, MMX y extensiones 64-bit). Esta opción está disponible a partir
de GCC 4.8.x. |
| bdver1 |
Procesadores basados en
AMD Family 15h core con soporte de instrucciones x86-64 (FMA4, AVX, XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE,
SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM y extensiones
64-bit). Esta opción está disponible a partir
de GCC 4.7.x. |
| bdver2 |
Procesadores basados en
AMD Family 15h core con soporte de instrucciones x86-64 (BMI, TBM, F16C, FMA, LWP, AVX, XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE,
SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM y extensiones
64-bit). Esta opción está disponible a partir
de GCC 4.7.x. |
| bdver3 |
Procesadores basados en
AMD Family 15h core con soporte de instrucciones x86-64 (FMA4, AVX, XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE,
SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM y extensiones
64-bit). Esta opción está disponible a partir
de GCC 4.8.x. |
| winchip-c6 |
IDT Winchip C6, que equivale a un i486 con soporte de instrucciones MMX. |
| winchip2 |
IDT Winchip2, que equivale a un i486 con soporte de instrucciones MMX y 3DNow!. |
| c3 |
Via C3 con soporte de instrucciones MMX y 3DNow!. |
| c3-2 |
Via C3-2 con soporte de instrucciones MMX y SSE. |
| geode |
AMD integrado con soporte de instrucciones MMX y 3DNow!. Esta opción está disponible a partir de GCC 4.3.x. |
| native |
Produce un código
binario optimizado para el procesador que tengamos en nuestro sistema,
siendo éste detectado utilizando la instrucción cpuid.
Procesadores antiguos pueden no ser detectados utilizando este valor.
Esta opción está disponible a
partir de GCC 4.2.x. |
Compilación
Instalación como root
$ su
# strip -d fotoxx; make install
|
Directorio de configuración personal
| ~/.fotoxx |
Es el directorio de configuración personal de Fotoxx en nuestro home. |
Desinstalación
como root
1) MODO TRADICIONAL
En el directorio de compilación
ejecutamos el siguiente comando como root:
2) MODO MANUALINUX
El principal inconveniente del comando anterior es
que
tenermos que tener el directorio de compilación en nuestro
sistema para poder desinstalar el programa. En algunos casos esto
supone muchos megas de espacio en disco. Con el paquete de scripts que
pongo a continuación logramos evitar
el único inconveniente que tiene la compilación
de
programas, y es el tema de la desinstalación de los mismos
sin
la necesidad de tener obligatoriamente una copia de las fuentes
compiladas.
fotoxx-13.05.2-scripts.tar.gz
$ su
# tar zxvf fotoxx-13.05.2-scripts.tar.gz
# cd fotoxx-13.05.2-scripts
# ./Desinstalar_fotoxx-13.05.2 |
Copia de Seguridad
como root
Con este otro script creamos una copia de seguridad de los binarios
compilados, recreando la estructura de directorios de los mismos en un
directorio de copias de seguridad (copibin)
que se crea en el directorio /var. Cuando se haya creado el paquete comprimido de
los binarios podemos copiarlo como usuario a nuestro home
y borrar el que ha creado el script de respaldo, teniendo en cuenta que si queremos
volver a restaurar la copia, tendremos que volver a copiarlo al lugar
donde se ha creado.
$ su
# tar zxvf fotoxx-13.05.2-scripts.tar.gz
# cd fotoxx-13.05.2-scripts
# ./Respaldar_fotoxx-13.05.2 |
Restaurar la Copia de Seguridad
como root
Y con este otro script (que se copia de forma automática cuando
creamos la copia de respaldo del programa) restauramos la copia de
seguridad como root cuando resulte necesario.
$ su
# cd /var/copibin/restaurar_copias
# ./Restaurar_fotoxx-13.05.2
|
Iniciamos Fotoxx
Sólo nos
queda teclear en una terminal o en un lanzador el comando fotoxx,
y el visor aparecerá en la pantalla:
Enlaces
http://www.kornelix.com/fotoxx.html >> La sección de Fotoxx en la web de su autor.
|