ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

recortar imagem com o mouse [RESOLVIDO]
Ir à página 1, 2  Próximo
 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
renatinhad
Novato
Novato


Registrado: Quinta-Feira, 22 de Abril de 2010
Mensagens: 77

MensagemEnviada: Seg Mai 24, 2010 10:53 am    Assunto: recortar imagem com o mouse [RESOLVIDO] Responder com Citação

Como faço para recortar uma imagem usando o mouse e carregar a parte recortada em outro Timage??

Obrigada a ajuda de sempre!!


Editado pela última vez por renatinhad em Seg Mai 24, 2010 3:27 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
felipecaputo
Colaborador
Colaborador


Registrado: Quinta-Feira, 13 de Mai de 2010
Mensagens: 1719
Localização: Florianópolis / SC

MensagemEnviada: Seg Mai 24, 2010 1:19 pm    Assunto: Responder com Citação

Achei essa rotina na net, testei aki e deu

Código:
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  pInicio.X := X;
  pInicio.Y := Y;
end;

procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  pFim.X := X;
  pFim.Y := Y;
end;


E depois fazer o FOR:

Código:
for I := pInicio.X to pFim.X do
  for J := pInicio.Y to pFim.Y do
    Image2.Canvas.Pixels[I, J] := Image1.Canvas.Pixels[I, J];

_________________
if Post.State = psResolvido then
Post.Caption := Post.Caption + ' [RESOLVIDO]';
_____________________________________________
O único homem que está isento de erros, é aquele que não arrisca acertar. Albert Einstein
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
renatinhad
Novato
Novato


Registrado: Quinta-Feira, 22 de Abril de 2010
Mensagens: 77

MensagemEnviada: Seg Mai 24, 2010 1:37 pm    Assunto: Responder com Citação

mas onde poderia colocar esse for??
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
felipecaputo
Colaborador
Colaborador


Registrado: Quinta-Feira, 13 de Mai de 2010
Mensagens: 1719
Localização: Florianópolis / SC

MensagemEnviada: Seg Mai 24, 2010 1:38 pm    Assunto: Responder com Citação

em um boão Recortas ou então logo depois do código do mouse up

O que vc achar melhor

ou ainda pode gerar um shape com rect com esses tpoint
_________________
if Post.State = psResolvido then
Post.Caption := Post.Caption + ' [RESOLVIDO]';
_____________________________________________
O único homem que está isento de erros, é aquele que não arrisca acertar. Albert Einstein
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
renatinhad
Novato
Novato


Registrado: Quinta-Feira, 22 de Abril de 2010
Mensagens: 77

MensagemEnviada: Seg Mai 24, 2010 2:02 pm    Assunto: Responder com Citação

e como eu geraria esse shape??
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
renatinhad
Novato
Novato


Registrado: Quinta-Feira, 22 de Abril de 2010
Mensagens: 77

MensagemEnviada: Seg Mai 24, 2010 3:27 pm    Assunto: Responder com Citação

obrigada funcionou perfeitamente...
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Jore
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 21 de Abril de 2008
Mensagens: 266

MensagemEnviada: Sáb Mar 17, 2012 12:42 am    Assunto: Responder com Citação

Amigos estou na dúvida sobre esta parte que o amigo felipecaputo fala assim:
Citação:
E depois fazer o FOR:


Código:
for I := pInicio.X to pFim.X do
  for J := pInicio.Y to pFim.Y do
    Image2.Canvas.Pixels[I, J] := Image1.Canvas.Pixels[I, J];


Como faço isso? Alguém pode me explicar por favor Cool

Obrigado!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Jore
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 21 de Abril de 2008
Mensagens: 266

MensagemEnviada: Ter Abr 17, 2012 10:18 pm    Assunto: Responder com Citação

Alguém me ajuda com esse código por favor....Tô quase conseguindo rs rs rs
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
felipekk
Colaborador
Colaborador


Registrado: Quinta-Feira, 5 de Janeiro de 2012
Mensagens: 1531
Localização: Pirapora - MG

