![]() |
JPEG vergrößer/verkleiner und anzeigen
Hi,
ich möchte eine JPEG-Datei einlesen, in der Größe anpassen und anschließend auf einer Form anzeigen. Das Bild einlesen und anzeigen läuft, aber die Größer ändern und anzeigen klemmt?? Source etwa so .... TempJPeg:=TJPeg.Create; TempBitmap:=TBitmap.Create; TempJPeg.LoadfromFile('Bild.jpg'); TempBitmap.Canvas.StretchDraw(Rect(0,0,100,100),Te mpJpeg); TempJPeg.Assign(Tempbitmap); Form1.Image1.Picture.Assign(TempJpeg); .... Vielleicht geht es alles auch wesentlich einfacher ... Ich bin für alle Hinweise und Anregungen dankbar Gerhard |
Re: JPEG vergrößer/verkleiner und anzeigen
nimm doch einfach ne image komponente (ich nehme die der indys - aber net die image komponente sondern thumbnail da dort auch rotate...)
ich setzte meine pic komponente dann auf eien scrollbox und schon gehts los alle änderungen können dann auch schön gespeichert werden vielleicht hilft dir das weiter, musst dirs halt blos anpassen:
Delphi-Quellcode:
denk an die eigenschaften center+strech+proportional
procedure TDiashowForm.Zoom(Faktor:integer);
begin try scrollbox.Top:=piccontrole.Height; scrollbox.Left:=0; scrollbox.Height:=screen.height-piccontrole.Height-5; scrollbox.Width:=DiashowForm.Width; diapic.Parent:=scrollbox; gif.Parent:=scrollbox; if (diapic.Picture.Width<diapic.Width) and not (diapic.Stretch) then diapic.Width:=diapic.Picture.Width+Faktor else diapic.Width:=diapic.Width+Faktor; if (diapic.Picture.Height<diapic.Height) and not (diapic.Stretch) then diapic.Height:=diapic.Picture.Height+Faktor else diapic.Height:=diapic.Height+Faktor; if (gif.Image.Width<gif.Width) and not (gif.Stretch) then gif.Width:=gif.Image.Width+Faktor else gif.Width:=gif.Width+Faktor; if (gif.Image.Height<gif.Height) and not (gif.Stretch) then gif.Height:=gif.Image.Height+Faktor else gif.Height:=gif.Height+Faktor; if diapic.Width<scrollbox.Width then diapic.Left:=round((scrollbox.Width/2)-(diapic.Width/2)) else diapic.Left:=0; if diapic.Height<scrollbox.Height then diapic.Top:=round((scrollbox.Height/2)-(diapic.Height/2)) else diapic.Top:=0; if gif.Width<screen.Width then gif.Left:=round((scrollbox.Width/2)-(gif.Width/2)) else gif.Left:=0; if gif.Height<screen.Height then gif.Top:=round((scrollbox.Height/2)-(gif.Height/2)) else gif.Top:=0; diapic.Stretch:=true; gif.Stretch:=true; scrollbox.Visible:=true; except application.MessageBox('Beim Zoom ist ein Fehler aufgetreten.','Achtung',mb_ok+mb_iconerror); stopClick(DiashowForm); end; end; |
Re: JPEG vergrößer/verkleiner und anzeigen
Wenn du einen hochwertigen Resampler haben willst, kannst du dir unter
![]()
Delphi-Quellcode:
Grüße,
uses Resample;
var JPG: TJPEG; BMP: TBitmap; begin JPG := TJPEG.Create; JPG.LoadFromFile ('...'); BMP := TBitmap.Create; BMP.Width := NeueBreite; BMP.Height := NeueHoehe; StretchImage (JPG.Bitmap, BMP, ResampleFilters[3].Filter, ResampleFilters[3].Width); // Alten Inhalt kicken und Picture leeren, sonst könnte // es Probleme bei neuen Bild-Größen geben Image1.Picture.Assign (nil); // ... und neu zuweisen Image1.Picture.Assign (BMP); JPG.Free; BMP.Free; end; // Das hier ist nicht getestet Mario |
Re: JPEG vergrößer/verkleiner und anzeigen
ja, is es denn nicht aber sinnvoller, wenn er das bild auch aneigen will, es einfach zu strechen (s.o.)
|
Re: JPEG vergrößer/verkleiner und anzeigen
Und wie immer meine wärmste Empfehlung: Die Graphics32-Lib von
![]() Die lässt eigentlich keine Wünsche übrig, und ich entdecke mit der Zeit immer mehr tolle Kleinigkeiten darin :). |
Re: JPEG vergrößer/verkleiner und anzeigen
Zitat:
@dizzy: Yo, Full Ack. Hab damit zwar noch nich viel gearbeitet, aber von dem was ich bisher gesehen hab war ich sehr beeindruckt! :) |
Re: JPEG vergrößer/verkleiner und anzeigen
Danke für die Hinweise, bin wieder am testen ....
Gruß Gerhard |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:43 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