AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Bilddatei verkleinert in ein TImage laden
Thema durchsuchen
Ansicht
Themen-Optionen

Bilddatei verkleinert in ein TImage laden

Ein Thema von Christian18 · begonnen am 27. Sep 2007 · letzter Beitrag vom 15. Okt 2007
Antwort Antwort
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#1

Bilddatei verkleinert in ein TImage laden

  Alt 27. Sep 2007, 00:33
Hallo,

ich habe eine Bilddatei mit einer Variablen Größe! Diese Bilddatei kann Hochformat, Querformat oder ein Quadrat sein.

Beispiel:

Hochformat:

Filename : Katze.jpg
Width : 50 Pixel
Height : 100 Pixel

Querformat:

Filename : Maus.jpg
Width : 100 Pixel
Height : 50 Pixel

Quadrat:

Filename : Hund.jpg
Width : 100 Pixel
Height : 100 Pixel

Width und Height können aber auch andere Werte haben. Wie schon gesagt, es ist Variabel. Nun will ich diese Bilddatei in ein TImage laden. Das TImage hat eine Feste größe.

Beispiel (TImage):

Hochformat:

Width : 75
Height : 100

Querformat:

Width : 100
Height : 75

Quadrat:

Width : 100
Height : 100

Das sind die Größe, die diese Komponente haben kann. Bis dahin, habe ich gar kein Problem.

Delphi-Quellcode:
// square
if Bitmap.Width = Bitmap.Height then
  begin
    Image.Width:=100;
    Image.Height:=100;
  end;

// landscape format
if Bitmap.Width > Bitmap.Height then
  begin
    Image.Width:=100;
    Image.Height:=75;
  end;

// portrait format
if Bitmap.Width < Bitmap.Height then
  begin
    Image.Width:=75;
    Image.Height:=100;
  end;
Also das funktioniert schon mal. Nun möchte ich noch zusätzlich die größere Bilddatei in mein Image laden. Viele denken nun bestimmt, dass ist doch ganz einfach. Es gibt ja bei Image Komponenten die Möglichkeit die Eigenschaft Proportional auf True zu setzen. Das kann ich leider nicht verwenden, weil ich zusätzlich noch andere Grafiken in das TImage kopieren möchte. Ich habe dazu mal ein kleines Bild gemalt. Achso, die Eigenschaft Proportional kann ich nicht verwenden, weil die Bilddatei da auf das komplette TImage ausgerichtet wird. Ich möchte meine Bilddatei nicht in ein ganzes TImage laden, sondern nur in einen bestimmten Teil. Der restliche, freie Teil soll mit anderen Grafiken gefüllt werden.

Nun die eigentliche Frage:

Wie kann ich soetwas machen?



Mit freundlichen Grüßen

Christian18
Angehängte Grafiken
Dateityp: bmp beispiel_125.bmp (120,8 KB, 13x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Hador
Hador

Registriert seit: 11. Dez 2004
Ort: Recke
682 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Bilddatei verkleinert in ein TImage laden

  Alt 27. Sep 2007, 00:35
Guck dir mal die StretchDraw-Methode des TBitmap/TCanvas an. Damit kannst du Bilder skaliert kopieren.
Lars Kiesow
http://www.larskiesow.de

Computer gehorchen deinen Befehlen, nicht deinen Absichten.
  Mit Zitat antworten Zitat
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#3

Re: Bilddatei verkleinert in ein TImage laden

  Alt 27. Sep 2007, 00:50
Hallo,

ich denke damit hast du mir geholfen. Ich werde das aber erst morgen probieren. Bin jetzt ein bisschen zu müde dazu.

Also, nochmals vielen danke.

MFG Christian18
  Mit Zitat antworten Zitat
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#4

Re: Bilddatei verkleinert in ein TImage laden

  Alt 15. Okt 2007, 21:05
Hallo,

irgendwie habe ich damit doch probleme. Hat jemand vieleicht ein kleines Beispiel?
  Mit Zitat antworten Zitat
Whookie

Registriert seit: 3. Mai 2006
Ort: Graz
445 Beiträge
 
Delphi 10.3 Rio
 
#5

Re: Bilddatei verkleinert in ein TImage laden

  Alt 15. Okt 2007, 21:32
Versuch es mal mit sowas

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
Var
  bmp: TBitmap;
begin
  bmp := TBitmap.Create;
  try
    bmp.LoadFromFile('test.bmp');
    Image1.Canvas.StretchDraw(Rect(10,5,bmp.Width, bmp.Height), bmp);
  finally
    bmp.Free;
  end;
end;
Mit StretchDraw kannst du die einkopierte Grafik auch noch verkleinern oder vergößern. Etwa mit:

Delphi-Quellcode:
...
Image1.Canvas.StretchDraw(Rect(10,5,bmp.Width Div 2, bmp.Height Div 2), bmp);
...
end;
Whookie

Software isn't released ... it is allowed to escape!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:51 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