Bilder Komprimieren

Jap, indem du dich ein wenig mit den GD-Lib Funktionen von PHP auseinandersetzt. Du lädst die Datei hoch, wie mit deinem Script, erstellst dann über [phpf]imagecreatefromjpeg[/phpf] aus der Datei ein Bild, welches du über den optionalen Qualitätsparameter von [phpf]imagejpeg[/phpf] wieder mit anderer JPEG Kompression speichern kannst.
 
So...

"$Bild_komprimieren !== $Thumbnail_erzeugen?!" genau so ist es...

PHP:
include ("config.php"); 
$conn_ftp = ftp_connect($HOST1); 
@ftp_login($conn_ftp,$ID1,$PW1); 
@ftp_chdir($conn_ftp,$PFAD1); 
$fotoname = "{$HTTP_POST_VARS['id']}.jpg";     


/* 
$im = imagecreatefromjpeg($fotoname); 
$fotoname = Imagejpeg($im,'',20); 

Ich hätte es so gemacht... jedoch gibt es da ein Problem...  Das Erg von Imagejpeg(x,x) kann ich irgendwie in keine Variable "schieben" -> Er will es immer ausgeben! Gibt es da eine Möglichkeit? *Zu Tim schielt*

*/ 


@ftp_delete($conn_ftp,$fotoname); 
$mode = FTP_BINARY; 
$file = fopen($HTTP_POST_FILES['neu_bild']['tmp_name'],"r"); 
@ftp_fput($conn_ftp,$fotoname,$file,$mode); 
fclose($file);

Sie möchte das Bild vor dem Upload einfach komprimieren, um Platz und Traffic zu sparen...
 
Zuletzt bearbeitet:
Original geschrieben von Claus Gronemeier
PHP:
/* 
$im = imagecreatefromjpeg($fotoname); 
$fotoname = Imagejpeg($im,'',20); 

Ich hätte es so gemacht... jedoch gibt es da ein Problem...  Das Erg von
Imagejpeg(x,x) kann ich irgendwie in keine Variable "schieben" -> Er will
es immer ausgeben! Gibt es da eine Möglichkeit? *Zu Tim schielt*

*/
Was willst du denn in der Zeile mit dem $fotoname = eigentlich anstellen? [phpf]imagejpeg[/phpf] ist nunmal dafür da, ein Bild direkt auszugeben, oder in eine Datei zu speichern. Wenn du allerdings das Attribut (das zweite ists) für den Dateinamen leer lässt, kann er schlecht in eine Datei speichern und wird deshalb wohl direkt ausgeben.
Also, was genau hast du in der Zeile vor? ;)

Sie möchte das Bild vor dem Upload einfach komprimieren, um Platz und Traffic zu sparen...
Kompression vor dem Upload macht mit PHP keinen Sinn, da nicht möglich. Denk mal drüber nach :)
 
Taa Taa...

Genau an dem Punkt war ich gestern Nacht auch schon...

Problem:

Kunde bekommt nur 40 MB für 3600 Bilder & Daten. (Frag mich nicht wer die Feinspezifikation da erstellt hat!) Deshalb ist der Ansatz:

Bilder vor dem Upload komprimieren -> komprimiert auf dem Server abspeichern -> dekomprimieren bei der Ausgabe

Wie würdest du denn vorgehen, wenn du ein solches Problem hast? (und jetzt sag bitte nicht, dass du dich jetzt ins Freibad legen würdest ;-))
 
Original geschrieben von Claus Gronemeier
Bilder vor dem Upload komprimieren -> komprimiert auf dem Server abspeichern -> dekomprimieren bei der Ausgabe
Dürfte auf Grund der Eigenschaften eines JPEGs nicht funktionieren.
Speicherst du die Bilder mit geringerer Qualität (drittes Parameter von [phpf]imagejpeg[/phpf]), so kannst du dies nicht rückängig machen. Ein Kompression über zip Verfahren bringt bei JPEG Dateien auf Grund ihrer binären Struktur auch nur minimale Vorteile. Da dürfte dann die Serverlas zum Packen und Entpacken sogar stärker ins Gewicht fallen, als der daraus resultierende Platzvorteil.
 
An die jpg-Eigenschaften und deren binäre Struktur habe ich natürlich noch gar nciht gedacht. (schon lange her *g*)

Wie könnte man denn da nun am besten vorgehen? -> Eine Erweiterung des Speicherplatzes (Server) beantragen?
 
Original geschrieben von Claus Gronemeier
Wie könnte man denn da nun am besten vorgehen? -> Eine Erweiterung des Speicherplatzes (Server) beantragen?
Ist meiner Meinung nach das sinnvollste. Bei JPEGs kannst du zur Laufzeit nur wenig machen. Es sei denn du hats eine MySQL Datenbank deren Größe nicht mit in die Webspacegröße reinzählt :rolleyes: Ich sag nur BLOB :)
 
Das per Datenbank zu realisieren war ja auch mein erster Vorschlag... Jedoch liegt sowas nicht vor.

// Eigentlich unglaublich, aber was will man machen?
 
Original geschrieben von Claus Gronemeier
// Eigentlich unglaublich, aber was will man machen?
Auf anständige Umgebungsbedingungen pochen.

"So kann ich nicht arbeiten ... " oder "Bin ich hier eigentlich nur von Amateuren umgeben?" :)
 

Neue Beiträge

Zurück