Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Mit Bildern arbeiten (https://www.delphipraxis.net/10158-mit-bildern-arbeiten.html)

billi 12. Okt 2003 19:02


Mit Bildern arbeiten
 
Hallo,
ich möchte eigendlich nur ein Bild verkleinert anzeigen, komme aber mit der Hilfe von Delphi nicht weiter. Diese Frage umfasst ja eigendlich Grundlagenwissen... darum möchte ich auch nicht umbedingt eine reine Lösung, eigendlich wär es besser, wenn mir jemand ein Tutorial nennen könnte, denn so kann ich das dann auch lernen und stückel nicht nur Code zusammen, von dem ich keine Ahnung habe.
Kann mir jemand dabei Helfen?
gruß
billi

Keldorn 12. Okt 2003 20:23

Re: Mit Bildern arbeiten
 
Hallo wenn es dir nur ums anzeigen geht, könntest du eine image-komponente verwenden. gugg dir dazu insbesondere die eigenschaften stretch und proportional der Komponente an, die helfen weiter. wenn du selber zeichnen möchstest, ist Tcanvas.stretchdraw dein Freund.

mfg Frank

billi 12. Okt 2003 20:49

Re: Mit Bildern arbeiten
 
Hallo.
ich hab mal geschaut: Das ich mit der TImage Komponente arbeiten muss ist mir auch klar, nur hat die Eigenschaft stretsh das Prob, das das Bild nicht proportional an die Image Komponente angepasst wird. Und eine Eigenschaft proportional hab ich leider nicht gefunden...
gruß
MArkus

Tonic1024 13. Okt 2003 07:14

Re: Mit Bildern arbeiten
 
Moin...

Hast du schon mal drüber nachgedacht, sofern es wirklich nicht geht, die Proportionalität "von Hand" zu berechnen?
ist nicht tragisch... Du musst dir das Seitenverhältnis ausrechnen und dieser Wert muss beibehalten werden. Dann musst du noch Wissen ob du ein hochformat oder quervormat hast und fertig...

bis denne...

billi 13. Okt 2003 13:42

Re: Mit Bildern arbeiten
 
ita est...
Da bin ich auch schon dabei, nur wär so ne Funktion halt praktisch gewesen...

billi 13. Okt 2003 15:44

Re: Mit Bildern arbeiten
 
Hallo,
so hab das mit der Proportionalität mal von Hand gemacht, nur ist die Qualität der Bilder unter aller s**!!!

Hier der Code. Vieleicht kann mir jemand sagen, wie die Bilder qualitativ besser werden...
gruß,
billi
Delphi-Quellcode:
var
RBit, Bit: TBitmap;
JPG: TJPEGImage;
NewWidth, NewHeight: integer;
w, h, hdw, wdh: Real;
begin
Bit:=TBitmap.Create;
RBit:=TBitmap.Create;
JPG:=TJPEGImage.Create;
JPG.LoadFromFile(pfad.text+Cerweitert_namenliste.text+'.jpg');
w:= JPG.Width;
h:= JPG.Height;
wdh:= w/h;
hdw:= h/w;
if w > h then
begin
newwidth:= 193;
newheight:= trunc(hdw*193);
end;
if h > w then
begin
newwidth:= trunc(wdh*113);
newheight:= 113;
end;
if h = w then
begin
newwidth:= trunc(wdh*113);
newheight:= 113;
end;
Bit.Assign(JPG);
RBit.Width:=NewWidth;
RBit.Height:=NewHeight;
RBit.Canvas.CopyRect(Rect(0,0,NewWidth,NewHeight),Bit.Canvas,Rect(0,0,Bit.Width,Bit.Height));
JPG.Assign(RBit);
Ierweitert_bild.Picture.Graphic:= JPG;
Ierweitert_bild.center:= true;
JPG.Free;
RBit.Free;
Bit.Free;
end;

Matze 13. Okt 2003 15:57

Re: Mit Bildern arbeiten
 
Delphi-Quellcode:
Image1.Stretch:=true;
Image1.Proportional:=true;
mach's halt so und nicht im OI.

billi 13. Okt 2003 16:07

Re: Mit Bildern arbeiten
 
das geht doch nur ab Gelphi 6?!!!!

Matze 13. Okt 2003 16:14

Re: Mit Bildern arbeiten
 
Oh, sorry, wusste ich nicht. :wall:

billi 13. Okt 2003 16:44

Re: Mit Bildern arbeiten
 
gibt's dennoch ne Möglichkeit das unter delphi5 zu verwenden?

Matze 13. Okt 2003 16:51

Re: Mit Bildern arbeiten
 
Delphi-Quellcode:
procedure TForm1.ResizePicture(dir: string; width, height: integer);
var bmp:TBitmap;
    jpeg:TJpegImage;
begin
  Jpeg:=TJpegImage.Create;
  try
    jpeg.LoadFromFile(dir);
    bmp:=TBitmap.Create;
      try
        If jpeg.width>jpeg.Height then
        begin
          bmp.width:=width;
          bmp.height:=height;
        end else
        begin
          bmp.width:=height;
          bmp.Height:=width;
        end;
        bmp.canvas.StretchDraw(Rect(0,0,bmp.width,bmp.height),jpeg);
        Image1.Canvas.Draw(0,0,bmp);
      finally
        bmp.free;
      end;
  finally
    jpeg.free;
  end;
end;
Alle Angaben ohne Gewähr! ;)

billi 13. Okt 2003 18:03

Re: Mit Bildern arbeiten
 
Hallo,
vielen, vielen Dank, jetzt gehts super. Nur zwei Sachen interessieren mich noch:
1.) TImage.center:= true hat jetzt keinen Erfolg mehr, wie kann man das ändern? (muss ich das jetzt auch manuell über die Koordinaten ausrechen, oder gibts da ne bessere Lösung?)
2.) Wenn ich in dem TImage jetzt mehrere Bilder öffne, legen die sich übereinander, was ja nicht so gut aussieht... und nochwas, wie bestimme ich die Hintergrundfarbe?
gruß
billi

Tonic1024 14. Okt 2003 08:51

Re: Mit Bildern arbeiten
 
Moin...

Wenn du die Bilder an einer anderen stelle haben willst, musst du sie schon berechnen lassen... die Stelle Natürlich :) Und wenn dur sie eh berechnest, kannst du sie auch gleich zentrieren...

Welche Hintergrundfarbe?

Willst du sie setzen oder auslesen? Arbeitest du mit Transparenz?

bis denne...

billi 14. Okt 2003 12:38

Re: Mit Bildern arbeiten
 
als Hintergrundfarbe würd ich gerne die vom Form nutzen, bzw. ich würd dann halt die Farbe setzen.

XeRo 25. Okt 2003 12:11

Re: Mit Bildern arbeiten
 
Form1.Color:=clRed; //Farbe von Form auf Rot gesetzt
Image1.Transparent:=True; //Jene Fareb, die am Rand desl Bildes ist wird durchsichtig

Nun wird die Randfarbe des Bildes durchsichtig und die nun rote Form scheint durch.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz