PDA

Ver la Versión Completa : seleccionar imagen


fasthorse
08-07-2008, 09:54:59
Hola, tengo el código para seleccionar una imagen, pero la selecciono con un fondo blanco perfilado en negro, y quiero hacer que la selección sea transparente para que se vea la imagen entera y no con algo blanco en el medio... y también además de poder copiar, pegar y cortar esa selección, quiero también darle opciones como que me cambie de color, pero no se cómo hacerlo tampoco...

Os pongo el código que uso en la selección, a ver si me podéis ayudar:


void __fastcall TForm1::Seleccionar(TObject *Sender) //seleccionar
//un trozo d imagen
{
seleccion=true;

}
//------------------------------------------------------------------------

void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
if(seleccion==true){
pintando=true;
Imagen->Canvas->MoveTo(X,Y);
origen.x=X;
origen.y=Y;
}
}
//------------------------------------------------------------------------


void __fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift,
int X, int Y)
{
if(seleccion==true){
Imagen->Canvas->MoveTo(origen.x, origen.y);
Imagen->Canvas->MoveTo(origen.x, origen.y);
Imagen->Canvas->Rectangle(origen.x, origen.y, X,Y);
destino=Rect(0,0,300,300);
Imagen->Canvas->CopyRect(destino, Imagen->Canvas, destino);
dest=destino;
ini=X;
fin=Y;

}
}
//------------------------------------------------------------------------------------------------
void __fastcall TForm1::FormMouseUp(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
if(seleccion==true){
Imagen->Canvas->MoveTo(X,Y);
pintando=false;
}
}

droguerman
09-07-2008, 05:29:01
del copiar pegar no puedo ayudarte, pero para la imagen transparente puedes utilizar un componente TImageList, cargar la imagen y usar el método draw que te permite dibujar con transparencias

fasthorse
09-07-2008, 07:24:08
No, no te preocupes, los métodos de copiar, pegar y cortar más o menos los tengo, lo que quiero sobre todo es poder hacer la selección transparente... y viendo mi implementación, no hay ninguna opción tal y como yo lo hago, que lo pinto con canvas->Rectangle, en vez de utilizar el draw?? es que así tendría que cambiar bastante mi implementacion??

Gracias.
Un saludo.