[PHP] große Bilder drehen

Astrodan

Gamma Cephei
ID: 119839
L
10 Dezember 2006
1.113
209
Ich habe gerade versucht mein Script ein wenig aufzurüsten, so dass man hochgeladene Bilder drehen kann.

Das klappt bei den Thumbnails und den etwas größeren Vorschaubildern auch wunderbar, bei den eigentlichen Bildern, die leider um einiges größer sind versagt die imagerotate() Funktion aus der GDLib aber total am benötigten Speicher.

Kennt jemand einen Ausweg, der nicht die Installation weiterer Bibliotheken beinhaltet? (ImageMagick [?] kann das, ist aber vermutlich nicht auf dem Server installiert und ich komm da nunmal nicht ran)
 
Schau doch mal in die in die Notes im Manual! Und wenn du nur 90°/180°/270° brauchst könnte man es ja auch noch pixelweise probieren. :ugly:
 
Ich hab mir die notes schon mindestens 3 Mal durchgelesen, und das Pixelweise drehen wäre ja auch kein Problem (sind ja auch schon genug Funktionen vorhanden), das Problem ist halt die Größe der Bilder. Ab einer gewissen Dateigröße macht PHP das nicht mehr mit, weil die GDLib dann zu viel Speicher für sich beansprucht.
 
Ich hab mir die notes schon mindestens 3 Mal durchgelesen, und das Pixelweise drehen wäre ja auch kein Problem (sind ja auch schon genug Funktionen vorhanden), das Problem ist halt die Größe der Bilder. Ab einer gewissen Dateigröße macht PHP das nicht mehr mit, weil die GDLib dann zu viel Speicher für sich beansprucht.

hmm also mit drehen hatte ich mich noch net befasst, aber machen die User das nicht selber schon offline?

Also könnte jetzt nur nen umweg sagen (Bild teilen drehen, zusammenfügen), aber das ja auch doof.
 
Vor allem ist Drehen von JPG-Fotos mit Hilfe der GDLib ja immer mit einer Neucodierung der Daten und damit Qualitätsverlust verbunden. Es gibt aber schon lange Tools (zumindest für den Desktopeinsatz), die ohne Neucodierung und Qualitätsverlust auskommen (z.B. IrfanView mit Plugins). Wenn du keine Möglichkeit hast, ein solches Programm auf dem Server zu installieren, würde ich es lieber ganz lassen, und die User zum lokalen Drehen auffordern!
 
@Bububoomt: Ich glaube das mit dem Teilen wird auch ein Problem, denn spätestens beim Zusammensetzen musst du ja wieder ein Bild der entsprechenden Größe erstellen, was theoretisch wieder einen Fehler melden dürfte. Wobei ich mir da nicht so sicher bin.

@MrToiz: An den Server komm ich überhaupt nicht ran, ist ja nichtmal mein Webspace. Der Qualitätsverlust ist aber nebenbei glaube ich verkraftbar, so lange man das Ganze nicht ein paar dutzend mal macht.
Das IrfanView das Drehen ohne Qualitätsverlust hinkriegt ist mir ebenfalls bekannt, das nutze ich auch im Allgemeine. Aber mein Ziel war es in dem Fall halt die Bilder direkt auf dem Server zu drehen. Aber wenns nicht geht, dann gehts halt nicht.

Vllt. probier ich wenn ich mal viel Zeit hab die Methode mit dem Zerlegen aus. Wäre auf jeden Fall ne nette Übung.
 
na da wird kein weg an imagemagick oder ähnlichen tools vorbeiführen, wenn du probleme mit dem arbeitsspeicher bei laden des großen bildes bekommst, es gibt eben dinge, die sind mit nativem php nicht machbar
 
na da wird kein weg an imagemagick oder ähnlichen tools vorbeiführen, wenn du probleme mit dem arbeitsspeicher bei laden des großen bildes bekommst, es gibt eben dinge, die sind mit nativem php nicht machbar

Jut, wenn du das sagst ;-)

Ich fänd ja noch nen Puzzle lustig, das große Bild in viele kleine Aufteilen und dann bei der Anzeige im Browser wieder nebeneinander setzen (mit Hilf ner Tabelle o.ä.) 8) :ugly:
 
es gibt eben dinge, die sind mit nativem php nicht machbar

:ugly: Das ist eine reine Konfigurationssache. Wenn das Speicherlimit künstlich auf 8 MB begrenzt ist dann ists kein wunder warum man da Probleme bei eim "größeren" Bildern bekommt. Schon allein ein Bild was 1500x1000Pixel groß ist kann man nicht mehr mit 8MB drehen...(jedenfalls mit der GDLIB)