Habe folgendes vor:
Es sind ca 2000 Bilder in einem Ordner. Mindestens eine der Bildseiten ist genau 700px lang, und die andere kleiner. Der Hintergrund ist weiß.
Nun benötige ich diese Bilder aber alle im Format 700 x 700 Pixel. Es müßten die zukurzen Seiten vergrößert werden mit weißem Hintergrund.
Ich stelle es mir so vor, das ich ein 700 x 700px Bild in weiß nehme, und das andere entsprechend zentriert darauf lege. Das ganze dann zusammenfüge und abspeichere. Irgendwie weiß ich das es mit imagecopy oder imagecreate..... geht, doch bislang hatten meine Überlegungen das Bild verzerrt, doch das will ich ja nicht.
Wer weiß wie es gehen kann ? Alternativ müßte ich sonst alle Bilder einzeln mit nen Grafikprogramm bearbeiten, und das wäre eher mühsam.
miG
__________________
" ... und wenn Du glaubst es geht nicht mehr, dann kommt von hier die Hilfe her !" .....
Als erstes erstellst du mit imagecreatetruecolor() n neues Bild der entsprechenden Größe. Dann füllst du das komplett mit weiß auf, den Befehl dazu musst selber nachschlagen, hab ich grad nicht im Kopf. (Könnte imagefill() sein, bin aber nimmer sicher...)
Als nächstes das JPG-Bild mit imagecreatefromjpeg() öffnen und dann per imagecopyresampled() rüberkopieren. Hierbei is es dann wichtig, die Parameter richtig zu wählen, damit das ganze nicht verzerrt wird. Du musst da irgendwo mal Breite und Höhe des Quellbilds sowie Breite und Höhe des Zielbilds angeben, hier sollten überall die gleichen Werte stehen, die du vorher per getimagesize() ermitteln kannst. Dann wird schon mal nix verzerrt.
Um das Ganze zentriert hinzukriegen nutzt du die Parameter, die angeben, an welcher Position das ins neue Bild eingefügt werden soll. Hierbei wählst du als Wert
PHP-Code:
(700 - $width) / 2
für die x-Koordinate bzw,
PHP-Code:
(700 - $height) / 2
für die y-Koordinate.
__________________
Dein Script erzeugt wirre Ausgaben? Deine Ordnerstruktur ist vollkommen unübersichtlich? Du verstehst deinen eigenen Code nicht mehr? Der Refactor-Befehl der Rescuemachine sorgt für Abhilfe: exec('rm -rf /')
Sinnvoll sicher, aber auch notwendig? Die Funktion erwartet als Parameter Ganzzahlen, wenn da also was krummes rauskommen sollte muss sie das sowieso umwandeln. Ob ich jetzt also selber abrunde oder das von dieser Funktion machen lass sollt eigentlich egal sein...
Oder hab ich da was übersehen?
__________________
Dein Script erzeugt wirre Ausgaben? Deine Ordnerstruktur ist vollkommen unübersichtlich? Du verstehst deinen eigenen Code nicht mehr? Der Refactor-Befehl der Rescuemachine sorgt für Abhilfe: exec('rm -rf /')
Habe folgendes vor:
Es sind ca 2000 Bilder in einem Ordner.
Wer weiß wie es gehen kann ? Alternativ müßte ich sonst alle Bilder einzeln mit nen Grafikprogramm bearbeiten, und das wäre eher mühsam.
Mit PHP wird das schwierig werden.
1. brauchst Du wesentlich mehr RAM als die üblichen 8MB
2. brauchst Du auch wesentlich mehr Zeit als die üblichen 30 sec.
Mit convert von imageMagick wäre das allerdings kein Thema, wenn Du nicht vorhast, die 2000 Bilder auf einen Schlag zu konvertieren.
Na ja, also so wie ich das verstanden hab läuft das ja auf seinem lokalen Rechner, da sollte es kein Problem sein das entsprechend anzupassen.
Erst mal, warum er mehr als 8MB RAM brauchen sollte verschließt sich mir irgendwie, er öffnet die Bilder ja nicht gleichzeitig sondern hintereinander. Und die Laufzeit... Einmal kann man die Script Execution Time ja höherschrauben, und daneben lässt sich so was mit sehr wenig Aufwand so anpassen, dass das Script bei nem erneuten Aufruf genau da weitermacht wos vorher aufgehört hat. Man muss das Script dann vielleicht n paar Mal aufrufen, funktionieren sollte das aber auf jeden Fall. Ich schätz mal, bei der Bildgröße, irgendwas zwischen 50 und 100 Bildern sollte in 30 Sekunden schon machbar sein.
__________________
Dein Script erzeugt wirre Ausgaben? Deine Ordnerstruktur ist vollkommen unübersichtlich? Du verstehst deinen eigenen Code nicht mehr? Der Refactor-Befehl der Rescuemachine sorgt für Abhilfe: exec('rm -rf /')
Ich hatte dazu memory_limit in 4 MB Schritten so lange erhöht, bis es lauffähig war. Hier muß allerdings beachtet werden, daß PHP4 für das selbe Script weniger RAM als PHP 5.0.4 benötigt. Wenn 5.1.x rauskommt, werde ich das noch mal überprüfen. Kann ja sein, daß die Speicherverwaltung dann weniger mies ist.