Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Rectángulo para recortar imagen (https://www.clubdelphi.com/foros/showthread.php?t=22806)

JAV 28-06-2005 05:07:39

Rectángulo para recortar imagen
 
Hola amigos, necesito realizar un componente (o no) que me permita dibujar un rectángulo sobre una imagen y permitir estirarlo y recortar la imagen que contiene. Si alguien conoce como hacerlo, sabe qué herramientas utilizar ó conoce de algún sitio web donde encontrar referencia, desde ya se lo agradezco.

Neftali [Germán.Estévez] 28-06-2005 15:49:10

Te suelto algunas ideas en voz alta... Puedes hacer pruebas y si ves que vas por buen camino y tienes alguna duda, pues podemos concretar, ya dirás...
Antes que nada, estoy seguro de que se puede hacer un componente de cero que lo haga o incluso derivar un TImage para añadirle ésta propiedad.

En principio veo dos opciones/caminos:
(1)Intentar hacerlo sin crear ningun componente: Hay varioas cosas que debes solventar:
* Para el recuado de selección se podría utilizar un componente de tipo TBevel; La opción de pintar directamente sobre los TImage (Rectangle o DrawFocusRect) da problemas con el Strech del TImage a True.
* Para moverlo y redimensionarlo en runtime el siguiente truco:
http://www.swissdelphicenter.ch/en/showcode.php?id=2307
* El tema de capturar la imagen del recuadro es sencillo ya que puedes utilizar el método CopyRect de TCanvas (TImage tiene la propiedad Canvas).

(2)Derivando componentes: En éste caso parece que lo más apropiado sería derivar del TImage. Para el tema del recuadro te sirve lo dicho anteriormente.

JAV 05-07-2005 02:19:09

He hecho una combinación con el truco del sitio pasado anteriormente y el componente TShape y la verdad que quedó muy bien excepto por el inconveniente de que cuando muevo el rectángulo sobre la imagen me hace un efecto de barrido que no lo puedo puedo sacar. Alguna idea? Desde ya, muchas gracias...

Neftali [Germán.Estévez] 05-07-2005 10:08:23

Tal vez si subes el ejemplo podamos echarle un vistazo... (o el código final).


La franja horaria es GMT +2. Ahora son las 17:53:45.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi