| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
renatinhad Novato

Registrado: Quinta-Feira, 22 de Abril de 2010 Mensagens: 77
|
Enviada: Seg Mai 24, 2010 10:53 am Assunto: recortar imagem com o mouse [RESOLVIDO] |
|
|
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 |
|
 |
felipecaputo Colaborador


Registrado: Quinta-Feira, 13 de Mai de 2010 Mensagens: 1719 Localização: Florianópolis / SC
|
Enviada: Seg Mai 24, 2010 1:19 pm Assunto: |
|
|
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 |
|
 |
renatinhad Novato

Registrado: Quinta-Feira, 22 de Abril de 2010 Mensagens: 77
|
Enviada: Seg Mai 24, 2010 1:37 pm Assunto: |
|
|
| mas onde poderia colocar esse for?? |
|
| Voltar ao Topo |
|
 |
felipecaputo Colaborador


Registrado: Quinta-Feira, 13 de Mai de 2010 Mensagens: 1719 Localização: Florianópolis / SC
|
Enviada: Seg Mai 24, 2010 1:38 pm Assunto: |
|
|
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 |
|
 |
renatinhad Novato

Registrado: Quinta-Feira, 22 de Abril de 2010 Mensagens: 77
|
Enviada: Seg Mai 24, 2010 2:02 pm Assunto: |
|
|
| e como eu geraria esse shape?? |
|
| Voltar ao Topo |
|
 |
renatinhad Novato

Registrado: Quinta-Feira, 22 de Abril de 2010 Mensagens: 77
|
Enviada: Seg Mai 24, 2010 3:27 pm Assunto: |
|
|
| obrigada funcionou perfeitamente... |
|
| Voltar ao Topo |
|
 |
Jore Aprendiz


Registrado: Segunda-Feira, 21 de Abril de 2008 Mensagens: 266
|
Enviada: Sáb Mar 17, 2012 12:42 am Assunto: |
|
|
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
Obrigado! |
|
| Voltar ao Topo |
|
 |
Jore Aprendiz


Registrado: Segunda-Feira, 21 de Abril de 2008 Mensagens: 266
|
Enviada: Ter Abr 17, 2012 10:18 pm Assunto: |
|
|
| Alguém me ajuda com esse código por favor....Tô quase conseguindo rs rs rs |
|
| Voltar ao Topo |
|
 |
felipekk Colaborador


Registrado: Quinta-Feira, 5 de Janeiro de 2012 Mensagens: 1531 Localização: Pirapora - MG
|
Enviada: Ter Abr 17, 2012 10:45 pm Assunto: |
|
|
| 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 |
|
 |
Caduzera Profissional

Registrado: Terça-Feira, 29 de Julho de 2008 Mensagens: 656
|
Enviada: Qua Abr 18, 2012 2:40 pm Assunto: |
|
|
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 |
|
 |
Batera Colaborador


Registrado: Quarta-Feira, 23 de Julho de 2008 Mensagens: 4899 Localização: Maringá
|
Enviada: Qua Abr 18, 2012 9:09 pm Assunto: |
|
|
| Caduzera, tente adicionar a unit "JPEG" na cláusula uses. Talvez possa resolver... |
|
| Voltar ao Topo |
|
 |
Jore Aprendiz


Registrado: Segunda-Feira, 21 de Abril de 2008 Mensagens: 266
|
Enviada: Qua Abr 18, 2012 11:25 pm Assunto: |
|
|
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 |
|
 |
jhowe2892 Novato

Registrado: Terça-Feira, 14 de Fevereiro de 2012 Mensagens: 30
|
Enviada: Qui Abr 19, 2012 1:31 am Assunto: |
|
|
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 |
|
 |
Caduzera Profissional

Registrado: Terça-Feira, 29 de Julho de 2008 Mensagens: 656
|
Enviada: Qui Abr 19, 2012 8:43 am Assunto: |
|
|
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 |
|
 |
Jore Aprendiz


Registrado: Segunda-Feira, 21 de Abril de 2008 Mensagens: 266
|
Enviada: Qui Abr 19, 2012 2:56 pm Assunto: |
|
|
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 |
|
 |
|