Author Topic: Fabricar script  (Read 23025 times)

Offline caliu

  • PixInsight Addict
  • ***
  • Posts: 210
    • http://www.caliu.fotografiaastronomica.com
Fabricar script
« on: 2007 November 15 21:53:18 »
Hola de nuevo, ¿como empiezo a hacer un script? ¿que debo saber? ¿algun link o tutorial interesante? ¿tengo que usar algun idioma especial para que PI me entienda?, perdonad mi ignorancia.

Offline David Serrano

  • PTeam Member
  • PixInsight Guru
  • ****
  • Posts: 503
Re: Fabricar script
« Reply #1 on: 2007 November 16 02:38:00 »
Quote from: "caliu"
Hola de nuevo


Hola. Me alegra que hayas encontrado tiempo para ponerte a programar :).


Quote from: "caliu"
¿como empiezo a hacer un script?


Mi consejo es que empieces trabajando sobre una copia de uno ya existente. Yo empecé con DrawSignature.js, cambiando el texto, colores, fuente... lo que se te ocurra.

Ahora estoy empezando a ponerme con la PCL y lo mismo, estoy cambiándole chorradas a ChannelMatch para irme haciendo con el tema.


Quote from: "caliu"
¿que debo saber?


Cada uno es como es, y entiende antes unas cosas que otras. Por ejemplo, en mi caso yo tenía un lío enorme en la cabeza hasta que supe que las ventanas dentro tienen vistas, las vistas tienen imágenes y las imágenes tienen canales. Pero esto a otra persona le puede resultar obvio, y lo complicado será otra cosa. Depende de cada uno. De momento puedes ir mirando el explorador de objetos (o como se llame) que aparece a la derecha en el editor de scripts. Ahí puedes navegar por cada uno de los objetos con los que puedes trabajar, y consultar sus propiedades y métodos. Si buscas en google sobre terminología de programación orientada a objetos, encontrarás el significado de objeto, propiedad y método. Con esto podrás hacerte una idea a grandes rasgos de las posibilidades que tienes.


Quote from: "caliu"
¿algun link o tutorial interesante?


No que yo sepa. Sin embargo la sección de desarrollo de este foro está llena de valiosos consejos de los Dioses, y para aprender Javascript siempre puedes usar Google.


Quote from: "caliu"
¿tengo que usar algun idioma especial para que PI me entienda?


Javascript, pero eso ya lo sabes :?:
--
 David Serrano

Offline caliu

  • PixInsight Addict
  • ***
  • Posts: 210
    • http://www.caliu.fotografiaastronomica.com
Fabricar script
« Reply #2 on: 2007 November 16 22:58:54 »
Gracias David, no lo voy a escribir yó, lo hará un amigo que si sabe Javascript aunque dudo que sepa como funciona PI, de ahi mis preguntas, voy a remitirlo al foro para que pregunte por su cuenta.

Offline Pep

  • PixInsight Addict
  • ***
  • Posts: 124
    • COELLO-PEDRAPIQUER
Fabricar script
« Reply #3 on: 2007 December 25 02:45:47 »
Hola,

Tengo una duda, los script que vienen con la instalación, los usuarios ¿tenemos derecho a modificarlos?

En concreto me refiero al "DrawSignature".

No entiendo demasiado este lenguaje (soy de VB 6.0), pero solo es cuestión de meterse, y en concreto en este script me gustaría poder añadir un control "RadioButton" para poder seleccionar la posición donde aparece el texto sobre la imagen, ya que en principio solo sale en el margen inferior izquierdo.

Cualquier ayuda será bien recibida, ya que me declaro un novato borrico en este lenguaje.

Aprovechado, desearos a todos los componentes del foro

Feliz Navidad
Pep Ferrer
Observatorio:
COELLO-PEDRAPIQUER
Callosa d'en Sarria (Alicante)

Offline ManoloL

  • PixInsight Addict
  • ***
  • Posts: 220
Fabricar script
« Reply #4 on: 2007 December 25 04:33:28 »
Quote from: "Pep"
Hola,

Tengo una duda, los script que vienen con la instalación, los usuarios ¿tenemos derecho a modificarlos?

En concreto me refiero al "DrawSignature".

No entiendo demasiado este lenguaje (soy de VB 6.0), pero solo es cuestión de meterse, y en concreto en este script me gustaría poder añadir un control "RadioButton" para poder seleccionar la posición donde aparece el texto sobre la imagen, ya que en principio solo sale en el margen inferior izquierdo.

Cualquier ayuda será bien recibida, ya que me declaro un novato borrico en este lenguaje.

