Ver Mensaje Individual
  #12  
Antiguo 29-08-2015
Avatar de radenf
radenf radenf is offline
Miembro
 
Registrado: oct 2007
Ubicación: Viña del Mar,Chile
Posts: 608
Reputación: 17
radenf Va por buen camino
Estimado Jose Roman:

Para que el componente TSizeRect sea transparente debes colocar su propiedad NormalBrush>Style=bsClear.
Para dibujar el cuadradito de selección debes poner su propiedad NormalPen>Style=psDot.

Para realizar la acción de cortar la parte seleccionada el siguiente código:

Código Delphi [-]
procedure TFormPrincipal.ButtonCropClick(Sender: TObject);
Var New, Old : TRect;
Wic1:TWicImage;
ImageM: TImage;
Begin
ImageM:= TImage.Create(Self);
Wic1:= TWicImage.Create;
Wic1.LoadFromFile(ImageList[TImage(Sender).Tag]);
New.Left:=SizeRect1.ClientRect.Left;
New.Top:=SizeRect1.ClientRect.Top;
New.Right:=SizeRect1.ClientRect.Right;
New.Bottom:=SizeRect1.ClientRect.Bottom;
Old := New;
try
ImageM.Left:=SizeRect1.Left;
ImageM.Top:=SizeRect1.Top;
ImageM.Height:=SizeRect1.Height;
ImageM.Width:=SizeRect1.Width;
ImageM.Canvas.CopyRect(Old,SizeRect1.Canvas,New);
ImageM.Picture.SaveToFile(ExtractFilePath(Application.ExeName) + 'Foto.bmp');
Wic1.LoadFromFile(ExtractFilePath(Application.ExeName) + 'Foto.bmp');
Image1.Picture.Bitmap.Assign(Wic1);
finally
Wic1.Free;
ImageM.Free;
end;
end;

En este ejemplo utilizo TWicImage que lo soporta Delphi XE3 para cargar no sólo .bmp y .jpg, sino también .png y .tiff, pero lo puedes reemplazar por un TBitmap o utilizar el código que te envié por mensaje privado.

Ojalá te sirva
Saludos

PD: Te sugiero que también revises el demo que traen los componentes TSizeComps, ya que ahí están los ejemplos para hacerlo funcionar.

Última edición por radenf fecha: 29-08-2015 a las 18:11:34.
Responder Con Cita