Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi [suche] bild verkleinern <-- einfachsten weg (https://www.delphipraxis.net/73560-%5Bsuche%5D-bild-verkleinern-einfachsten-weg.html)

gandime 19. Jul 2006 20:28


[suche] bild verkleinern <-- einfachsten weg
 
hi,
ich suche den absolut einfachsten weg ein bild (.bmp) zu verkleinern ohne viele spielereien usw.
ich hab hab schon im forum was gefunden aber kapiere das nicht so richtig, da ich ka von grafik usw habe.

mfg gandime

BenjaminH 19. Jul 2006 20:30

Re: [suche] bild verkleinern <-- einfachsten weg
 
Nur zur Ausgabe, oder soll das Bild auch gespeichert werden?

gandime 19. Jul 2006 20:30

Re: [suche] bild verkleinern <-- einfachsten weg
 
also dasbild soll ausgelesen werden
und dann wieder als bmp gespeichert werden

Hador 19. Jul 2006 20:46

Re: [suche] bild verkleinern <-- einfachsten weg
 
Guck dir mal
Delphi-Quellcode:
Canvas.StretchDraw
an.

Das sollte dir weiterhelfen.

gandime 19. Jul 2006 20:50

Re: [suche] bild verkleinern <-- einfachsten weg
 
ja wie gesagt ich hab ka davon

Delphi-Quellcode:
procedure StretchDraw(var Rect: TRect; Graphic: TGraphic);
Rect: TRect;
Graphic: TGraphic;

was muss ich dann z.b. für die beiden sachen eigeben damit ich der bild auf 500 X 500 picel bekommen

edit:
also soweit bin ich schonmal

Delphi-Quellcode:
  bitmap:=TBitmap.Create;
  bitmap.LoadFromFile('C:\bild.bmp');
  bitmap.canvas.StretchDraw({joa was soll da jetzt tolles reun});
  bitmap.SaveToFile('C:\bild2.bmp');

3_of_8 19. Jul 2006 20:53

Re: [suche] bild verkleinern <-- einfachsten weg
 
In Rect gibst du die Koordinaten an. Graphic ist die zu zeichnende Grafik.

Also wenn du ein Bitmap laden und als 500x500 zeichnen willst, geht das so:

Delphi-Quellcode:
var bmp: TBitmap;
begin
bmp:=TBitmap.Create;
bmp.loadfromfile('blubb.bmp');
image1.canvas.stretchdraw(Rectangle(0,0,499,499), bmp);
bmp.free;
end;

gandime 19. Jul 2006 20:57

Re: [suche] bild verkleinern <-- einfachsten weg
 
joa das sieht gut aus aber rectangel will noch einen weiteren parameter

DC:HDC

3_of_8 19. Jul 2006 21:05

Re: [suche] bild verkleinern <-- einfachsten weg
 
Stimmt, es heißt nicht Rectangle, sondern Rect.

gandime 19. Jul 2006 21:09

Re: [suche] bild verkleinern <-- einfachsten weg
 
ich glaube da muss noch "Bitmap.Canvas.Handle" rein aber dann sagt der

also in deinem fall "bmp.Canvas.Handle"

[Pascal Error] Unit1.pas(70): E2010 Incompatible types: 'TRect' and 'LongBool'

Hador 19. Jul 2006 21:23

Re: [suche] bild verkleinern <-- einfachsten weg
 
So ich habe dir mal ein kleines Beispiel dazu geschrieben:
Delphi-Quellcode:
program Project2;

{$APPTYPE CONSOLE}

uses
  Types, Graphics;

var
  bmp, tmpbmp: TBitmap;

begin
  bmp := TBitmap.Create;
  bmp.LoadFromFile('...');

  tmpbmp := TBitmap.Create;
  tmpbmp.Width := 500;
  tmpbmp.Height := 500;
  tmpbmp.Canvas.StretchDraw(Rect(0, 0, 500, 500), bmp);
  bmp.Assign(tmpbmp);
  tmpbmp.Free;

  bmp.SaveToFile('...');
  bmp.Free;
end.

3_of_8 19. Jul 2006 21:31

Re: [suche] bild verkleinern <-- einfachsten weg
 
Zitat:

Zitat von gandime
ich glaube da muss noch "Bitmap.Canvas.Handle" rein aber dann sagt der

also in deinem fall "bmp.Canvas.Handle"

[Pascal Error] Unit1.pas(70): E2010 Incompatible types: 'TRect' and 'LongBool'

Nein, muss es nicht. Noch mal: Rect ist die Funktion, nicht Rectangle.

gandime 19. Jul 2006 22:20

Re: [suche] bild verkleinern <-- einfachsten weg
 
joa thx das geht jetzt bloss...

naja iwie erkennt man jetzt kaum noch etwas auf dem bild...

also brauche ich eine methode die das besser skalliert

3_of_8 19. Jul 2006 22:48

Re: [suche] bild verkleinern <-- einfachsten weg
 
Tja - Das ist ein Problem.

Wie groß ist denn der Skalierungsfaktor?

gandime 20. Jul 2006 01:34

Re: [suche] bild verkleinern <-- einfachsten weg
 
von 1280 X 800 nach 800 X 600
und da erkennt man absolut nichts mehr...

Hador 20. Jul 2006 08:40

Re: [suche] bild verkleinern <-- einfachsten weg
 
Dann wirst du wohl um die graphics32-Komponenten nicht herumkommen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:34 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