Aprovechado, desearos a todos los componentes del foro

Feliz Navidad


Hola Pep:
No es que tengamos derecho, se puede decir que tenemos obligación.
Lo único es por precaución hacerlo sobre una copia.
Yo ya me he estrenado.
En el script propuesto por Juan:
http://pixinsight.com/forum/viewtopic.php?t=496
cambié
#define MAX_RANGE 10000000
por
#define MAX_RANGE 65536

Ya casi me siento un programador, al ver como se incrementó la velocidad,.....aunque fue él quien me sugirió el cambio :oops:
Saludos.
Saludos.

Manolo L.

Offline Pep

  • PixInsight Addict
  • ***
  • Posts: 124
    • COELLO-PEDRAPIQUER
Fabricar script
« Reply #5 on: 2007 December 25 21:42:27 »
He estado revisando algunos scripts y tengo la duda de si estos pueden desarrollarse integramente por el editor del propio PinxInsight, ya que como programador de VB6 para crear los objetos, estos se crean desde los módulos Form.

Alguna sugerencia o ayudita para comenzar en este mundillos de las automatizaciones del PixINsight.

Saludos,
Pep Ferrer
Observatorio:
COELLO-PEDRAPIQUER
Callosa d'en Sarria (Alicante)

Offline David Serrano

  • PTeam Member
  • PixInsight Guru
  • ****
  • Posts: 503
Fabricar script
« Reply #6 on: 2007 December 26 03:27:17 »
Son archivos de texto. Los puedes hacer en el editor del Pixi o desde un bloc de notas por ejemplo. No hay ninguna magia oculta (al contrario de lo que ocurre con cualquier cosa de m$).
--
 David Serrano

Offline Juan Conejero

  • PTeam Member
  • PixInsight Jedi Grand Master
  • ********
  • Posts: 7111
    • http://pixinsight.com/
Fabricar script
« Reply #7 on: 2007 December 26 09:57:40 »
Hola Pep

¡Bienvenido a los scripts de PixInsight! ;)

Como te decía David, aquí no hay trampa ni cartón (si exceptuamos el pequeño detalle de que todavía no hay documentación para el runtime de JavaScript en PI  8) ). Los scripts se pueden desarrollar íntegramente en PI con ScriptEditor.

Para aprender el lenguage, te recomiendo la documentación existente en el sitio de Mozilla. Un buen punto de comienzo es éste:

http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Guide

donde se describe el lenguaje JavaScript. Aquí tienes una referencia exhaustiva sobre todos los componentes del lenguaje:

http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference

Aunque estos documentos se refieren a la versión 1.5, y PI implementa la 1.7, las diferencias son pocas y no muy importantes.

En la web hay infinidad de sitios con muy buena documentación sobre JavaScript. Sin embargo, ten en cuenta que PixInsight no es un navegador web, de manera que no funcionará prácticamente ningún código de ejemplo que encuentres. JavaScript está implementado en PixInsight como un lenguaje para procesamiento de imágenes, para generación de gráficos y de interfaces de usuario. Lo primero que tienes que hacer es aprender el lenguaje en sí, olvidándote de todos los objetos que están definidos en los navegadores.

Por ejemplo, en un navegador tienes definido un objeto Document que representa el documento actual en el navegador. En PixInsight no existe nada parecido, pero sin embargo tienes cosas como Image, ImageWindow, Dialog, etc., que no existen en ningún navegador.

Además, en PixInsight hay cambios muy importantes en algunos objetos estándar de javaScript. En particular, la implementación del objeto Math en PI no tiene nada que ver con el estándar del lenguaje, ya que PI requiere un soporte de rutinas matemáticas muy superior.

Por último, PI implementa un preprocesador del JavaScript, similar al preprocesador estándar de C, que no existe en ninguna otra implementación. Por ejemplo, el PI puedes usar directivas #include, #define, #ifdef, etc., cosa que no encontrarás en ningún otro sitio.

Quote
Tengo una duda, los script que vienen con la instalación, los usuarios ¿tenemos derecho a modificarlos?


Por supuesto que sí. Lo único que pedimos es que publiquéis las modificaciones que hagáis ;)

Quote
me gustaría poder añadir un control "RadioButton" para poder seleccionar la posición donde aparece el texto sobre la imagen


Excelente idea. Para definir la posición del texto en este script te sugiero los siguientes cambios:

1. Añade las siguientes definiciones para las cuatro posibles localizaciones del texto (las cuatro esquinas):

Code: [Select]
#define TOP_LEFT 0
#define TOP_RIGHT 1
#define BOTTOM_LEFT 2
#define BOTTOM_RIGHT 3


