Page 1 of 1

Para Desarrolladores: PCL 1.0 Disponible

Posted: Tue Oct 10, 2006 4:01 pm
by juan_conejero
Nos satisface anunciar que la primera versión release de PixInsight Class Library, PCL 1.0.1.81, ya está disponible:

http://pleiades-astrophoto.com/download/STD/index.html

PCL es una biblioteca de clases escrita en ISO C++ que constituye un entorno de desarrollo de módulos para PixInsight Standard. Los módulos de PixInsight implementan nuevos procesos, formatos de archivo, y sus interfaces de usuario asociadas.

Con esta nueva versión, PCL tiene todo lo que los desarrolladores necesitan para escribir sofisticadas y versátiles herramientas de procesamiento de imágenes. Sucintamente, las principales características de PCL 1.0 incluyen:

- Un entorno de desarrollo independiente de la plataforma. PCL es código altamente portable y virtualmente no tiene ninguna dependencia de sistemas operativos o arquitecturas de hardware particulares. Cuando la aplicación principal de PixInsight sea transportada a Linux y Mac OS X, los módulos desarrollados con PCL serán directamente portables a esas plataformas, además de a MS Windows, sin cambiar una sóla línea de código.

- Siete formatos de píxel soportados de forma transparente:

* Imágenes reales con píxeles enteros de 8, 16 y 32 bits.
* Imágenes reales con píxeles en punto flotante de 32 y 64 bits.
* Imágenes complejas con píxeles en punto flotante de 32 y 64 bits.

Para soportar estos formatos los desarrolladores sólo tienen que escribir sus procesos una única vez. PixInsight generará el código necesario para implementar los siete formatos automáticamente, gracias a un sofisticado sistema de templates C++.

- Un completo conjunto de algoritmos de procesamiento de imágenes. PCL incluye implementaciones eficientes, listas para ser incorporadas en nuevos módulos, de un amplio abanico de algoritmos: desde transformaciones geométricas a avanzadas técnicas de procesamiento multiescala (por ejemplo wavelets). PCL proporciona también soporte integrado de los formatos FITS, TIFF y JPEG.

- Interfaz de alto nivel con la aplicación principal de PixInsight. Los módulos desarrollados con PCL se comunican con la aplicación principal para gestionar ventanas de imagen, vistas, previsualizaciones, instancias de procesos, consolas de procesamiento, y los principales elementos de la plataforma y sus interfaces gráfica y en línea de comandos.

- Definición de los procesos mediante una interfaz abstracta que automatiza todas las tareas relacionadas con la integración de los procesos en la plataforma PixInsight. Los desarrolladores sólo tienen que preocuparse de definir los parámetros formales y la funcionalidad de sus procesos, y PixInsight gestiona automáticamente los iconos de proceso y los scripts, e integra cada proceso y sus interfaces de usuario asociadas en el entorno gráfico de la plataforma.

- Un rico conjunto de potentes herramientas para la definición de interfaces de usuario. PCL proporciona un conjunto exhaustivo de controles que permite a los desarrolladores construir interfaces de usuario complejas y altamente interactivas: desde todo tipo de botones hasta vistas en árbol, tab boxes, combo boxes, controles compuestos para manejo fácil de parámetros numéricos, y mucho más. Los desarrolladores disponen de control total sobre el dibujo de los controles y su interacción con el usuario mediante un completo conjunto de eventos de interfaz, incluyendo eventos del ratón, del teclado, y eventos internos del sistema de interfaz gráfica.

- Interfaces estáticas y dinámicas. En la plataforma PixInsight, las interfaces estáticas permiten recoger parámetros de procesos y definir cómo se generan las instancias de los mismos. Esto es todo lo que la mayor parte de los procesos necesitan. Por ejemplo, HistogramTransform, Resample y ColorManagementSetup son interfaces estáticas. Las interfaces dinámicas son capaces de interactuar con las ventanas de imagen y de generar gráficos arbitrarios sobre las mismas, gracias a un protocolo de comunicación rico y versátil. DynamicCrop, DynamicBackgroundExtraction y CloneStamp son tres ejemplos de interfaces dinámicas.

- Los desarrolladores de módulos PixInsight pueden definir tanto interfaces gráficas como en línea de comandos para sus procesos. Por supuesto, una interfaz gráfica de usuario es imprescindible, especialmente en un entorno altamente orientado a gráficos como es PixInsight. Sin embargo, las interfaces en línea de comandos son potentes y proporcionan ciertas ventajas únicas que los usuarios experimentados conocen muy bien. Con PCL, los desarrolladores tienen acceso a lo mejor de ambos mundos muy fácilmente.

- Soporte de procesamiento en paralelo con clases específicas para threads (hilos de ejecución) y sincronización de threads. Con las nuevas clases Thread, Lock y AutoLock disponibles desde PCL 1.0.1.81, los desarrolladores pueden incorporar capacidad de procesamiento en paralelo en sus implementaciones. Muchos procesos estándar están siendo desarrollados con estas clases por parte del equipo de Pleiades Software; DynamicBackgroundExtraction y DynamicAlignment son dos buenos ejemplos.

- PCL es totalmente gratuita y está disponible de forma completa, sin imponer límite alguno ni sobre los trabajos realizados ni sobre la forma en que éstos se distribuyen y/o comercializan. Los autores son libres de desarrollar sus módulos de PixInsight basados en PCL, que pueden ser productos freeware, shareware o comerciales, tanto en régimen de código abierto como propietario.

*************************

IMPORTANTE

Los módulos existentes deben ser recompilados y enlazados con PCL build 81 antes de intentar instalarlos en la última build 223 de la aplicación principal de PixInsight.

Los módulos enlazados con PCL 1.0.1.81 serán compatibles con la versión final de PixInsight Standard 1.0.

*************************

La nueva distribución de PCL incluye:

* La aplicación principal PixInsight Standard 1.0.1.223 Beta 3, versión con limitación de tiempo que caduca el 31 de octubre de 2006. Al menos una nueva versión será publicada antes de esa fecha.

* El entorno PCL completo, versión 1.0.1.81, listo para la producción de módulos PixInsight.

* El código fuente completo de los siguientes módulos estándar de PixInsight:

- Módulos de soporte de formatos de archivo: FITS, JPEG, JPEG2000 y TIFF

- Categorías de procesos: Geometry, Global, Image y TransferCurves (excepto el proceso AutoHistogram).

El módulo TransferCurves incluye los códigos fuente completos de los procesos HistogramTransform, CurvesTransform, DigitalDevelopment y ExponentialTransform, junto con sus interfaces de usuario, entre otros. El módulo Geometry incluye todo el código fuente de las transformaciones geométricas. Esto es ciertamente una buena cantidad de código fuente, que contiene algoritmos avanzados e implementaciones sofisticadas, que estamos proporcionando de forma gratuita como material de referencia para desarrolladores.

Los códigos fuente de DynamicCrop y TransferCurves, con sus interfaces, proporcionan información y ejemplos suficientes para implementar virtualmente cualquier herramienta de procesamiento de imágenes en la plataforma PixInsight/PCL, incluso procesos extremadamente sofisticados.

______________________________________________________________________________

Estaremos encantados de recibir todas vuestras sugerencias, opiniones, quejas, críticas, y por supuesto informes de bugs.

¡Que lo disfrutéis!

El equipo de desarrollo de Pleiades Software