Delphi-PRAXiS
Seite 1 von 5  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Zeichnen auf Image mit zoom (https://www.delphipraxis.net/160149-zeichnen-auf-image-mit-zoom.html)

thomas2009 29. Apr 2011 18:04

Zeichnen auf Image mit zoom
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

ich suche eine Lösung, wie man die Image zoomt und dann drauf zeichnet
Das ist meine erste Idee um einen Zoom Faktor zu berechnen
Vielleicht hat jemand noch eine bessere Idee

Meine Frage ist folgendes :
Ist die Berechnung mit Trunc oder Round nicht so gefährlich und nicht genauer, wenn ich beim Zeichnen den berechneten Faktor verwende ?
Delphi-Quellcode:
var
  Form1: TForm1;
  zoom: Real;

implementation

{$R *.dfm}

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
if Trackbar1.Position > 10 then begin
zoom:=Trackbar1.Position-10; end;

if Trackbar1.Position = 10 then begin
zoom:=1; end;

if Trackbar1.Position < 10 then begin
zoom:=Trackbar1.Position/10; end;

Edit1.Text:= FloatToStr(zoom);

//Image1.Stretch:=True;
//Image1.autosize:=False;


end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Trackbar1.Position:=Trackbar1.Position+2;
Image1.Width:=Round(Image1.Picture.Width*zoom);
Image1.Height:=Round(Image1.Picture.Height*zoom);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Trackbar1.Position:=Trackbar1.Position-2;
Image1.Width:=Round(Image1.Picture.Width*zoom);
Image1.Height:=Round(Image1.Picture.Height*zoom);
end;

end.

DeddyH 29. Apr 2011 18:09

AW: Zeichnen auf Image mit zoom
 
Prozentrechnung und die Grafik skalieren, ist das so schwer?

s.h.a.r.k 29. Apr 2011 18:13

AW: Zeichnen auf Image mit zoom
 
Das kann hier echt nicht dein Ernst sein?! Deine Threads sollte man zunächst alle auf geschlossen setzen und erst deren Inhalt auf Sinn prüfen...

Delphi-Quellcode:
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
if Trackbar1.Position > 10 then begin
zoom:=Trackbar1.Position-10; end;

if Trackbar1.Position = 10 then begin
zoom:=1; end;

if Trackbar1.Position < 10 then begin
zoom:=Trackbar1.Position/10; end;

Edit1.Text:= FloatToStr(zoom);

Image1.Stretch:=True;
Image1.autosize:=False;


end;
Wie oft willst du Stretch und Autosize denn setzen?!

thomas2009 29. Apr 2011 18:15

AW: Zeichnen auf Image mit zoom
 
Zitat:

Zitat von DeddyH (Beitrag 1097698)
Prozentrechnung und die Grafik skalieren, ist das so schwer?

Meinst Du besser die Bitmap skalieren statt das Strecke zu verwenden ?
Aber das ständige skalieren von Bitmap geht die Qualität verloren :(
Oder habe ich falsch verstanden ?

Zitat:

Zitat von s.h.a.r.k (Beitrag 1097699)
Wie oft willst du Stretch und Autosize denn setzen?!

man kann die 2. Zeilen wegnehmen. ok

DeddyH 29. Apr 2011 18:17

AW: Zeichnen auf Image mit zoom
 
Meine Güte :wall: Behalt die Originalgrafik im Speicher, erstelle beim Zoomen eine neue aus dem Original, skaliere diese und lade sie ins Image. Wird der Zoomfaktor geändert, wiederholst Du das Ganze. Mit ein bisschen Hirnschmalz kann man darauf kommen, oder?

thomas2009 29. Apr 2011 18:29

AW: Zeichnen auf Image mit zoom
 
Wenn man die Bitmap 10x skaliert und dann drauf Texte, Grafiken, ... zeichnet und wieder 10x verkleinert, bleibt die Qualität 100% die selbe ?

DeddyH 29. Apr 2011 18:30

AW: Zeichnen auf Image mit zoom
 
Du hast schon gelesen, was ich geschrieben habe? Wenn ja, hast Du es auch verstanden?

mkinzler 29. Apr 2011 18:31

AW: Zeichnen auf Image mit zoom
 
Das Quellimage ist ja immer das Selbe.
Wenn du natürlich im das Ergebnis als Quelle der nächsten Skalierung verwendest natürlich nicht.

DeddyH 29. Apr 2011 18:33

AW: Zeichnen auf Image mit zoom
 
Siehste, Markus hat es gleich kapiert. Manchmal habe ich das Gefühl, ich poste hier in Suaheli :?

mkinzler 29. Apr 2011 18:35

AW: Zeichnen auf Image mit zoom
 
Zitat:

Siehste, Markus hat es gleich kapiert. Manchmal habe ich das Gefühl, ich poste hier in Suaheli
Vielleicht würde er das ja verstehen :stupid:


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:41 Uhr.
Seite 1 von 5  1 23     Letzte »    

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