Obraz w TImage po prawej

0

Chciałbym ustawić obraz w TImage po prawej.

Domyślnie dostępne jest jedynie po lewej (lub po lewej i góry - gdy pole Image jest większe od obrazka) i wyśrodkowane.

Jak tego dokonać... ?

0

Zainstaluj sobie komponenty Graphic32 - darmowe - wśród nich jest Image32, który pozwala dowolnie manewrować obrazkiem i do tego Image32 jest kilkanaście razy bardziej wydajny niż zwykłe Image

0
Artur napisał(a)

Zainstaluj sobie komponenty Graphic32 - darmowe - wśród nich jest Image32, który pozwala dowolnie manewrować obrazkiem i do tego Image32 jest kilkanaście razy bardziej wydajny niż zwykłe Image

No tak, ale to dodatkowy rozmiar pliku, bo dodatkowy komponent
Nie da się tego zrobić bez dodatkowych komponentów ?

0

Da sie poczytaj o copyrect

0

Oto mój kod na wykonanie tego zadania - powinien działać OK :

procedure TForm1.Button1Click(Sender: TObject);
var
  b: TBitmap;
  r, r1: TRect;
begin
  b:=TBitmap.Create;
  b.LoadFromFile('plik.bmp');
  
  r.Left:=Image1.Width-b.Width;
  r.Top:=0;
  r.Right:=Image1.Width;
  r.Bottom:=b.Height;

  r1.Left:=0;
  r1.Top:=0;
  r1.Right:=b.Width
  r1.Bottom:=b.Height;

  Image1.Picture.Bitmap:=nil;
  Image1.Picture.Bitmap.Width:=Image1.Width;
  Image1.Picture.Bitmap.Height:=Image1.Height;

  Image1.Picture.Bitmap.Canvas.CopyRect(r, b.Canvas, r1);

  b.Free;
end;
0
{PIT} napisał(a)

Oto mój kod [..] powinien działać OK

OK. Dzięki [soczek]

Jest tylko mały problem. Transparent nie funkcjonuje poprawnie.
Jest białe tło na całym polu Image oraz obrazka, a gdy ustawię:

  Image1.Picture.Bitmap.TransparentColor := clWhite;

to tylko obrazek ma białe pole (ale niepotrzebnie je ma...)

Da się coś z tym zrobić jeszcze ? ;)

0

Jeśli chcesz tylko zastąpić białe pole innym kolorem to przed CopyRect wpisz:

Image1.Picture.Bitmap.Canvas.Pen.Color:=clBlue; // tu podajesz kolor jaki chcesz
Image1.Picture.Bitmap.Canvas.Brush.Color:=clBlue; // ...i tutaj tez...
Image1.Picture.Bitmap.Canvas.Rectangle(0,0,Image1.Picture.Bitmap.Width, Image1.Picture.Bitmap.Height);
0

Extra, dzięki {PIT} [soczek]

1 użytkowników online, w tym zalogowanych: 0, gości: 1