Wie groß kann ich mit imagecreate() kommen?

gamerfunkie

Erfahrenes Mitglied
Hallo,
ich habe ein PHP Skript in dem ich eine sehr große Grafik mit GD erstellen will. Konkret heisst das:
Code:
imagecreatetruecolor(65536,65536);
Ich habe mal grob die Größe des reservierten Speichers überschlagen:
65536*65536*4B /1.000.000 ~= 17GB
Ich habe mich mal von der Zahl nicht abschrecken lassen und das Skript einfach laufen lassen, aber wie ich vermutet hatte dauert es ewig und ich bezweifle das vernünfitges weiterarbeiten unmöglich sein wird, oder?

Letztendlich splitte ich die Grafik zwar sowieso in 256px * 256px große Stücke, das heisst ein Workaround für mich wäre die Riesengrafik in 4 Teile zu zerlegen und jede einzeln zu berechnen. (... und dann jedes der Viertel in meine 256px * 256px Stücke zu zerlegen)

Ich bin aber trotzdem interessiert ob ihr noch bessere Lösungen wisst, wie mit einer so großen Grafik arbeiten kann.

Danke!

gamerfunkie
 
Eine solche Berechnung würde ich grundsätzlich nicht über PHP laufen lassen, sondern weitergeben an Tools wie imagick, allerdings auf der Konsole.

PHP ist für solche Vorhaben nicht gemacht worden und kann sie aufgrund dessen auch nur mäßig ausführen.

Lösungen wären den Ram extrem hochzudrehen, PHP kann eben nur mit unkomprimierten Bildern und alles auf einmal. Danach die Laufzeit auf unendlich, usw.
Das ganze würde für den Server längere Zeit eine 100% Auslastung bedeuten und auf Shared Hosting Systemen gar nicht erst anspringen.
 
Ja das stimmt schon, PHP ist dann doch die langsamere Alternative :P

Ich habe gestern mal Imagemagick auf der Konsole ausprobiert. Der soll laut Dokumentation auch mit Terabyte-großen Bildern arbeiten können. Außerdem kann man Imagemagick nur eine bestimmte RAM Größe zuweisen und der Rest bleibt beim System, sodass mit nicht auch noch gleich Apache abschmiert und garnix mehr geht.

Was ich jetzt also mal versuchen werde ich ist mir ein BASH Skript zu schreiben. Eine andere Möglichkeit ist natürlich gleich ein C Programm selbst zu schreiben aber ich bezweifle das mir das Vorteile bringt.
 
Zurück