Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Seitenverhältnis von PNG-Grafiken ändern (https://www.delphipraxis.net/167102-seitenverhaeltnis-von-png-grafiken-aendern.html)

100nF 13. Mär 2012 15:49


Seitenverhältnis von PNG-Grafiken ändern
 
Hallo zusammen,

Ich habe hier sehr viele PNG-Bilder, in allen möglichen Auflösungen und Seitenverhältnissen, also alles wild durcheinander. Einzig der Dateityp ist bei allen gleich :-)

Diese Dateien sollten jetzt irgendwie in ein bestimmtes Seitenverhältnis gebracht werden, und zwar vollautomatisch weil es viel zu viele wären um es von Hand zu machen.

Das heisst also, die Abmessungen der Bilder müssen eingelesen werden, um dann entscheiden zu können ob das Bild links und rechs, oder oben und unten erweitert werden muss. Das ursprüngliche Bild soll schlussendlich in der Mitte des neuen, grösseren Bildes liegen. Schön wäre auch noch ein Rand von vielleicht 10 Pixel, der rund ums ursprüngliche Bild hinzugefügt wird. Die Bilder haben alle einen weissen Hintergrund, und das sollen sie auch nach dem Bearbeten noch haben.

Es ist nur eine einmalige Sache, deshalb ist es mir völlig wurscht wie das passieren soll. Ich habe viel im Internet gesucht, vorallem irgendwelche Bash-Skripte für Linux, habe aber leider nichts passendes gefunden. Bin auch kein Skript-Profi, also selberschreiben fällt weg. Da dachte ich halt ich versuchs mit Delphi, das liegt mir am besten.

Das Auflisten und Anzeigen der Dateien sowie die Bestimmung der aktuellen Grösse und der neuen Grösse ist auch kein Problem. Danach happerts dann aber bei der Erzeugung eines neuen, leeren PNGs. Darf ich das mit einem TBitmap machen? Ich muss die Bilder wieder als PNG abspeichern können, und zwar möglichst ich gleicher Qualität wie sie ursprünglich waren.

Wäre super wenn mir da jemand Tipps geben könnte! Wie gesagt, es muss nicht mit Delphi sein, ist mir egal wie das ganze ablaufen soll, hauptsache das Ergebnis passt :-)

Viele Grüsse
Urban

CCRDude 13. Mär 2012 15:54

AW: Seitenverhältnis von PNG-Grafiken ändern
 
Spontan: "Batch conversion" in IrfanView. Ne Menge Dateien aussuchen, "Use advanced options" anwählen, dort "RESIZE" mit vorgegeben Werten, und natürlich "Preserve aspect ratio".

Wenn Du wirklich noch einen Rahmen haben willst, das ganze nochmal mit "Don't enlarge smaller images".

Gleiche Qualität ist natürlich "unmöglich" - jede Größenveränderung (wenn es um die Größe in Pixeln geht, wenn es um die Druckgröße geht, wäre es eine Option, die DPI anzupassen) bedeutet umrechnen. Aber die Qualität von IrfanViews Größenänderungen ist mMn ganz in Ordnung.

100nF 13. Mär 2012 16:02

AW: Seitenverhältnis von PNG-Grafiken ändern
 
Hallo CCRDude,

Zitat:

Zitat von CCRDude (Beitrag 1156351)
Spontan: "Batch conversion" in IrfanView. Ne Menge Dateien aussuchen, "Use advanced options" anwählen, dort "RESIZE" mit vorgegeben Werten, und natürlich "Preserve aspect ratio".

Entweder hast du mich falsch verstanden, oder ich versteh deine Antwort falsch :-) "Preserve aspect ratio" heisst ja "Seitenverhältnis beibehalten", aber genau das möchte ich ja nicht. Ich möchte das Seitenverhältnis ändern, indem ich oben+unten oder links+rechts das Bild erweitere mit weissem Hintergrund.

Zitat:

Zitat von CCRDude (Beitrag 1156351)
Gleiche Qualität ist natürlich "unmöglich" - jede Größenveränderung (wenn es um die Größe in Pixeln geht, wenn es um die Druckgröße geht, wäre es eine Option, die DPI anzupassen) bedeutet umrechnen. Aber die Qualität von IrfanViews Größenänderungen ist mMn ganz in Ordnung.

Nein, das sollte eben nicht unmöglich sein. Das ursprüngliche Bild bleibt ja genau so bestehen wie es war, ist also genau gleichviele Pixel hoch und breit. Es wird lediglich der Hintergrund des Bildes erweitert, so dass das gesamte Bild (mit Hintergrund) schlussendlich grösser ist als das ursprüngliche.

Das Bild soll also einfach in ein etwas grösseres, leeres Bild hineinkopiert werden.
Ich hoffe das ist jetzt verständlich :-)

CCRDude 13. Mär 2012 16:22

AW: Seitenverhältnis von PNG-Grafiken ändern
 
Ah, ok, zwei Mißverständnisse :)

Für Argument 2: Dann verwende gleich "Don't enlarge smaller images" :)

Für Argument 1: Ich vermute, "Preserve Aspect Ratio" bezieht sich nur auf das "Bild im (neuen größeren) Bild". Wegen obigen Punktes wird diese Option aber eh unnötig, da hatte ich Dich falsch verstanden.

Oder anders gesagt: so dürfte das im IV noch einfacher sein.

100nF 13. Mär 2012 16:57

AW: Seitenverhältnis von PNG-Grafiken ändern
 
Also ich glaube nicht, dass IrfanView das kann.

Ich habe jetzt mal folgendes probiert:
(Alle Bilder sind zwischen 400 und 1000 Pixel breit und hoch)

