Mensaje    Asunto: Realizar un Zoom en un TImagen Responder citando

Twisted Evil

Hola compañeros, tengo un problema haber si me podeis echar una mano, necesito realizar un zoom a una imagen que tengo en un tipo TImage, la imagen la pinto píxel a píxel empleando el método Canvas, pero a la hora de realizar el zoom he implementado mi propia función aunque es un poco lenta al emplear imágenes grandes.

Alguien sabe alguna propiedad que realice directamente el zoom? Confused .

Os dejo el algoritmo de Zoom para que le hecheis un vistazo y me lo corrijais, ya se que es algo basto:

Código:
FZoom = new TFZoom(this);// Creamos la ventana y configuramos
     FZoom->ClientHeight = escala*FIReal->ClientHeight;
     FZoom->ClientWidth =  escala*FIReal->ClientWidth;
     FZoom->Show();
     unsigned char car;
     int fila = 0;
     int col =0;
     int i = 0;
     int j = 0;
     int k, kk;
     while (fila <escala*FPrincipal->tam){
        while (col < escala*FPrincipal->tam){
           car = FPrincipal->imagen[i][j];
           FZoom->Image1->Canvas->Pixels[col][fila] = RGB(car,car,car);
           for (k = 0; k <= escala ; k++){
              for (kk = 0; kk<= escala; kk++){
                 FZoom->Image1->Canvas->Pixels[col + k][fila + kk] = RGB(car,car,car);
                 FZoom->Image1->Canvas->Pixels[col + kk][fila + k] = RGB(car,car,car);
                 FZoom->Image1->Canvas->Pixels[col + kk][fila + kk] = RGB(car,car,car);
              }
           }
           col = col + escala;
           j++;
        }
        fila = fila + escala;
        i++;
        if (col >= escala*FPrincipal->tam){
           j = 0;
           col = 0;
        }
     }
}

_________________
Exprime cada segundo como si fuese el último