Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Bilder verkleinern (https://www.delphipraxis.net/56007-bilder-verkleinern.html)

Gigant02 30. Okt 2005 12:21


Bilder verkleinern
 
mon moin

ich bin mir sicher das es die frage schon gab aber irgendwie habe ich noch nix drüber gefunden was mich weiter gebracht hat

also ich habe das bild C:\Dokumente und Einstellungen\Administrator\test.jpg
gut

das bild hat die pixel 1024 mal 800 (ist ja auch egal)

wie kann ich erkennen wieviel pixel es hat ??
und wie kann ich es einfach verkleinern ???

und dann wieder abspeichern ???

ich weiss man könnte es mit gimp oder photoshop machen klar
aber ich dachte mir da schreibe ich doch einfach mal ein programm zu da kann ich zumindest noch was dazu lernen

nun habe ich gerade die komponenten pallete mal durch geblättert aber ich find da nix schönes für :(

wie gehe ich am bestens vor ??

lg, Gigant

arbu man 30. Okt 2005 12:48

Re: Bilder verkleinern
 
Zu erst musst du die jpeg datei in ein bitmap umwandanlen, das geht am besten mit dem tjpegimage der unit jpeg, aber da hilft die foren suche auch weiter,
dann kannst du mit bitmap.heigth und bitmap.weigth höhe und breite feststellen.
Als nächstes musst du ein neues bitmap erzeugen und mit canvas.stretchdraw das bitmap mit der größe neu zeichnen

Jelly 30. Okt 2005 13:59

Re: Bilder verkleinern
 
Zitat:

Zitat von arbu man
Als nächstes musst du ein neues bitmap erzeugen und mit canvas.stretchdraw das bitmap mit der größe neu zeichnen

Statt strechdraw würde ich eher die Grahics32 Sammlung vorschlagen, damit erreichst du eine wesentlich bessere Qualität, da es andere Verkleinerungsverfahren nutzt.

Gigant02 30. Okt 2005 15:17

Re: Bilder verkleinern
 
@Jelly
danke da werd ich auch mal weitersuchen

und nochmal zurück zum eigentlich

warum muss ich den umweg gehen und ein bitmap erzeugen ??? ich weiss ich weiss jpg ist compremiert aber gibt es nicht irgendwas was damit so umkann ???

lg, Gigant

Khabarakh 30. Okt 2005 15:35

Re: Bilder verkleinern
 
Was ist denn an einer weiteren Instanz so schlimm :roll: ? Du könntest von TJPEGImage ableiten, um auf dessen internes Bitmap zugreifen zu können, aber einen wirklichen Nutzen sehe ich nicht.

Der_Unwissende 30. Okt 2005 16:23

Re: Bilder verkleinern
 
Ein JPEGImage hat ebenfalls die Eigenschaften Width und Height. Die Methode DIBNeeded dekomprimiert es auch in ein Bitmap.
Für einen nicht schönen aber sehr einfachen Weg würde ich dir auch einfach eine nicht sichtbare TImage Komponente empfehlen. Dort kannst du Stretched und Proportional auf True setzen und jede Graphic, die du dem zuweist würde automatisch gestreckt / gestaucht werden (stretched), wobei die Seitenverhältnisse beibehalten werden (proportional). Kannst du natürlich auch ausrechnen und entsprechend mit ner Hintergrundbitmap machen.
Nachdem du dein JPEG als Graphic dem TImage zugewiesen hast, musst du das Image des TImage per assign deinem JPEG zuweisen. Nun kannst du das JPEG wieder abspeichern et voila...
Aber achte auf die richtige Kompressionsrate beim abspeichern (findest du alles in der Hilfe von TJPEGImage), auch wenn du es schon weißt, möchte ich nochmal sagen, das JPEG immer verlustbehaftet abgespeichert werden, auch bei 100% Qualität. D.h. 30000x öffnen und speichern führt wahrscheinlich zu einem BIld, das wenig mit dem Original zu tun hat (also wie oft man komprimieren muss hängt natürlich vom Bild und der benutzten Qualität ab).

Gruß Der Unwissende


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