Vaya que horrores ortográficos esas son las consecuencias de teclear bien temprano y con sueño, pero bueno te agradezco la aclaración trataré de no hacerlo muy seguido, bueno al grano, ese script lo hice recolectando una serie de información de varias partes, pero aquí te intento explicar cómo saque la luminancia:
Código:
bmp_chek = openbitmap bmp_n -obtengo los datos del bitmap.
Bmp_w = bmp_check.width - Paso el width a una variable.
Bmp_h = bmp_check, height - Lo mismo con el height.
Close bmp_chek - Cierro el bitmap.
For h = 1 todo bmp_h by motionbox.nth_pixel, value do - For loop para obtener los píxeles de height de la imagen motionbox.nth_pixel, value es un spinner en la UI.
Pixel_line = getpixeles current_bmp [0, (h-1)] bmp_w - Mediante el método getpixels de la clase bitmap obtengo los valores de píxel de la imagen.
For w = 1 todo bmp_w by motionbox.nth_pixel, value do - For loop para lo mismo en el width.
Size_value = motionbox.base_size, value + motionbox.multiplier, value*(pixel_line[w].r+pixel_line[w].g+pixel_line[w].b)/3 - Asigno los valores a la variable size_value.
/* motionbox.base_size, value y motionbox.multiplier, value son los spinner que tiene la UI esos spinner controlan la resolución de la imagen ya que una resolución muy elevada crearía miles de cajas volviendo el equipo lento.
O por lo menos el mío eso lo multiplicamos por los valores obtenidos en el array pixel_line con los valores RGB dividido en 3 */.
La verdad todavía tengo que trabajar más en ese script para que quede más dinámico, como comentaba en el primer mensaje, fue como un reto y trabajo, pero ahora es tiempo de ordenarlo y arreglarle algunos bugs. Saludos espero te sirva de algo la respuesta, con respecto a los métodos de la clase bitmap puedes encontrar más información en la referencia de Maxscript.