2. Añade un miembro a DrawSignatureData:

Code: [Select]
this.position = BOTTOM_LEFT;

Esta línea tendría que ir dentro de la función DrawSignatureData(). Por ejemplo, debajo de la línea 178:

Code: [Select]
     this.text = "PixInsight";

3. haz los cambios pertinentes en la rutina DrawSignature, a partir de la línea 61. Fíjate que la rutina hace todo el trabajo en un Bitmap, y después copia este bitmap sobre la imagen. Basta con que cambies las coordenadas en la línea 161:

Code: [Select]
  image.selectedPoint = new Point( data.margin,
                     image.height - data.margin - height/antialiasingScaleFactor );


image.selectedPoint es precisamente el punto donde se copia el bitmap (que contiene el texto dibujado) sobre la imagen.

Para seleccionar la posición del texto puedes usar cuatro controles RadioButton. Sin embargo, sería más práctico hacerlo con un único ComboBox que tuviera las cuatro opciones a seleccionar.

Bueno, espero que con estas pistas puedas empezar. Por supuesto, cualquier duda que tengas la puedes preguntar en la sección de Desarrollo de Software y estaremos encantados de ayudarte en todo lo que podamos.
Juan Conejero
PixInsight Development Team
http://pixinsight.com/

Offline Pep

  • PixInsight Addict
  • ***
  • Posts: 124
    • COELLO-PEDRAPIQUER
Fabricar script
« Reply #8 on: 2007 December 26 21:55:05 »
Gracias por la ayuda, me meto en faena y si lo consigo pondré los resultados.

Saludos
Pep Ferrer
Observatorio:
COELLO-PEDRAPIQUER
Callosa d'en Sarria (Alicante)

Offline Pep

  • PixInsight Addict
  • ***
  • Posts: 124
    • COELLO-PEDRAPIQUER
Fabricar script
« Reply #9 on: 2007 December 27 15:32:05 »
Hola Juan,

Con esta parte del código he conseguido (es la primera vez) colocar la label y el combobox para la selección con sus cuatro opciones.

Code: [Select]
//Mi parte de programa
   this.localPosi_Label = new Label( this );
   this.localPosi_Label.text = "Posición:";
   this.localPosi_Label.textAlignment = TextAlign_Right|TextAlign_VertCenter;
   this.localPosi_Label.minWidth = labelWidth1 - 4-1;

   this.localPosi_ComboBox = new ComboBox( this );
   this.localPosi_ComboBox.addItem ( "TOP_LEFT" );
   this.localPosi_ComboBox.addItem ( "TOP_RIGHT" );
   this.localPosi_ComboBox.addItem ( "BOTTOM_LEFT" );
   this.localPosi_ComboBox.addItem ( "BOTTOM_RIGHT" );
   this.localPosi_ComboBox.editEnabled = true;
   this.localPosi_ComboBox.toolTip = "Indica la posición del texto en la Imagen.";

   this.localPosi_ComboBox.onEditTextUpdated = function()
   {
      data.localPosi = this.editText;
   };

   this.localPosi_ComboBox.onItemSelected = function( index )
   {
      data.localPosi = this.itemText( index );
   };

   this.fontFace_Sizer = new HorizontalSizer;
   this.fontFace_Sizer.spacing = 4;
   this.fontFace_Sizer.add( this.fontFace_Label );
   this.fontFace_Sizer.add( this.fontFace_ComboBox, 100 );
   this.fontFace_Sizer.spacing = 4;
   this.fontFace_Sizer.add( this.localPosi_Label );
   this.fontFace_Sizer.add( this.localPosi_ComboBox, 100 );


(no se si saldrá en el email, es la primera vez que lo mando)

Lo unico que supongo que tendré que conocer es la talla de la imagen cargada para poder ejecutar la posición, pero no se como.

Una ayudita porfa.

Saludos,
Pep Ferrer
Observatorio:
COELLO-PEDRAPIQUER
Callosa d'en Sarria (Alicante)

Offline Pep

  • PixInsight Addict
  • ***
  • Posts: 124
    • COELLO-PEDRAPIQUER
Fabricar script
« Reply #10 on: 2007 December 27 15:35:08 »
Se me olvidaba, para poder pegar una imagen, en este caso generada con el Alt+ImpPnt, para enseñar como se presenta el script, como se puede hacer.
He visto que algunos mienbros lo hacen pero yo lo que intento no me funciona.
Pep Ferrer
Observatorio:
COELLO-PEDRAPIQUER
Callosa d'en Sarria (Alicante)