Image para image...
como faço para tranferir uma figura de um Image para outro image em outro form ? e tem como fazer com que a foto rode neste imagem? rodar tipo 90º 180º e etc...Flw....
Gigatel
Curtidas 0
Respostas
Martins
01/09/2005
para transferir a imagem vc pode fazer assim, só não sei se é a prática correta:
Quanto a rotação, tb tem, só q eu nunca utilizei por isso, não posso lhe ajudar nesse item, mas o pessoal aqui vai te dar uma força.
Espero q lhe ajude em algo.
Martins
Image1.Picture:=Form1.Image1.Picture;
Quanto a rotação, tb tem, só q eu nunca utilizei por isso, não posso lhe ajudar nesse item, mas o pessoal aqui vai te dar uma força.
Espero q lhe ajude em algo.
Martins
GOSTEI 0
Adriano Santos
01/09/2005
Quanto a rotação, tb tem, só q eu nunca utilizei por isso, não posso lhe ajudar nesse item, mas o pessoal aqui vai te dar uma força.
Amigo, no link abaixo tem um exemplo. O cara criou um novo arquivo DCU com as opções que precisa, mas não disponibilizou os fontes. Teoricamente é só copiar o jpeg.dcu que acompanha o ZIP para o diretorio Lib do Delphi e rodar o programa, mas não consegui fazer funcionar.
Testei o executavel compilado que o cara manda no download e funciona perfeito, só descobrir o q tem que fazer para compilar no delphi.
[url=http://codecentral.borland.com/Item.aspx?id=19723]Code Central - JPEG Avançada[/url]
GOSTEI 0
Martins
01/09/2005
É isso aí [b:ebec68980f]Adriano[/b:ebec68980f], e vou baixar esse negócio aí tb, vou dar uma olhada nela
valew!!!
valew!!!
GOSTEI 0
Adriano Santos
01/09/2005
É isso aí [b:6d94852ec8]Adriano[/b:6d94852ec8], e vou baixar esse negócio aí tb, vou dar uma olhada nela
valew!!!
O Exemplo é bem loko cara, mas não consegui fazer compilar, mesmo sobrepondo o arquivo jpeg.dcu no diretorio lib do delphi ou msm deixando ele no diretorio da aplicacao.
Se conseguir cara dá um toque pra gente.
GOSTEI 0
Gigatel
01/09/2005
parece que tem que cadastrar..num tem outro link naum ?
GOSTEI 0
Gigatel
01/09/2005
Dá uma olhada neste código..
Quase dá certo..
Veja este..
a imagem fica meio torta..
with Image1.Picture.Graphic do Canvas.CopyRect(Canvas.ClipRect, Canvas, Rect(0, Height - 1, Width, -1));
Quase dá certo..
Veja este..
with Image1.Picture.Bitmap do Canvas.CopyRect(Canvas.ClipRect, Canvas, Rect(Width-1, 0, -1, Height)); end;
a imagem fica meio torta..
GOSTEI 0
Adriano Santos
01/09/2005
parece que tem que cadastrar..num tem outro link naum ?
Ah é o CodeCentral da Borland, precisa de cadastro mesmo. É que aqui os cookies estão gravados e pra mim entra direto.
Bom, coloquei o exemplo no meu FTP, pegai galera.
[url=http://www.doiscliques.com/pub/jpegavancada.zip]JPEG[/url]
GOSTEI 0
Gigatel
01/09/2005
valeu...vou dar uma olhada...
GOSTEI 0
Martins
01/09/2005
Olá pessoal!!
É o seguinte eu compilei o bixo e ainda fiz um exemplo de quebra.
vou dizer aqui o q tem q ser feito.
1 - vcs tem q copiar para a pasta LIB do Delphi somente a DCU [b:90a7b4e9c1]´jpegex.dcu´[/b:90a7b4e9c1], pq a jpeg q tem junto é uma cópia dessa, e se vc sobrepor a q tem lá nativa do delphi, vc vai ver q algumas coisas q a original do delphi tem essa não tem, então vc tem q deixar ela lá quietinha e levar somente a [b:90a7b4e9c1]jpegex.dcu[/b:90a7b4e9c1], feito isso, declare na uses tanto jpeg quanto jpegex. Ok!
Vamos ao exemplo q fiz:
1 - ComboBox;
1 - OpenPictureDialog;
1 - SavePictureDialog;
2 - Botões;
1 - Image;
vamos aos códigos:
É isso aí, qualquer coisa postem aqui.
espero ter ajudado.
Martins
É o seguinte eu compilei o bixo e ainda fiz um exemplo de quebra.
vou dizer aqui o q tem q ser feito.
1 - vcs tem q copiar para a pasta LIB do Delphi somente a DCU [b:90a7b4e9c1]´jpegex.dcu´[/b:90a7b4e9c1], pq a jpeg q tem junto é uma cópia dessa, e se vc sobrepor a q tem lá nativa do delphi, vc vai ver q algumas coisas q a original do delphi tem essa não tem, então vc tem q deixar ela lá quietinha e levar somente a [b:90a7b4e9c1]jpegex.dcu[/b:90a7b4e9c1], feito isso, declare na uses tanto jpeg quanto jpegex. Ok!
Vamos ao exemplo q fiz:
1 - ComboBox;
1 - OpenPictureDialog;
1 - SavePictureDialog;
2 - Botões;
1 - Image;
vamos aos códigos:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, jpeg, jpegex, ExtCtrls, StdCtrls, Buttons, ExtDlgs;
type
TForm1 = class(TForm)
Button1: TButton;
Image1: TImage;
cbTrans: TComboBox;
OpenPictureDialog1: TOpenPictureDialog;
BitBtn1: TBitBtn;
SavePictureDialog1: TSavePictureDialog;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
FRect : TRect;
FMarking : boolean;
FJpeg : TJPEGImage;
FCanvas : TCanvas;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses
TypInfo,
Types;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
if FJpeg = nil then exit;
FJpeg.Transform(TJpegTransform(cbTrans.ItemIndex));
FRect := Rect(-1,-1,0,0);
end;
type
TGraphicControlAccess = class(TGraphicControl);
procedure TForm1.FormCreate(Sender: TObject);
var T : TJpegTransform;
begin
cbTrans.Clear;
for T := low(TJpegTransform) to High(TJpegTransform) do
cbTrans.Items.Add(GetEnumName(TypeInfo(TJpegTransform), Integer(T)));
cbTrans.ItemIndex := 0;
FCanvas := TGraphicControlAccess(Image1).Canvas;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var
B : TBitmap;
begin
if not OpenPictureDialog1.Execute then exit;
SavePictureDialog1.FileName := OpenPictureDialog1.FileName;
Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
Caption := OpenPictureDialog1.FileName;
if Image1.Picture.Graphic is TJPEGImage then
FJpeg := TJPEGImage(Image1.Picture.Graphic)
else
FJpeg := nil;
if FJpeg <> nil then
begin
FJpeg.Performance := jpBestSpeed;
//FJpeg.Scale := jsEighth;
//test post CMYK to RGB
if false then
begin
FJpeg.AutoCMYKToRGB := false; // don´t convert to RGB
B := TBitmap.Create;
B.Assign(FJpeg);
jpegex.BitmapCMYKToRGB(B, true);
Image1.Picture.Bitmap.Assign(B);
B.Free;
FJpeg := nil;
end;
end;
FRect := Rect(-1,-1,0,0);
end;
end.
É isso aí, qualquer coisa postem aqui.
espero ter ajudado.
Martins
GOSTEI 0
Adriano Santos
01/09/2005
Ae, o [b:c8fadff83c]Martins[/b:c8fadff83c] matou a pau.
Fiz o exemplo galera e funciona direitinho.
É isso ai, mandou bem cara.
abraço
Fiz o exemplo galera e funciona direitinho.
É isso ai, mandou bem cara.
abraço
GOSTEI 0
Gigatel
01/09/2005
Ôooooooooooo Menino Bão....sô
Valeu....
Valeu....
GOSTEI 0
Martins
01/09/2005
[quote:51e837dcc3=´Adriano Santos´]Ae, o [b:51e837dcc3]Martins[/b:51e837dcc3] matou a pau.
Fiz o exemplo galera e funciona direitinho.
É isso ai, mandou bem cara.
abraço[/quote:51e837dcc3]
Q nada galera!!!! :oops:
Qualquer coisa estamos aqui, é só postar q, se estiver ao nosso alcance, tentaremos aprender com vcs.
Valew!!!!
Martins
Fiz o exemplo galera e funciona direitinho.
É isso ai, mandou bem cara.
abraço[/quote:51e837dcc3]
Q nada galera!!!! :oops:
Qualquer coisa estamos aqui, é só postar q, se estiver ao nosso alcance, tentaremos aprender com vcs.
Valew!!!!
Martins
GOSTEI 0
Gigatel
01/09/2005
está dando este erro,....
eu fiz igual no código acima..o que será que deu errado ?
[Error] Unit29.pas(121): Statement expected but ´TYPE´ found
eu fiz igual no código acima..o que será que deu errado ?
GOSTEI 0
Gigatel
01/09/2005
Desculpe foi vacilada mesmo...más tenho uma dúvida como eu faria para modificar 2 coisas...
1º) eliminar o esquema do combobox....ficar direto no botão..no caso o giro de 90º
2º) minha fonte da imagem vem direto de um banco de dados...
como faço o procedimento em outro form como adaptaria para esta função ?
Valew,...de novo..
1º) eliminar o esquema do combobox....ficar direto no botão..no caso o giro de 90º
2º) minha fonte da imagem vem direto de um banco de dados...
como faço o procedimento em outro form como adaptaria para esta função ?
Image1.Picture:=Form1.Image1.Picture;
Valew,...de novo..
GOSTEI 0
Adriano Santos
01/09/2005
1º) eliminar o esquema do combobox....ficar direto no botão..no caso o giro de 90º
Baseado no exemplo do Martins:
if FJpeg = nil then exit; FJpeg.Transform(TJpegTransform(jt_ROT_90)); FRect := Rect(-1, -1, 0, 0);
2º) minha fonte da imagem vem direto de um banco de dados...
como faço o procedimento em outro form como adaptaria para esta função ?
Image1.Picture:=Form1.Image1.Picture;
Você pode usar um TDbImage vinculado direto ao campo da sua tabela no BD. Ou ainda fazer algo como:
procedure TForm1.Button2Click(Sender: TObject); var B: TBitmap; begin if not OpenPictureDialog1.Execute then exit; SavePictureDialog1.FileName := OpenPictureDialog1.FileName; DBImage1.Picture.LoadFromFile(OpenPictureDialog1.FileName); FJpeg := TJPEGImage(DBImage1.Picture.Graphic); if FJpeg <> nil then begin FJpeg.Performance := jpBestSpeed; //test post CMYK to RGB if false then begin FJpeg.AutoCMYKToRGB := false; // don´t convert to RGB B := TBitmap.Create; B.Assign(FJpeg); jpegex.BitmapCMYKToRGB(B, true); DbImage1.Picture.Bitmap.Assign(B); B.Free; FJpeg := nil; end; end; FRect := Rect(-1, -1, 0, 0); end;
GOSTEI 0
Gigatel
01/09/2005
Galera...valeu mesmo.... deu certinho... t+
GOSTEI 0
Adriano Santos
01/09/2005
O meu você pode depositar em conta, não tem problema...:D
GOSTEI 0
Martins
01/09/2005
aê galera, show de bola, vcs tão mandando muito bem, blz mesmo, quem mais estiver com dúvidas quanto a isso, é só visitar o link, hehehe, o [b:3d598c28db]Adriano e o Giga[/b:3d598c28db], já detonaram, valew turma!!!!
Martins
Martins
GOSTEI 0