• Viernes 8 de Noviembre de 2024, 18:47

Autor Tema:  Recortar un TImage  (Leído 1093 veces)

gonzalipto

  • Miembro activo
  • **
  • Mensajes: 26
    • Ver Perfil
Recortar un TImage
« en: Martes 14 de Abril de 2009, 18:50 »
0
Hola gente

Bueno necesito poder recortar una parte de un TImage para mostrarla luego en otro TImage.

Yo probe usando CopyRect pero la verdad que no me funciono.

La imagen que uso es en formato JPEG.

El codigo que habia utilizado es el siguiente.

La idea es recortar un rectangulo de la imagen haciendo click en el vertice superior izquierdo del rectangulo que se quiere cortar  y despues en el vertice inferior derecho

Código: C++
  1. void __fastcall TForm1::Image2Click(TObject *Sender)
  2. {
  3. if(recortar)
  4. {
  5. TPoint posicion;
  6.  
  7.  if(recortarcont==1)
  8.  {
  9.   GetCursorPos((&posicion));
  10.   supx=posicion.x - Form1->Left - Image2->Left;
  11.   supy=posicion.y - Form1->Top - Image2->Top;
  12.   recortarcont++;
  13.   Edit2->Text=supx;
  14.   Edit3->Text=supy;
  15.  
  16.  }
  17.  
  18.  else if(recortarcont==2)
  19.  {
  20.   GetCursorPos((&posicion));
  21.   infx=posicion.x - Form1->Left - Image2->Left;
  22.   infy=posicion.y - Form1->Top - Image2->Top;
  23.   recortarcont++;
  24.   Edit2->Text=infx;
  25.   Edit3->Text=infy;
  26.   recortarcont++;
  27.  
  28. Graphics::TBitmap *Bitmap;
  29.  
  30. TRect   MyRect, MyOther;
  31. MyRect = Rect(0,0,Image2->Width,Image2->Height);
  32. MyOther = Rect(0,0,juntas->Width, juntas->Height);
  33.   
  34. Bitmap = new Graphics::TBitmap;
  35. Bitmap->Width= juntas->Width;
  36. Bitmap->Height= juntas->Height;
  37. Bitmap->Assign(Image2->Picture->Graphic);
  38. juntas->Canvas->CopyRect(MyOther, Bitmap->Canvas, MyRect);
  39. delete Bitmap;
  40. }
  41.  
  42. }
  43. }
  44.  

y en un botton tengo el siguiente codigo

Código: C++
  1.  
  2. void __fastcall TForm1::Button6Click(TObject *Sender)
  3. {
  4. recortar=true;
  5. recortarcont=1;
  6. }
  7.  

El codigo recorta una parte pero lo hace mal porque no recorta la parte que yo necesito, viendo un poco mas me di cuenta de que los valores que le paso a CopyRect no tienen que ser esos.. pero no entiendo muy bien el CopyRect asique no se como arreglar mi codigo para que haga lo que necesito..