AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TBitmap verkleinern

Ein Thema von Blackheart · begonnen am 14. Nov 2007 · letzter Beitrag vom 14. Nov 2007
Antwort Antwort
Blackheart

Registriert seit: 4. Mai 2005
846 Beiträge
 
Delphi 7 Enterprise
 
#1

TBitmap verkleinern

  Alt 14. Nov 2007, 18:00
Hallo Leute
Ich erzeuge ein Hintergrundbild setze ein zweites Bild in die Mitte
das klappt soweit.
Nun möchte ich das ganze in einer bestimmten größe speichern (100x100)
Hat da jemand einen Tipp für Mich wie das am einfachsten geht.

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
 bmpGross, bmpKlein:TBitmap;
begin
  bmpGross:=TBitmap.Create;
  bmpKlein:=TBitmap.Create;
  bmpKlein.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'Bildklein.bmp');
  bmpGross.Width:=600;
  bmpGross.Height:=600;
  bmpGross.Canvas.Brush.Color:=clYellow;
  bmpGross.Canvas.FillRect(Rect(0,0,600,600));
  bmpGross.Canvas.Draw(bmpGross.Width div 2 - bmpKlein.Width div 2, bmpGross.Height div 2 - bmpKlein.height div 2, bmpKlein);
  bmpGross.SaveToFile(ExtractFilePath(ParamStr(0)) + 'BildNeu.bmp');
  bmpGross.Free;
  bmpKlein.Free;
end;
Blackheart
  Mit Zitat antworten Zitat
kevSTAR

Registriert seit: 5. Jun 2007
117 Beiträge
 
#2

Re: TBitmap verkleinern

  Alt 14. Nov 2007, 18:26
Hallo,

mit

bmpGross.Canvas.StretchDraw(Rect(0,0,100,100), bmpGross); kannst du das bild in 100x100 verkleinern
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: TBitmap verkleinern

  Alt 14. Nov 2007, 18:29
Hallo,

oder so:
Delphi-Quellcode:
var
  Bild: TBitmap;
begin
  Bild:= TBitmap.Create;
  try
    Bild.Width:= 100;
    Bild.Height:= 100;
    SetStretchBltMode(Bild.Canvas.Handle, STRETCH_HALFTONE);
    SetBrushOrgEx(Bild.Canvas.Handle, 0, 0, nil);
    StretchBlt(Bild.Canvas.Handle, 0, 0, Bild.Width, Bild.Height, Image1.Picture.Bitmap.Canvas.Handle, 0, 0, Image1.Picture.Bitmap.Width, Image1.Picture.Bitmap.Height, SRCCOPY);
  finally
    Bild.SaveToFile('C:\bild.bmp');
  end;
Das Bild im Image ist das grosse Bild.
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
Blackheart

Registriert seit: 4. Mai 2005
846 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: TBitmap verkleinern

  Alt 14. Nov 2007, 18:33
Danke für die Antworten, das hatte Ich schon probiert aber dann setz er Mir das 100x100 Bild in die Linke Ecke des großen (600x600).

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
 bmpGross, bmpKlein:TBitmap;
begin
  bmpGross:=TBitmap.Create;
  bmpKlein:=TBitmap.Create;
  bmpKlein.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'Bildklein.bmp');
  bmpGross.Width:=600;
  bmpGross.Height:=600;
  bmpGross.Canvas.Brush.Color:=clYellow;
  bmpGross.Canvas.FillRect(Rect(0,0,600,600));
  bmpGross.Canvas.Draw(bmpGross.Width div 2 - bmpKlein.Width div 2, bmpGross.Height div 2 - bmpKlein.height div 2, bmpKlein);
  bmpGross.Canvas.StretchDraw(Rect(0,0,100,100), bmpGross);
  bmpGross.SaveToFile(ExtractFilePath(ParamStr(0)) + 'BildNeu.bmp');
  bmpGross.Free;
  bmpKlein.Free;
end;
Irgenwo muss der Fehler stecken nur leider seh Ich ihn nicht.
Blackheart
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#5

Re: TBitmap verkleinern

  Alt 14. Nov 2007, 18:35
Wenn Du die Größe des kleinen Bitmaps nicht angibst, kannst Du auch nicht damit rechnen
Delphi-Quellcode:
  bmpGross.Width:=600;
  bmpGross.Height:=600;
  //diese beiden Zeilen fehlen
  bmpKlein.Width := 100;
  bmpKlein.Height := 100;
[edit] Überlesen, dass es aus einer Datei geladen wird, sry [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: TBitmap verkleinern

  Alt 14. Nov 2007, 18:52
Delphi-Quellcode:
...
  bmpGross.Canvas.StretchDraw(Rect(0,0,100,100), bmpGross);

  bmpGross.Width:= 100;
  bmpGross.Height:= 100;

  bmpGross.SaveToFile(ExtractFilePath(ParamStr(0)) + 'BildNeu.bmp');
  bmpGross.Free;
  bmpKlein.Free;
end;
Da du das grosse Bild abspeicherst.
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
Blackheart

Registriert seit: 4. Mai 2005
846 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: TBitmap verkleinern

  Alt 14. Nov 2007, 18:57
Danke euch das wars, da hätt Ich auch drauf kommen können.
Danke
Blackheart
  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 18:50 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