MensagemEnviada: Ter Abr 17, 2012 10:45 pm    Assunto: Responder com Citação

Jore escreveu:
Alguém me ajuda com esse código por favor....Tô quase conseguindo rs rs rs

Vc pode colocar o código em um botão por exemplo.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Caduzera
Profissional
Profissional


Registrado: Terça-Feira, 29 de Julho de 2008
Mensagens: 656

MensagemEnviada: Qua Abr 18, 2012 2:40 pm    Assunto: Responder com Citação

Tentei utilizar o código e recebi a seguinte msg

can only modify an image if it contains a bitmap delphi

o que pode ser?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Batera
Colaborador
Colaborador


Registrado: Quarta-Feira, 23 de Julho de 2008
Mensagens: 4899
Localização: Maringá

MensagemEnviada: Qua Abr 18, 2012 9:09 pm    Assunto: Responder com Citação

Caduzera, tente adicionar a unit "JPEG" na cláusula uses. Talvez possa resolver...
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário
Jore
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 21 de Abril de 2008
Mensagens: 266

MensagemEnviada: Qua Abr 18, 2012 11:25 pm    Assunto: Responder com Citação

Gente não estou conseguindo mesmo...nossa já tentei de tudo! Olhem como fiz:

Criei um projeto e coloquei:
Um TImage
Um Button Abrir
Um Button Recortar
Um OpenPictureDialog1



Código:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, jpeg, ExtDlgs, ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Image1: TImage;
    OpenPictureDialog1: TOpenPictureDialog;
    Button2: TButton;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure FormMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Button2Click(Sender: TObject);
     private
    { Private declarations }
      pInicio, pFim : tPoint;

  public
    { Public declarations }

  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenPictureDialog1.Execute then
begin
Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
end;
end;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  pInicio.X := X;
  pInicio.Y := Y;
end;

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  pFim.X := X;
  pFim.Y := Y;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  i, j : integer;
  begin
for I := pInicio.X to pFim.X do
  for J := pInicio.Y to pFim.Y do
    Image1.Canvas.Pixels[I, J] := Image1.Canvas.Pixels[I, J];
end;
end.




Abaixo o link deste exemplo:

[url]
http://www.4shared.com/rar/5ccm4f5j/Visualizador_para_testes.html[/url]

Alguém me da uma luz por favor!!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
jhowe2892
Novato
Novato


Registrado: Terça-Feira, 14 de Fevereiro de 2012
Mensagens: 30

MensagemEnviada: Qui Abr 19, 2012 1:31 am    Assunto: Responder com Citação

Olá pessoal!

altera

procedure TForm1.Button2Click(Sender: TObject);
var
i, j : integer;
begin
for I := pInicio.X to pFim.X do
for J := pInicio.Y to pFim.Y do
Image1.Canvas.Pixels[I, J] := Image1.Canvas.Pixels[I, J];
end;

para

procedure TForm1.Button2Click(Sender: TObject);
var
i, j : integer;
begin
for I := pInicio.X to pFim.X do
for J := pInicio.Y to pFim.Y do
Image2.Canvas.Pixels[I, J] := Image1.Canvas.Pixels[I, J];
end;

lembrando que esse codigo recorta a imagem em Retângulo beleza.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Caduzera
Profissional
Profissional


Registrado: Terça-Feira, 29 de Julho de 2008
Mensagens: 656

MensagemEnviada: Qui Abr 19, 2012 8:43 am    Assunto: Responder com Citação

Pessoal, queria saber como pegar as mesma coordenadas X, Y, utilizando um SHAPE para recortar a imagem ..

Alguém poderia me ajudar??

Abs
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Jore
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 21 de Abril de 2008
Mensagens: 266

MensagemEnviada: Qui Abr 19, 2012 2:56 pm    Assunto: Responder com Citação

Olá jhowe2892 e amigos,
A dica que você me deu não deu em nada....Tipo não esta aparecento o retangulo para selecionar a area que sera recortada essas coisas.
Alguém mais pode me dar uma ajudinha!!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Ir à página 1, 2  Próximo
Página 1 de 2

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB