Rotacionar imagem Jpeg
19/03/2008
0
Olá amigos, já procurei em todos os sites q conheço de programação em delphi e nada. encontrei como rotacionar mais é só bitmap, alguém sabe com rotacionar imagens em jpeg?
tô usando esse codigo pra rotacionar, mais como falei só funciona se for bitmap...
procedure TfrmPrincipal.btnRotaClick(Sender: TObject);
var
lbAuxiliar: TBitmap; // Aqui criamos um TBitmap auxiliar;
BackColor: TColor;
begin
if Assigned(img1.Picture.Bitmap) then
begin
// Obtendo a cor de fundo do bitmap:
BackColor := img1.Picture.Bitmap.TransparentColor and not $02000000;
lbAuxiliar := Rotacionar(img1.Picture.Bitmap, -90, BackColor);
try
lbAuxiliar.TransparentColor := BackColor;
lbAuxiliar.Transparent := img1.Picture.Bitmap.Transparent;
img1.Picture.Bitmap.Assign(lbAuxiliar);
finally
lbAuxiliar.Free;
end;
end;
end;
tô usando esse codigo pra rotacionar, mais como falei só funciona se for bitmap...
procedure TfrmPrincipal.btnRotaClick(Sender: TObject);
var
lbAuxiliar: TBitmap; // Aqui criamos um TBitmap auxiliar;
BackColor: TColor;
begin
if Assigned(img1.Picture.Bitmap) then
begin
// Obtendo a cor de fundo do bitmap:
BackColor := img1.Picture.Bitmap.TransparentColor and not $02000000;
lbAuxiliar := Rotacionar(img1.Picture.Bitmap, -90, BackColor);
try
lbAuxiliar.TransparentColor := BackColor;
lbAuxiliar.Transparent := img1.Picture.Bitmap.Transparent;
img1.Picture.Bitmap.Assign(lbAuxiliar);
finally
lbAuxiliar.Free;
end;
end;
end;
Nandobacker
Curtir tópico
+ 0
Responder
Posts
01/04/2021
Sady
Eu fiz uma conversão de JPEG para BMP, girei o BMP, converti novamente para JPEG e atribui ao componente.
procedure TfrmVizualizaFoto.btnGirarFotoEClick(Sender: TObject);
var
X, Y: integer;
BMPorigem, BMPdestino : TBitmap;
JPEGfinal : TJPEGImage;
begin
BMPorigem := TBitmap.Create;
BMPdestino := TBitmap.Create;
JPEGfinal := TJPEGimage.Create;
BMPorigem.Assign(fImgFoto.Picture.Graphic);
BMPdestino.Width := BMPorigem.Height;
BMPdestino.Height := BMPorigem.Width;
for X := 0 to BMPorigem.Width do
for Y := 0 to BMPorigem.Height do
BMPdestino.Canvas.Pixels[Y, BMPorigem.Width - X] := BMPorigem.Canvas.Pixels
[X,Y];
JPEGfinal.Assign(BMPdestino);
fImgFoto.Picture.Assign(JPEGfinal);
end;
Não sei se ajuda, mas funciona :D
procedure TfrmVizualizaFoto.btnGirarFotoEClick(Sender: TObject);
var
X, Y: integer;
BMPorigem, BMPdestino : TBitmap;
JPEGfinal : TJPEGImage;
begin
BMPorigem := TBitmap.Create;
BMPdestino := TBitmap.Create;
JPEGfinal := TJPEGimage.Create;
BMPorigem.Assign(fImgFoto.Picture.Graphic);
BMPdestino.Width := BMPorigem.Height;
BMPdestino.Height := BMPorigem.Width;
for X := 0 to BMPorigem.Width do
for Y := 0 to BMPorigem.Height do
BMPdestino.Canvas.Pixels[Y, BMPorigem.Width - X] := BMPorigem.Canvas.Pixels
[X,Y];
JPEGfinal.Assign(BMPdestino);
fImgFoto.Picture.Assign(JPEGfinal);
end;
Não sei se ajuda, mas funciona :D
Responder
Clique aqui para fazer login e interagir na Comunidade :)