Bitmap Zoomen
-
Hallo zusammen,
habe mir ein Bitmap erstellt und lade dies in eine PaintBox!
Was für eine Idee steckt dahinter, wenn ich quai in das Bitmap reinzoomen möchte?Danke Bench
-
Was für eine Idee steckt dahinter, wenn ich quai in das Bitmap reinzoomen möchte?
Das das Bild größer wird ?

-
Das man einen Ausschnitt des Bildes auf der gesamten Bitmapfläche zeichnet?
-
ICh habe es so gelöst:
Window->OnMouseWheelUp=ZoomIn; Window->OnMouseWheelDown=ZoomOut;"Window" ist ein TForm das ein TImage enthält (Sind beide immer gleichgroß)
und die Funktionen die Aufgerufen werden...void __fastcall ZoomOut(TObject *Sender, TShiftState Shift, const TPoint &MousePos, bool &Handled) { int width = ActivePic->Window->Width; int height = ActivePic->Window->Height; if (width > 50 && height > 50) { width = width *0.75; height= height*0.75; ActivePic->Window->Width=width; ActivePic->Window->Height=height; ActivePic->Image->Width=width; ActivePic->Image->Height=height; ActivePic->Window->Top=10; ActivePic->Window->Left=100; v--; ActivePic->Window->Caption=ActivePic->FileName + " "+IntToStr(v*25+100)+"%"; ActivePic->Window->Top=10; ActivePic->Window->Left=100; } }Die entscheidenden Zeilen für dich dürften sein:
ActivePic->Image->Width=width; ActivePic->Image->Height=height;
-
Braunstein schrieb:
Das man einen Ausschnitt des Bildes auf der gesamten Bitmapfläche zeichnet?
Wenn das beim zoomen passiert, würde ich sagen, das das Programm einen Fehler hat.
Freies skalieren eines gesammten Bildes oder eines Bildausschnittes würde ich als Zoom bezeichnen.
-
Hallo
Und wie glaubst du wird das "freie Skalieren" technisch umgesetzt? Nämlich genau wie Braunstein schon sagt am einfachsten durch Canvas::StretchDraw, bestenfalls ersetzt durch einen effizienteren Algorithmus.
bis bald
akari
-
StretchDraw ist wie du schon etwas anklingen lassen hast "absolut unbrauchbar".
Für sowas würde ich effizientere Methoden mit Interpolation der GDI+ benutzen.
-
Hallo
Das absolut halte ich für maßlos übertrieben...
Aber darum geht es auch nicht. Egal wie du den Auschnitt in den gezoomt wird vergrößerst, du arbeitest auf einem Auschnitt des Original-Bitmaps der auf den gesamten Bereich des TImages ausgedehnt wird. Und genau das meint Braunstein.
bis bald
akari