hoy mostramos como manipular una imagen
en lenguaje C++ utilizando el C++ Builder 6
Bueno primero la interfaz...
Luego seleccionamos el Image, nos vamos al Object Inspector y buscamos la propiedad Picture para insertar la imagen que vamos a usar...
Cargamos la imagen dando clic en Load. ¡¡¡La imagen debe ser .bmp!!!
Y luego "a mover los deditos"...
Primero vamos a cambiar los tonos de color de la imagen y mostrar el resultado en el Image2
damos doble clic en el botón con la leyenda ROJO...
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TColor color; //creamos una variable para guardar la imagen
for(int i = 0; i < Image1->Width; i++){
for(int j = 0; j < Image1->Height; j++){
//los 'for' recorren la imagen del Image1
//y la guardamos en la variable
color = Image1->Canvas->Pixels[i][j];
//ahora dibujamos sobre el Image2 lo del Image1
//pero cambiamos la intensidad del color a rojo
//usando hexadecimal, donde 0x es el nivel de
//transparencia y FF el color rojo
Image2->Canvas->Pixels[i][j] = color & 0xFF;
}
}
}
y se ve asi...
ahora vamos por el verde que es prácticamente lo mismo, solo cambiamos el color en hexadecimal...
void __fastcall TForm1::Button2Click(TObject *Sender)
{
TColor color;
for(int i = 0; i < Image1->Width; i++){
for(int j = 0; j < Image1->Height; j++){
color = Image1->Canvas->Pixels[i][j];
//0x = transparencia
//00FF00, los dos primeros ceros son el azul
//al poner 00 lo "apagamos", FF activa el verde
//y los ultimos 00 "apagan" el rojo
Image2->Canvas->Pixels[i][j] = color & 0x00FF00;
}
}
}
y el azul lo mismo...
void __fastcall TForm1::Button3Click(TObject *Sender)
{
TColor color;
for(int i = 0; i < Image1->Width; i++){
for(int j = 0; j < Image1->Height; j++){
color = Image1->Canvas->Pixels[i][j];
Image2->Canvas->Pixels[i][j] = color & 0xFF0000;
}
}
}
ahora vamos a mover la imagen...
void __fastcall TForm1::Button4Click(TObject *Sender)
{
TColor color; //otra vez guardamos en esta variable
for(int i = 0; i < Image1->Width; i++){
for(int j = 0; j < Image1->Height; j++){
color = Image1->Canvas->Pixels[i][j];
//y en el Image2 dibujamos a partir de la posicion
//del ultimo pixel del Image1
//osea de abajo pa' arriba
Image2->Canvas->Pixels[Image1->Width - i][Image1->Height - j] = color;
//Image2->Stretch;
}
}
}
sigue el efecto de espejo...
void __fastcall TForm1::Button5Click(TObject *Sender)
{
TColor color; //la misma... variable
for(int i = 0 ; i < Image1->Width; i++){
for(int j = 0; j < Image1->Height; j++){
color = Image1->Canvas->Pixels[i][j];
//ahora el eje y(j) se mentiene, el chiste
//es que ahora dibujamos en el eje x(i) del Image2
//de derecha a izquierda
Image2->Canvas->Pixels[Image1->Width - i][j] = color;
}
}
}
y por ultimo acostar la imagen...
void __fastcall TForm1::Button6Click(TObject *Sender)
{
for(int i = 0; i < Image1->Width; i++){
for(int j = 0; j < Image1->Height; j++)
{
//sobre el eje x(i) del Image2 dibujamos lo del
//eje y(j) del Image1 y en el eje y dibujamos x
Image2->Canvas->Pixels[j][Image2->Height-i] = Image1->Canvas->Pixels[i][j];
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button7Click(TObject *Sender)
{
for(int i = 0; i < Image1->Width; i++){
for(int j = 0; j < Image1->Height; j++)
{
//lo mismo del anterior pero pal' otro lado
Image2->Canvas->Pixels[Image2->Height-j][i]=Image1->Canvas->Pixels[i][j];
}
}
}
//---------------------------------------------------------------------------
bueno eso es todo
este es mi primer post sientete libre de echarle tierra (comenta)
espero sea de ayuda
nos vemos al rato











No hay comentarios:
Publicar un comentario