RESIZE auf "set new size", "Set one or both sides to": Grösse versuchshalber 320x240 und 1600x1200
und Haken bei "Preserve aspect ratio" und "Don't enlarge smaller images"

Ergebnis: Die Bilder werden einfach nur runterskaliert, keine Änderung am Seitenverhältnis.
Ohne "Preserve aspect ratio": Die Bilder werden gestaucht.
Ohne "Don't enlarge smaller Images": Die Bilder werden nur rauf- bzw. runterskaliert.
Ohne beides: Die Bilder werden gestreckt bzw. gestaucht.

Das gewünschte Ergebnis konnte ich nicht erzielen. Ist aber auch kein Wunder wenn IV das nicht kann, braucht irgendwie ja auch kein Mensch :-)

100nF 13. Mär 2012 17:06

AW: Seitenverhältnis von PNG-Grafiken ändern
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe mal ein Bild gezeichnet wie ich mir das vorstelle, spätestens jetzt sollte es leicht verständlich sein was ich erreichen will :-)

Das ist jetzt ohne die ca. 10 Pixel Rahmen die ich mal erwähnt habe, die sind (vorerst) aber auch egal.
Das Bild wird einfach nur erweitert, damit sich ein anderes Seitenverhältnis ergibt.

Gustav.R 13. Mär 2012 17:52

AW: Seitenverhältnis von PNG-Grafiken ändern
 
Ja, das sollte mit IrfanView gehen, wie CCRDude schon geschrieben hat!

Probier IrfanView doch einfach aus, ist doch (super!) Freeware...

Mit der Zeit, die wir hier "vertrödeln", hättest Du's schon ein paarmal testen können, ob es klappt :wink:

GG

100nF 13. Mär 2012 18:15

AW: Seitenverhältnis von PNG-Grafiken ändern
 
Na wenn du wüsstest was ich schon alles ausprobiert habe...
Zuerst auf Linux (arbeite nichtmehr mit Windoof), da gibts auch ein paar wenige aber sehr mächtige Kommandozeilenprogramme um Bilder zu bearbeiten, der bekannteste Befehl ist wohl "convert". Das scheint allerdings für mein Vorhaben nicht mächtig genug zu sein.

Dann habe ich mein virtuelles Windows angeschmissen, da hatte ich IrfanView schon drauf. Nach langem Rumprobieren musste ich auch das aufgeben. Scheint nicht möglich zu sein. Habe dann sogar noch irgendwelche Shareware Programme runtergeladen, aber selbst da wurde ich nicht fündig.

Eigentlich eine so simple Sache - nach genauerem Betrachten scheint es aber doch einiges schwieriger zu sein :-(

Wenn du, Gustav, mir sagen kannst wie ich das mit IrfanView mache hast du meinen Respekt und Dank verdient :-)
Vielleicht bin ich ja auch einfach zu blöd dafür. Ich habe die Aufgabe aber keinesfalls einfach kampflos dem Forum übergeben ;-)

Nachtrag:
Wenn ich mir das Einstellungsfenster von IrfanView so anschaue, finde ich auch keine Einstellung, die das gewünschte Ergebnis vermuten lässt. Also ich meine keine dieser englischen Bezeichnungen scheint für mein Vorhaben "gemacht" zu sein. Müsste ja irgendwie "Fix aspect ratio" oder so ähnlich heissen...

Gustav.R 13. Mär 2012 18:32

AW: Seitenverhältnis von PNG-Grafiken ändern
 
Liste der Anhänge anzeigen (Anzahl: 1)
Weiß ich natürlich nicht!

Ich würde es mal so wie im angehängten Screenshot mit IV angehen.

Häng' doch ein mal ein paar Deiner "ProblemPNGs" an eine Antwort und schreib dazu, was genau rauskommen soll?

GG

Edit1 meint, klick auf "Options/Change language..." dann wird's Deutscher :-)
Edit2 meint, siehe CCRDude "Use advanced options"!

100nF 13. Mär 2012 18:53

AW: Seitenverhältnis von PNG-Grafiken ändern
 
Liste der Anhänge anzeigen (Anzahl: 2)
Das geht leider auch nicht, habe ich auch schon probiert.
Die tatsächliche Grösse des Ausgabebildes soll ja von der Grösse des Eingabebildes abhängig sein. In den von dir genannten Einstellungen gibt man ja die Ausgabegrösse bereits an, und alle Bilder werden dann einfach zentriert in diese Grösse hineinkopiert. Dann ist aber rundherum viel zu viel Rand vorhanden. Es soll aber nur an zwei Seiten (entweder links/rechts oder oben/unten) ein Rand entstehen.

Mein vorher hochgeladenes Bild sollte ja klar genug sein, aber ich kann natürlich auch ein Musterbeispiel anhängen. Das Eingabebild "bild_original.png" soll in ein 4:3 Format gebracht werden ("bild_neu.png"). Sie müssten jetzt genau gleich hoch sein, sind sie aber nicht genau weil ich die Bearbeitung von Hand vorgenommen habe.

Falls jemand weiss wie ich in Delphi ein neues PNG erzeugen une ein anderes da hineinkopieren kann würde mir das ja schon genügen, dann bin ich vollumfänglich zufrieden :-)

EDIT: weiss der Geier warum das Forum eine meiner PNG-Dateien als jpg hochlädt...Habs mehrfach versucht und der Pfad im Edit-Feld endet definitiv mit ".png", nach dem Hochladen ists dann ein jpg :shock:

EDIT2: Ach, und wenn ich bei IV eine geringere Grösse angebe als die Originalbilder schon sind, dann schmiert das Programm ab :-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:18 Uhr.
Seite 1 von 2  1 2      

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