| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
zankiu Lt Cmdr

Registrado: 23 Ene 2008Mensajes: 106
|
Publicado: Vie 20 Feb, 2009 10:35 am Asunto: Copiar de un TBitmap a otro |
|
|
Holitass
He estado mirando en el foro como redimesionar un bitmap y he visto que una posibilidad sería copiarlo a otro bitmap y meterle las dimensiones nuevas. Y tengo algo estilo:
| Código: | //Guardo la imagen del Chart en un bmp
rutaImagen = ExtractFilePath(Application->ExeName);
pathImagen = rutaImagen + "graficabarras.bmp";
Chart1->SaveToBitmapFile(pathImagen);
//Creo dos TBitmap
Graphics::TBitmap *dest = new Graphics::TBitmap();
Graphics::TBitmap *src = new Graphics::TBitmap();
src->LoadFromFile("graficabarras.bmp"); // Cargo la imagen
src->PixelFormat = pf24bit;
dest->PixelFormat = pf24bit;
//Este va a ser el nuevo ancho y alto de la imagen
dest->Width = 400;
dest->Height = 300;
[creo que aqui me falta el copiar la imagen...]
//Cuando tenga la imagen "agrandada" lo visualizo en un TImage
Image1->Picture->Bitmap = dest;
|
Como añado entre corchetes en el código, creo que necesitaria pasar del primer bitmap la imagen al segundo y luego redimensionar, cómo copio la imagen al segundo bitmap?
Gracias |
|
| Volver arriba |
|
 |
escafandra Master

Registrado: 29 Nov 2007Mensajes: 625Ubicación: Madrid - España
|
Publicado: Vie 20 Feb, 2009 11:50 am Asunto: |
|
|
Este código puede ayudarte:
| Código: | void __fastcall TForm1::Button1Click(TObject *Sender)
{
TImage *Image = new TImage(this);
// Aquí dimensionamos la nueva imagen....
Image->Height = 200;
Image->Width = 200;
// Preparamos para la función StretchDraw
TRect R(0, 0, Image->Height, Image->Width);
// Copiamos la imagen cambiada de tamaño a Image desde Image1...
Image->Canvas->StretchDraw(R, Image1->Picture->Graphic);
// La salvamos para ver que ha pasado. ....EURECA....
Image->Picture->Graphic->SaveToFile("a.bmp");
} |
Saludos |
|
| Volver arriba |
|
 |
zankiu Lt Cmdr

Registrado: 23 Ene 2008Mensajes: 106
|
Publicado: Vie 20 Feb, 2009 1:04 pm Asunto: |
|
|
Esto funciona de maravilla.
con el pequeño cambio de:
| Código: | TRect R(0, 0, Image->Height, Image->Width); |
a:
| Código: | TRect R(0, 0,Image->Width, Image->Height); |
Gracias! |
|
| Volver arriba |
|
 |
|