ein Image nach Links vergrößern [gelöst]

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
Dragomir
Beiträge: 40
Registriert: Di 28. Apr 2015, 12:06

ein Image nach Links vergrößern [gelöst]

Beitrag von Dragomir »

Hiho und da bin ich wieder hab da noch ne kleine Frage :cry: :cry:

und mein Problem ist, ich bin grade dabei ein kleines Bildbearbeitungsprogramm zu entwickeln weil ich mich mehr mit Images beschäftigen will und mein Problem ist jetz ich würde gerne ein screenshot machen gesagt getan kein Problem
jetz würde ich das bild nur gerne links vergrößern aber nicht damit es sich dehnt oder so sondern es sollte eine weiße fläche links neben dem screenshot erscheinen nach rechts und nach unten geht es ja ist ja kein problem aber halt nach oben und nach links vergrößern habe es schon versucht zu spiegeln und dann zu vergrößern und wieder zurück nur dauert diese Prozedur mehrere sekunden was nicht so toll ist

schonmal danke im voraus

liebe Grüße sebi
Zuletzt geändert von Dragomir am Di 5. Mai 2015, 15:53, insgesamt 1-mal geändert.

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: ein Image nach Links vergrößern

Beitrag von theo »

Da musst du dein Bild (Bitmap) auf ein neues, größeres kopieren.

Dragomir
Beiträge: 40
Registriert: Di 28. Apr 2015, 12:06

Re: ein Image nach Links vergrößern

Beitrag von Dragomir »

danke hat alles wunderbar funktioniert :)

Dragomir
Beiträge: 40
Registriert: Di 28. Apr 2015, 12:06

Re: ein Image nach Links vergrößern

Beitrag von Dragomir »

Code: Alles auswählen

cCanvas := TCanvas.Create;
    P_Bild.Width := P_Bild.Width + 50;
    Image1.Left := Image1.Left + 50;
    Frm_bearbeitung.Width := Frm_bearbeitung.Width + 50;
    Application.ProcessMessages;
    cCanvas.Handle := GetWindowDC(P_Bild.Handle);
    crect := Classes.Rect(0,0,P_Bild.Width, P_Bild.Height);
    Image1.Picture.Bitmap.Width := Image1.Picture.Bitmap.Width +50;
    Image1.Picture.Bitmap.Canvas.CopyRect(crect, cCanvas, crect);
    ReleaseDC(P_Bild.Handle,cCanvas.Handle);
    Image1.Left := Image1.Left - 50;

Antworten