AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Seitenverhältnis von PNG-Grafiken ändern
Thema durchsuchen
Ansicht
Themen-Optionen

Seitenverhältnis von PNG-Grafiken ändern

Ein Thema von 100nF · begonnen am 13. Mär 2012 · letzter Beitrag vom 14. Mär 2012
Antwort Antwort
100nF

Registriert seit: 7. Nov 2004
639 Beiträge
 
#1

Seitenverhältnis von PNG-Grafiken ändern

  Alt 13. Mär 2012, 15:49
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
  Mit Zitat antworten Zitat
CCRDude

Registriert seit: 9. Jun 2011
677 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Seitenverhältnis von PNG-Grafiken ändern

  Alt 13. Mär 2012, 15:54
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.
  Mit Zitat antworten Zitat
100nF

Registriert seit: 7. Nov 2004
639 Beiträge
 
#3

AW: Seitenverhältnis von PNG-Grafiken ändern

  Alt 13. Mär 2012, 16:02
Hallo CCRDude,

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.

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
  Mit Zitat antworten Zitat
CCRDude

Registriert seit: 9. Jun 2011
677 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Seitenverhältnis von PNG-Grafiken ändern

  Alt 13. Mär 2012, 16:22
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.
  Mit Zitat antworten Zitat
100nF

Registriert seit: 7. Nov 2004
639 Beiträge
 
#5

AW: Seitenverhältnis von PNG-Grafiken ändern

  Alt 13. Mär 2012, 16:57
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
  Mit Zitat antworten Zitat
100nF

Registriert seit: 7. Nov 2004
639 Beiträge
 
#6

AW: Seitenverhältnis von PNG-Grafiken ändern

  Alt 13. Mär 2012, 17:06
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.
Angehängte Grafiken
Dateityp: png bildbearbeitung.png (40,6 KB, 11x aufgerufen)
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#7

AW: Seitenverhältnis von PNG-Grafiken ändern

  Alt 13. Mär 2012, 19:47
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
Die Programm das du suchst ist Light Image Resizer. Wenn es nicht im ersten Durchlauf klappt, dann im zweiten:

- im ersten Durchgang alle Bilder in Grenze bringen, d.h. wenn du ein 10x40 Pixel Bild hast und es soll 80x80 Pixel sein, dann wird es zuerst 20x80 Pixel

- im zweiten Durchgang zentrieren wählen, d.h. das obere Bild wird zentriert und bekommt oben und unten je einen 30 Pixel Rand, so dass es 80x80 ist.
  Mit Zitat antworten Zitat
100nF

Registriert seit: 7. Nov 2004
639 Beiträge
 
#8

AW: Seitenverhältnis von PNG-Grafiken ändern

  Alt 14. Mär 2012, 20:28
Ihr seid genial!!!

ImageMagick kannte ich schon von Linux her, habe schon viele Infoseiten über den Befehl "convert" bzw. "mogrify" angeschaut, konnte aber nirgens das richtige finden. NamenLozer hat jetzt aber die Zauberwörter genannt, und zwar "thumbnail" und "extent"! Darauf wäre ich echt nie gekommen. ImageMagick ist so abartig mächtig, keine Chance da den Überblick nicht zu verlieren.

Vielen vielen Dank an alle!

Ich wusste doch auf die Delphi-Praxis ist Verlass

Herzlichen Dank und viele Grüsse
Urban

Geändert von 100nF (14. Mär 2012 um 22:43 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:39 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