Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Canvas-Ausschnitt vergrößern (https://www.delphipraxis.net/75481-canvas-ausschnitt-vergroessern.html)

ztor 19. Aug 2006 23:38


Canvas-Ausschnitt vergrößern
 
Hallo,

ich habe eine Image-Komponente, auf der ich einen Rahmen aufziehen kann. Damit kann man einen Bereich auswählen, der dann so vergrößert werden soll, dass er das komplette Image füllt. Ich habe schon ein wenig mit StretchDraw rumgefummelt, komme aber auf keinen Ansatz, wie man das Problem lösen könnte.

MFG und Danke

Luckie 20. Aug 2006 01:15

Re: Canvas-Ausschnitt vergrößern
 
Na, dann zeig dochmal den Code, den du bisher schon hast.

ztor 20. Aug 2006 15:33

Re: Canvas-Ausschnitt vergrößern
 
Naja, der hat ja überhaupt nicht funktioniert. Ich habe ehrlichgesagt keinen richtigen Ansatz.

Neutral General 20. Aug 2006 15:52

Re: Canvas-Ausschnitt vergrößern
 
Delphi-Quellcode:
var Rec: TRect;

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 rec.Left := x;
 rec.Top := y;
end;

procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 Rec.Bottom := y;
 Rec.Right := x;
end;

procedure TForm1.Button1Click(Sender: TObject);
var tmp: TBitmap;
begin
 tmp := TBitmap.Create;
 tmp.Width := Image1.Picture.Bitmap.Width;
 tmp.Height := Image1.Picture.Bitmap.Height; tmp.Canvas.CopyRect(Rect(0,0,Image1.Picture.Bitmap.Width,Image1.Picture.Bitmap.Height),Image1.Picture.Bitmap.Canvas,Rec);
 Image1.Picture.Bitmap := tmp;
 tmp.Free;
end;
Also das ist jetzt halt ein Ansatz.
Damit wird das obere linke Rechteck mit der größe 300Pix*300Pix vergrößert dargestellt so wie dus willst... musst das ganze halt auf deine Kompo übertragen.

EDIT: Code verbessert. Geht nur richtig wenn man von links nach rechts markiert.. Ansonsten muss man das halt nochn bisschen ändern ;)

Gruß
Neutral General

ztor 20. Aug 2006 23:20

Re: Canvas-Ausschnitt vergrößern
 
@Neutral General

Danke, dein Codebeispiel hat mir wirklich weitergeholfen.
In eine ähnliche Richtung hatte ich auch schon gedacht, aber an der Umsetzung hats gehapert.
Naja, wie auch immer... man lernt halt nich aus.

MFG und Thx


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:11 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz