Copyright
Copyright © José
Luis Lara Carrascal 2014-2021
Sumario
Introducción
Adobe Photoshop 6.0 SDK
PSPI
Traducción al Español
Iniciamos PSPI
Páginas de descarga de filtros gratuitos para Photoshop
Enlaces
Introducción
NOTA IMPORTANTE: Desde hace varias versiones de Wine, este plugin ya no es funcional con Gimp,
si lo compilamos y lo instalamos a fecha de hoy. Tampoco son
funcionales los binarios
creados a fecha de publicación inicial
de este manual disponibles en esta web que, en su momento, sí lo
eran. De momento, el manual no lo retiro, cómo sí suelo
hacer con los que no son funcionales.
|
PSPI es un plugin para Gimp, mediante el cual podremos utilizar los filtros de Adobe Photoshop
proporcionados por terceros, ampliando las posibilidades de uso de filtros en Gimp. En un principio fue diseñado sólo para Windows, pero posteriormente se creó la correspondiente versión para nuestro sistema, que requiere del uso de Wine para su compilación y ejecución, y cómo dependencia principal de compilación, además de Gimp, el paquete SDK de la versión 6.0 de Photoshop. Paquete hoy en día no disponible en la web de Photoshop, y que he logrado encontrar (me ha costado bastante), como no podía ser de otra forma, en los chinos. Y que he subido al repositorio de software de la web en SourceForge.
El programa no es perfecto, y no tiene implementada de forma correcta
la vista previa de
imagen, lo que hace que cuando abramos un filtro, ésta
sólo mostrará una miniatura de la parte superior
izquierda de la imagen, cuando éstas sean más grandes que
el tamaño de la ventana de la vista previa. A pesar de
todos estos inconvenientes, y que
explico más abajo cómo solventarlos en parte, creo que el
programa merece la pena, que esté documentando en este sitio
web. Junto al manual se incluye la traducción al español
de PSPI.
Adobe Photoshop 6.0 SDK
El paquete SDK de Photoshop lo podemos instalar en nuestra partición de Windows, o en nuestro sistema, utilizando Wine. En este manual, lo instalaremos con Wine
en nuestro sistema. También tendremos que realizar algunas
modificaciones en el código fuente del mismo, para poder
compilar de forma correcta, PSPI.
Descarga
Photoshop60sdk.zip
Extracción e Instalación con Wine
$ unzip Photoshop60sdk.zip
$ wine Photoshop60-SDKWin.exe |
Modificar los archivos de código fuente para una correcta compilación de PSPI
Abrimos con un editor de texto los siguientes archivos de código
y modificamos las líneas de color rojo. De color azul, lo
que se modifica o añade. Partimos de la raíz del
directorio de instalación de Adobe Photoshop 6.0 SDK, ubicado si estamos utilizando el wineprefix predefinido, en "$HOME/.wine/drive_c/Archivos de programa/Adobe/Adobe Photoshop 6.0 SDK".
Archivos de código fuente de Adobe Photoshop 6.0 SDK que deben ser modificados
|
PhotoshopAPI/Pica_sp/SPProps.h (Línea 49)
|
/*******************************************************************************
**
** Imports
**
**/
#include "SPTypes.h"
#include "SPMData.h"
#include "SPPiPL.h"
#ifdef __cplusplus
extern "C" {
#endif
/*******************************************************************************
**
|
SampleCode/Common/Includes/PIUtilities.h (Línea 58) |
#ifndef __PIUtilities_H__
#define __PIUtilities_H__
#include <stddef.h> // Standard definitions.
//#include <Types.h> // Standard types.
#include "PITypes.h" // Photoshop types.
#include "PIGeneral.h" // Photoshop general routines.
#include "PIActions.h" // Photoshop scripting.
#include "PIAbout.h" // AboutRecord structure.
#include "PIDefines.h" // Plug-in definitions.
#include "FileUtilities.h" // Simple file utilities.
|
SampleCode/Common/Includes/WinDialogUtils.h (Línea 200) |
/*********************************************************************/
/* Standardize terminology */
#define ok 1
#define Cancel 2
#define SetRadioGroupState(dp, first, last, item) \
CheckRadioButton(dp, first, last, item)
#define SetCheckBoxState(dp, item, state) \
CheckDlgButton(dp, item, state)
|
SampleCode/Common/Includes/WinUtilities.h (Línea 142 y 161) |
// Every 32-Bit DLL has an entry point DLLInit
//extern "C" {
BOOL APIENTRY DLLInit(HANDLE hInstance, DWORD fdwReason, LPVOID lpReserved);
#else
/* ------------------------------------------------
* Code from Borland's window's dll example code.
* ------------------------------------------------
*/
#if defined(__BORLANDC__)
// Turn off warning: Parameter '' is never used; effects next function only
#pragma argsused
#endif
// Every DLL has an entry point LibMain and an exit point WEP.
int FAR PASCAL LibMain( HANDLE hInstance, WORD wDataSegment,
WORD wHeapSize,
LPSTR lpszCmdLine );
int FAR PASCAL WEP(int nParam);
#endif
//} // end extern "C" {
#endif /* __WinUtilities_H__ */ |
PSPI
Instalación
Dependencias
Herramientas de Compilación
Entre paréntesis la
versión con la que se ha compilado PSPI
para la elaboración de este documento.
* GCC - (4.8.3)
* Winegcc - (1.7.19)
* Gawk - (4.1.1)
* Make - (4.0)
* Intltool - (0.50.2)
* Gettext - (0.19)
* Automake - (1.14.1)
* Autoconf - (2.69)
* Pkg-config - (0.28)
Librerías
de Desarrollo
*
Xorg - (7.7 / xorg-server 1.15.1)
* GTK+ - (2.24.22)
* Gimp - (2.8.10)
* Wine - (1.7.19)
* Adobe Photoshop SDK - (6.0)
Módulos de Perl
* XML::Parser - (2.41)
Descarga
pspi-1.0.7.tar.xz | pspi_gimp-2.8_locale.diff | pspi_es_about.diff
Optimizaciones
$ export
{C,CXX}FLAGS='-O3 -march=znver2 -mtune=znver2'
|
Donde pone znver2
se indica el procesador respectivo de cada sistema
seleccionándolo de la siguiente tabla: |
* 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 e inferiores se utiliza la opción '-mcpu=' en lugar de '-mtune='.
|
Valores |
CPU |
Genéricos |
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=', si utilizamos GCC. Esta opción está disponible a
partir de GCC 4.2. |
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. |
x86-64 |
Procesador genérico con extensiones 64-bit. Esta opción está disponible a
partir de GCC 8. |
x86-64-v2 |
Procesador genérico con con soporte de instrucciones X86-64 (MMX, SSE, SSE2, LAHFSAHF, POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3) y extensiones 64-bit. Esta opción está disponible a
partir de GCC 11. |
x86-64-v3 |
Procesador genérico con con soporte de instrucciones X86-64 (MMX, SSE, SSE2, LAHFSAHF, POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3, AVX, AVX2, F16C, FMA, LZCNT, MOVBE, XSAVE, XSAVEC, FMA4) y extensiones 64-bit. Esta opción está disponible a partir de GCC 11. |
x86-64-v4 |
Procesador genérico con con soporte de instrucciones X86-64 (MMX, SSE, SSE2, LAHFSAHF, POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3, AVX, AVX2, F16C, FMA, LZCNT, MOVBE, XSAVE, XSAVEC, AVX512*, FMA4) y extensiones 64-bit. Esta opción está disponible a partir de GCC 11. |
Intel |
alderlake |
Intel Alderlake con soporte de instrucciones x86-64 (MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, XSAVES, AVX512F, CLWB, AVX512VL, AVX512BW, AVX512DQ, AVX512CD, AVX512VNNI, AVX512BF16, MOVDIRI, MOVDIR64B, AVX512VP2INTERSECT, ENQCMD, CLDEMOTE, PTWRITE, WAITPKG, SERIALIZE, TSXLDTRK, UINTR, AMX-BF16, AMX-TILE, AMX-INT8, AVX-VNNI) y extensiones 64-bit. Esta opción está disponible a partir de GCC 11. |
atom |
Intel Atom
con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3 y
extensiones 64-bit. Esta opción está disponible
desde GCC 4.6, hasta GCC 4.8. A partir de GCC 4.9 se utiliza la definición bonnell. |
bonnell |
Intel Bonnell con soporte de instrucciones
MOVBE, MMX, SSE, SSE2, SSE3, SSSE3 y extensiones 64-bit. Esta opción está disponible a partir
de GCC 4.9. |
broadwell |
Intel Broadwell con soporte de instrucciones
MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT,
AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2,
F16C, RDSEED, ADCX, PREFETCHW y extensiones 64-bit. Esta opción está disponible a partir
de GCC 4.9. |
cannonlake |
Intel Cannonlake Server con soporte de instrucciones MOVBE, MMX, SSE,
SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, PKU, AVX, AVX2, AES, PCLMUL,
FSGSBASE, RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW,
CLFLUSHOPT, XSAVEC, XSAVES, AVX512F, AVX512VL, AVX512BW, AVX512DQ,
AVX512CD, AVX512VBMI, AVX512IFMA, SHA, UMIP y extensiones 64-bit. Esta opción está disponible a
partir de GCC 8. |
cascadelake |
Intel Cascadelake con
soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI,
BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, XSAVES,
AVX512F, CLWB, AVX512VL, AVX512BW, AVX512DQ, AVX512CD, AVX512VNNI y
extensiones 64-bit. Esta opción está disponible a
partir de GCC 9. |
cooperlake |
Intel Cooperlake con
soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3,
SSE4.1, SSE4.2, POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI,
BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, XSAVES, AVX512F, CLWB,
AVX512VL, AVX512BW, AVX512DQ, AVX512CD, AVX512VNNI, AVX512BF16 y
extensiones 64-bit. Esta opción está disponible a
partir de GCC 10. |
core2 |
Intel Core2
con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3 y
extensiones 64-bit. Esta opción está disponible a partir
de GCC 4.3. |
core-avx2 |
Intel Core (Haswell). Esta opción está disponible desde GCC 4.6, hasta GCC 4.8. A partir de GCC 4.9 se utiliza la definición haswell. |
core-avx-i |
Intel Core (ivyBridge)
con soporte de instrucciones MMX, SSE, SSE2, SSE3,
SSSE3, SSE4.1, SSE4.2, AVX, AES, PCLMUL, FSGSBASE, RDRND, F16C y
extensiones 64-bit. Esta opción está disponible
desde GCC 4.6, hasta GCC 4.8. A partir de GCC 4.9 se utiliza la definición ivybridge. |
corei7 |
Intel Core i7 con soporte de instrucciones MMX, SSE, SSE2, SSE3,
SSSE3, SSE4.1 y SSE4.2 y extensiones 64-bit. Soporta también los procesadores Intel
Core i3 e i5. Esta opción está disponible desde GCC 4.6, hasta GCC 4.8. A partir de GCC 4.9 se utiliza la definición nehalem. |
corei7-avx |
Intel Core i7 con soporte de instrucciones MMX, SSE, SSE2, SSE3,
SSSE3, SSE4.1, SSE4.2, AVX, AES y PCLMUL y
extensiones 64-bit. Soporta también los
procesadores Intel Core i3 e i5. Esta opción está disponible desde GCC 4.6, hasta GCC 4.8. A partir de GCC 4.9 se utiliza la definición sandybridge. |
goldmont |
Intel Goldmont con soporte
de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2,
POPCNT, AES, PCLMUL, RDRND, XSAVE, XSAVEOPT, FSGSBASE y extensiones
64-bit. Esta opción está disponible a
partir de GCC 9. |
goldmont-plus |
Intel Goldmont Plus con
soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, AES, PCLMUL, RDRND, XSAVE, XSAVEOPT, FSGSBASE, PTWRITE,
RDPID, SGX, UMIP y extensiones 64-bit. Esta opción está disponible a
partir de GCC 9. |
haswell |
Intel Haswell con soporte de instrucciones
MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT,
AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2,
F16C y extensiones 64-bit. Esta opción está disponible a partir
de GCC 4.9. |
i386 |
Intel i386.
|
i486 |
Intel i486. |
i586, pentium |
Intel Pentium sin soporte de instrucciones MMX. |
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. |
icelake-client |
Intel Icelake Client con soporte de instrucciones MOVBE, MMX, SSE,
SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, PKU, AVX, AVX2, AES, PCLMUL,
FSGSBASE, RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW,
CLFLUSHOPT, XSAVEC, XSAVES, AVX512F, AVX512VL, AVX512BW, AVX512DQ,
AVX512CD, AVX512VBMI, AVX512IFMA, SHA, CLWB, UMIP, RDPID, GFNI,
AVX512VBMI2, AVX512VPOPCNTDQ, AVX512BITALG, AVX512VNNI, VPCLMULQDQ,
VAES y extensiones 64-bit. Esta opción está disponible a
partir de GCC 8. |
icelake-server |
Intel Icelake Server con soporte de instrucciones MOVBE, MMX, SSE,
SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, PKU, AVX, AVX2, AES, PCLMUL,
FSGSBASE, RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW,
CLFLUSHOPT, XSAVEC, XSAVES, AVX512F, AVX512VL, AVX512BW, AVX512DQ,
AVX512CD, AVX512VBMI, AVX512IFMA, SHA, CLWB, UMIP, RDPID, GFNI,
AVX512VBMI2, AVX512VPOPCNTDQ, AVX512BITALG, AVX512VNNI, VPCLMULQDQ,
VAES, PCONFIG, WBNOINVD y extensiones 64-bit. Esta opción está disponible a
partir de GCC 8. |
intel |
Intel Haswell y Silvermont. Este valor sólo es aplicable en
la opción '-mtune='. Esta opción está disponible a partir
de GCC 4.9. |
ivybridge |
Intel Ivy Bridge con soporte de instrucciones
MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX,
AES, PCLMUL, FSGSBASE, RDRND, F16C y extensiones 64-bit. Esta opción está disponible a partir
de GCC 4.9. |
knl |
Intel Knights Landing con soporte de instrucciones
MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2,
AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX,
PREFETCHW, AVX512F, AVX512PF, AVX512ER y extensiones 64-bit. Esta opción está disponible a partir
de GCC 5. |
knm |
Intel Knights Mill con soporte de instrucciones MOVBE, MMX, SSE, SSE2,
SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE,
RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW, AVX512F,
AVX512PF, AVX512ER, AVX512CD, AVX5124VNNIW, AVX5124FMAPS,
AVX512VPOPCNTDQ y extensiones 64-bit. Esta opción está disponible a
partir de GCC 8. |
lakemont |
Intel Quark Lakemont MCU, basado en el procesador Intel Pentium. Esta opción está disponible a partir
de GCC 6. |
nehalem |
Intel Nehalem con soporte de instrucciones MMX,
SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT y extensiones
64-bit. Esta opción está disponible a partir
de GCC 4.9. |
nocona |
Versión mejorada de Intel Pentium4 con soporte de instrucciones MMX, SSE, SSE2, SSE3 y extensiones 64-bit. |
pentiumpro |
Intel PentiumPro. |
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. |
pentium4, pentium4m |
Intel Pentium4 con soporte de instrucciones MMX, SSE y SSE2. |
pentium-m |
Versión de bajo
consumo de Intel Pentium3 con soporte de instrucciones MMX, SSE y SSE2.
Utilizado por los portátiles Centrino. |
pentium-mmx |
Intel PentiumMMX basado en Pentium con soporte de instrucciones MMX. |
prescott |
Versión mejorada de Intel Pentium4 con soporte de instrucciones MMX, SSE, SSE2 y SSE3. |
rocketlake |
Intel Rocket Lake con soporte de instrucciones x86-64 (MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, XSAVES, AVX512F, AVX512VL, AVX512BW, AVX512DQ, AVX512CD, AVX512VBMI, AVX512IFMA, SHA, CLWB, UMIP, RDPID, GFNI, AVX512VBMI2, AVX512VPOPCNTDQ, AVX512BITALG, AVX512VNNI, VPCLMULQDQ, VAES) y extensiones 64-bit. Esta opción está disponible a partir de GCC 11. |
sandybridge |
Intel Sandy Bridge con soporte de instrucciones
MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX,
AES, PCLMUL y extensiones 64-bit. Esta opción está disponible a partir
de GCC 4.9. |
sapphirerapids |
Intel Sapphire Rapids con soporte de instrucciones x86-64 (MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, XSAVES, AVX512F, CLWB, AVX512VL, AVX512BW, AVX512DQ, AVX512CD, AVX512VNNI, AVX512BF16, MOVDIRI, MOVDIR64B, AVX512VP2INTERSECT, ENQCMD, CLDEMOTE, PTWRITE, WAITPKG, SERIALIZE, TSXLDTRK, UINTR, AMX-BF16, AMX-TILE, AMX-INT8 and AVX-VNNI) y extensiones 64-bit. Esta opción está disponible a partir de GCC 11. |
silvermont |
Intel Silvermont con soporte de instrucciones
MOVBE, MMX, SSE, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, AES, PCLMU, RDRND y extensiones 64-bit. Esta opción está disponible a partir
de GCC 4.9. |
skylake |
Intel Skylake con soporte de instrucciones MOVBE, MMX, SSE, SSE2,
SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE,
RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT,
XSAVEC, XSAVES y extensiones 64-bit. Esta opción está disponible a partir
de GCC 6. |
skylake-avx512 |
Intel Skylake Server
con soporte de instrucciones MOVBE, MMX, SSE, SSE2,
SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE,
RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT,
XSAVEC, XSAVES, AVX512F, AVX512VL, AVX512BW, AVX512DQ, AVX512CD y
extensiones 64-bit. Esta opción está disponible a partir
de GCC 6. |
tigerlake |
Intel Tigerlake con soporte
de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3,
SSE4.1, SSE4.2, POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI,
BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, XSAVES, AVX512F,
AVX512VL, AVX512BW, AVX512DQ, AVX512CD, AVX512VBMI, AVX512IFMA, SHA, CLWB, UMIP,
RDPID, GFNI, AVX512VBMI2, AVX512VPOPCNTDQ, AVX512BITALG, AVX512VNNI, VPCLMULQDQ,
VAES, PCONFIG, WBNOINVD, MOVDIRI, MOVDIR64B, AVX512VP2INTERSECT y extensiones 64-bit. Esta opción está disponible a
partir de GCC 10. |
tremont |
Intel Tremont con soporte
de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2,
POPCNT, AES, PCLMUL, RDRND, XSAVE, XSAVEOPT, FSGSBASE, PTWRITE, RDPID,
SGX, UMIP, GFNI-SSE, CLWB, ENCLV y extensiones 64-bit. Esta opción está disponible a
partir de GCC 9. |
westmere |
Intel Westmere con soporte de instrucciones
MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AES,
PCLMUL y extensiones 64-bit. Esta opción está disponible a partir
de GCC 4.9. |
AMD |
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. |
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. |
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. |
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. |
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. |
bdver4 |
Procesadores basados en AMD Family 15h core con soporte de instrucciones x86-64
(BMI, BMI2, TBM, F16C, FMA, FMA4, FSGSBASE, AVX, AVX2, XOP,
LWP, AES, PCL_MUL, CX16, MOVBE, 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.9. |
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. |
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. |
geode |
AMD integrado con soporte de instrucciones MMX y 3DNow!. Esta opción está disponible a partir de GCC 4.3. |
k6 |
AMD K6 con soporte de instrucciones MMX. |
k6-2, k6-3 |
Versiones mejoradas de AMD K6 con soporte de instrucciones MMX y 3DNow!. |
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. |
znver1 |
Procesadores basados en
AMD Family 17h core con soporte de instrucciones x86-64 (BMI, BMI2,
F16C, FMA, FSGSBASE, AVX, AVX2, ADCX, RDSEED, MWAITX, SHA, CLZERO, AES,
PCL_MUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1,
SSE4.2, ABM, XSAVEC, XSAVES, CLFLUSHOPT, POPCNT y extensiones
64-bit). Esta opción está disponible a partir de GCC 6. |
znver2 |
Procesadores basados en
AMD Family 17h core con soporte de instrucciones x86-64 (BMI, BMI2,
,CLWB, F16C, FMA, FSGSBASE, AVX, AVX2, ADCX, RDSEED, MWAITX, SHA,
CLZERO, AES, PCL_MUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3,
SSE4.1, SSE4.2, ABM, XSAVEC, XSAVES, CLFLUSHOPT, POPCNT y extensiones
64-bit). Esta opción está disponible a partir de GCC 9. |
znver3 |
Procesadores basados en AMD Family 19h core con soporte de instrucciones x86-64 (BMI, BMI2, CLWB, F16C, FMA, FSGSBASE, AVX, AVX2, ADCX, RDSEED, MWAITX, SHA, CLZERO, AES, PCLMUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM, XSAVEC, XSAVES, CLFLUSHOPT, POPCNT, RDPID, WBNOINVD, PKU, VPCLMULQDQ, VAES) y extensiones 64-bit. Esta opción está disponible a partir de GCC 11. |
Optimizaciones adicionales
Optimizaciones adicionales |
Graphite
|
$ export {C,CXX}FLAGS+=' -ftree-loop-linear -floop-strip-mine -floop-block'
|
IPA
|
$ export {C,CXX}FLAGS+=' -fipa-pta'
|
LTO |
$ export {C,CXX}FLAGS+=' -fuse-linker-plugin -flto=auto'
|
En versiones inferiores a GCC
10, sustituir auto
por el número de núcleos que tenga nuestro
procesador. Si sólo tiene uno, utilizar el parámetro -flto
|
Extracción y
Configuración
$ tar Jxvf pspi-1.0.7.tar.xz
$ cd pspi-1.0.7
$ patch -Np1 -i ../pspi_gimp-2.8_locale.diff
$ patch -Np1 -i ../pspi_es_about.diff
$ export CC=winegcc
$ autoreconf -vif
$ ./configure --disable-dependency-tracking \
--with-pssdk="'/var/wine/drive_c/Program Files/Adobe/Adobe Photoshop 6.0 SDK'" \
--prefix=$(pkg-config --variable=prefix gimp-2.0)
|
Explicación de los
comandos
patch -Np1 -i ../pspi_gimp-2.8_locale.diff :
Aplicamos este parche personal que actualiza la ubicación en el menú de la entrada correspondiente referente a PSPI, para que se pueda cargar correctamente la traducción del programa.
patch -Np1 -i ../pspi_es_about.diff
:
Con este otro parche personal, traducimos de forma directa, la entrada About Photoshop Plugins y su contenido, que se muestran en el
menú de Ayuda de Gimp, y que por razones que no entiendo, no se cargan con la traducción al español del programa.
export CC=winegcc : Establecemos la correspondiente variable de entorno para que el paquete se compile a través de winegcc, que es un programa intermedio que se utiliza para compilar en nuestro sistema, código creado en Windows para MinGW, sin tener que hacer ninguna modificación al mismo.
autoreconf -vif : Actualizamos los archivos de configuración del paquete.
--disable-dependency-tracking : Acelera el tiempo de compilación.
--with-pssdk="'/var/wine/drive_c/Program Files/Adobe/Adobe Photoshop 6.0 SDK'" : Le indicamos la ruta al directorio de instalación de Adobe Photoshop 6.0 SDK. Sustituir /var/wine por el WINEPREFIX que tenga cada usuario, el predefinido es "/home/usuario/.wine".
--prefix=$(pkg-config --variable=prefix gimp 2.0) : Instala el filtro en la ubicación que tengamos instalado Gimp.
Este parámetro es válido para todos los usuarios,
independientemente de donde tengan ubicada la instalación de Gimp.
Compilación
Parámetros de compilación opcionales
-j2
: Si tenemos un procesador de doble núcleo (dual-core), y el kernel
está optimizado para el mismo y es SMP, con este parámetro
aumentaremos el número de procesos de compilación
simultáneos a un nivel de 2 y aceleraremos el tiempo de compilación del programa de forma considerable.
-j4
: Lo mismo que arriba pero con procesadores de 4 núcleos (quad-core).
Instalación
como root
Archivo de
configuración personal
~/.gimp-2.8/pspirc |
Es
el archivo de configuración de PSPI
en el directorio de configuración personal de Gimp. Guarda la ruta a los filtros de Photoshop y la entrada correspondiente en el menú de filtros de Gimp. |
Desinstalación
como root
1)
MODO TRADICIONAL
En el directorio de compilación
ejecutamos el siguiente comando:
2)
MODO MANUALINUX
El principal inconveniente del comando anterior es
que
tenemos 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.
pspi-1.0.7-scripts.tar.gz
$ su
# tar zxvf pspi-1.0.7-scripts.tar.gz
# cd pspi-1.0.7-scripts
# ./Desinstalar_pspi-1.0.7 |
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 pspi-1.0.7-scripts.tar.gz
# cd pspi-1.0.7-scripts
# ./Respaldar_pspi-1.0.7 |
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_pspi-1.0.7
|
Traducción al
Español
Descarga
PSPI_es-ML0.run
Instalación
como root
$ su -c "sh PSPI_es-ML0.run" |
Iniciamos PSPI
Cuando iniciemos El Gimp, nos vamos a Filtros >> Configurar los filtros de Photoshop..., y añadimos la ruta al directorio o directorios de ubicación de los filtros de Photoshop que vayamos a utilizar. Hacemos clic en Aceptar, salimos de Gimp
y lo volvemos a ejecutar. Tener en cuenta que la primera vez que
registre los filtros, o cada vez que tenga que registrar alguno nuevo,
el inicio de Gimp, se ralentizará un poco, más si nuestro equipo es de tipo medio/bajo, o son muchos los filtros a registrar.
En el siguiente inicio, ya podemos comprobar que los mismos aparecen de forma dispersa en el menú de filtros de Gimp.
Y probamos con uno, y comprobaremos el principal inconveniente de PSPI: la vista previa de imagen de la interfaz del filtro no se muestra de forma correcta.
Podemos jugar con los botones de zoom, e intentar que una parte de la
imagen se vea algo. Esto nos debe de bastar en filtros que tengan que
ver con eliminación de ruido, o perfilado de bordes, pero no nos
sirve en filtros de color, en los que necesitamos una perspectiva
global de la imagen.
Una solución a medias, consiste en duplicar la capa de la
imagen, escalar la copia a 350/400 píxeles más o menos
(con que nos quepa en el área de vista previa es suficiente), y
ajustar el filtro y aplicarlo sobre la misma. Una vez hemos hecho
esto, nos tomamos nota de los valores aplicados, o si son muchos,
realizamos una captura de pantalla de la ventana del filtro.
Seleccionamos la capa inferior, o la base de la imagen, según el
número de capas con las que estemos trabajando. Volvemos a
seleccionar el filtro, establecemos los valores que hemos utilizado
antes, y comprobamos los resultados, comparando las dos capas.
Finalmente, borramos la capa escalada, y nos quedamos con la
original.
Páginas de descarga de filtros gratuitos para Photoshop
No he comprobado que sean todos funcionales con Gimp,
pero si he comprobado que sean gratuitos, o que tengan versiones
gratuitas, además de la de pago. Los que tengan instalador, los
podemos instalar con Wine, o en nuestra partición Windows.
Enlaces
http://tml.pp.fi/gimp/pspi.html >> La web de PSPI.
Búsqueda de manuales de filtros de Photoshop en Manualinux
|