![]() |
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 |
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 |
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 |
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... |
Re: Mit Bildern arbeiten
ita est...
Da bin ich auch schon dabei, nur wär so ne Funktion halt praktisch gewesen... |
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; |
Re: Mit Bildern arbeiten
Delphi-Quellcode:
mach's halt so und nicht im OI.
Image1.Stretch:=true;
Image1.Proportional:=true; |
Re: Mit Bildern arbeiten
das geht doch nur ab Gelphi 6?!!!!
|
Re: Mit Bildern arbeiten
Oh, sorry, wusste ich nicht. :wall:
|
Re: Mit Bildern arbeiten
gibt's dennoch ne Möglichkeit das unter delphi5 zu verwenden?
|
Re: Mit Bildern arbeiten
Delphi-Quellcode:
Alle Angaben ohne Gewähr! ;)
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; |
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 |
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... |
Re: Mit Bildern arbeiten
als Hintergrundfarbe würd ich gerne die vom Form nutzen, bzw. ich würd dann halt die Farbe setzen.
|
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