Para un bitmap podrías leer la imagen en un TBitmap y en otro TBitmap al que inicializas con las dimensiones deseadas usas el método StretchDraw de su propiedad Canvas, algo así como (no probado):
Código:
var
Origen, Destino: TBitmap;
Rect: TRect;
begin
Origen := TBitmap.Create;
Origen.LoadFromFile('bitmap.bmp');
Destino := TBitmap.Create;
Destino.Width := Ancho;
Destino.Height := Altura;
Rect := Rectangle(0, 0, Ancho, Altura);
Destino.Canvas.StretchDraw(Rect, Origen);
Origen.Free;
Destino.Free;
end;
Para otro tipo de imagenes prmero las conviertes a bitmaps y procedes igual.
// Saludos