You are on page 1of 6

INDICE

Prctica 2.......................................................................................................... 0
Modificacin RGB mediante una macro.......................................................0
Objetivo........................................................................................................... 0
Marco terico................................................................................................... 1

Diferencias al modificar el RGB.....................................................................1

Disminuyendo RGB en 20..........................................................................1

RGB normal............................................................................................... 2

Aumentando RGB en 20............................................................................ 2

Programacin de la macro............................................................................. 3

Conclusin........................................................................................................ 4

Bibliografa....................................................................................................... 4

Prctica 2
Modificacin RGB mediante una macro
Objetivo

Aprender a oscurecer o aumentar el brillo de una imagen usando una


macro.

Marco terico

Una macro es una abreviatura de macroinstruccin y aparte es una


serie de instrucciones que se almacenan para que se puedan ejecutar de
manera secuencial mediante una sola llamada u orden de ejecucin.
Dicho de otra manera, una macroinstruccin es una instruccin
compleja, formada por otras instrucciones ms sencillas. Esto permite la
automatizacin de tareas repetitivas.
Las macros tienden a generarse en el mbito del propio programa que
las utiliza y se ejecutan pulsando una combinacin especial de teclas o
un botn especialmente creado y asignado para tal efecto.
La diferencia entre una macroinstruccin y un programa es que en las
macroinstrucciones la ejecucin es secuencial y no existe otro concepto
del flujo de programa, conjunto de instrucciones (tales como borrar
archivo, aadir registro, etc.), y que se almacenan en una ubicacin
especial. Por ejemplo, en Microsoft Access se observa que hay una zona
para crear macros. Una macro en Access trabajando para una base de
datos podra ser un archivo que, al llamarse desde otra instruccin,
borrara los registros de un cliente o accionista, luego borrara ciertos
registros en otras tablas.

Diferencias al modificar el RGB

Disminuyendo RGB en 20

RGB normal

Aumentando RGB en 20

Programacin de la macro
macro "Barrido de una iamgen" {
width = getWidth();
height = getHeight();
for (y=0; y<height; y++) {
// if (y%20==0) showProgress(y, height); //muestra una barra de progreso
for (x=0; x<width; x++) {
value = getPixel(x,y); // extrae los datos RGB de un pixel
// obtengo los datos RGB separados del pixel
red = (value>>16)&0xff; // extrae el byte rojo (bits 23-17)
green = (value>>8)&0xff; // extrae el byte verde (bits 15-8)
blue = value&0xff;
// extrae el byte azul (bits 7-0)
// **** Aqui hacer modificaciones ****
num=20;
los datos de RGB
mrojo=red+num;
nmero del R
mverde=green+num;
nmero del G
mazul=blue+num;
nmero del B
if (mrojo>=255 || mrojo<=0)
a 255 o menor a 0
{mrojo=red;
que mrojo es igual a R original
}

//nmero a sumar o restar a


//define mrojo como nuevo
//define mverde como nuevo
//define mazul como nuevo
//condicional si mrojo es mayor
//si se cumple la condicin se define

if (mverde>=255 || mverde<=0)
//condicional si mverde es
mayor a 255 o menor a 0
{mverde=green;
//si se cumple la condicin se define
que mrojo es igual a R original
}
if (mazul>=255 || mazul<=0)
//condicional si mazul es mayor a
255 o menor a 0
{mazul=blue;
//si se cumple la condicin se define
que mrojo es igual a R original
}
//******************************************
//print ("red"+red,"mrojo"+mrojo);
//print ("green"+green,"mverde"+mverde);
//print ("blue"+blue,"mazul"+mazul);
makePoint(x, y); // muestra un punto en la imagen
// genero un pixel con los datos RGB
azul=mazul;
verde=mverde*256;
rojo=mrojo*65536;
dato= rojo+verde+azul;
setPixel(x, y, dato); // pone los datos RGB a un pixel
}
}
}
}

Conclusin
Al aumentar en 10 los nmeros RGB de cada pixel de una imagen se
aumenta el brillo.
Al disminuir en 10 los nmeros RGB de cada pixel de una imagen se
oscurece.
Los nmeros RGB para formar el blanco son 256.
Los nmeros RGB para formar el negro son 0.

Bibliografa
http://es.wikipedia.org/wiki/Macro
4

You might also like