SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Websites optimieren für Google & Co.

Websites optimieren für Google & Co. zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > PHP Grundlagen
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 25.03.2007, 00:36:46
V.M.J V.M.J ist offline
Anfänger
 
Registriert seit: Mar 2007
Beiträge: 2
GD Lib: vorraussichtliche Dateigröße von ImageCreateFromJPEG

Etwas zum Hintergrund:
Ich bastle grade an einer Bildergalerie in Flash. Paar Gründe haben mich dazu bewegt die Bilder nicht von dateien sondern von php-script auszugeben, zentrale funktion hier ist ImageCreateFromJPEG(). Es muss nicht unbedingt JPG sein, wenn das weiterhilft, kanns genauso z.B. PNG sein, habe mich noch nicht damit beschäftigt was besser wäre.

Jetzt brauche ich die größe(kB)des zu ladenden bildes. und darum dreht sich auch meine Frage. Bei dateien erkennt flash sofort die gesamtgröße(kB), hier aber nicht. Aus diesem Grund schätze ich dass die bilder aus php-script als stream ausgegeben werden. Im PHP-Manual steht aber das gegenteil davon.
Zitat:
imagecreatefromjpeg -- Erzeugt ein neues Bild im JPEG-Format, welches aus einer Datei oder von einer URL gelesen wird
"ein neues Bild" versteh ich hier mal nicht als stream.

Prinzipiell könnte ich mit sehr geringem Aufwand die kB-Werte in einer Datenbank ablegen. Diese daten würde ich dann im voraus laden. So könnte man das Problem umgehen. Da ist nur noch ein Wunsch offen:
da diese Gallerie sehr unterschiedliche Menschen mit unterschiedliher Internet-Verbindungen benutzen werden (zum Teil unter 56kb) dachte ich an ein regler der es zulässt dass man selber die gewünschte Qualität einstellen kann.
Hat man langsamere verbindung -> stelle doch bitte die qualy bissel runter, so bis auf 70-80% und habe dadurch weniger zum laden. Haste DSL - kannst gerne alles in 100% sehen.
Alles kein problem, nur: soviel daten in der datenbank zu speichern ist wahnsinn, einfach nicht effizient, zuviel. Bilder werden in (mindestens 3) verschiedenen auflösungen ausgegeben, das kann man noch in der DB speichern. Aber werte für x-viele qualätwerte und dazu auch noch für verschiedene Auflösungen wird diese datenmenge so schätzungsweise um da 50-fache vergrössern.

Deshalb frage ich nach einem algorithmus, mit dem man die endgültige größe berechnen (oder gut abschätzen) kann.

Beispiel1: bild1.jpg ist 200kB groß, 2000x1000Pixel. Algorithmus berechnet mir wie groß es wäre in 200x100Pixel bei 80% Qualität.
Beispiel2: bild2.jpg ist 200kB groß, 2000x1000Pixel. Algorithmus berechnet mir wie groß es wäre in 200x100Pixel bei 80% Qualität. Zusätzlich weis ich dass es bei 100% 20kB groß wäre.

Ich hoffe das ich mein Anliegen verständlich vormuliert habe. Hoffe auf die schnelle Hilfe.
Alternativ würd ich mir freuen, wenn einer weis wo ich GD-Lib-Profis finde um sie direkt zu fragen.
Grüße
Mit Zitat antworten
  #2  
Alt 25.03.2007, 03:32:42
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: GD Lib: vorraussichtliche Dateigröße von ImageCreateFromJPEG

GD und jpeg:
Zitat:
Zitat von V.M.J Beitrag anzeigen
Jetzt brauche ich die größe(kB)des zu ladenden bildes. und darum dreht sich auch meine Frage.
Genau das ist ein Problem, weil jpg Bilder sozusagen komprimiert vorliegen.

Zitat:
Bei dateien erkennt flash sofort die gesamtgröße(kB), hier aber nicht.
Die physikalische Größe eines Files ermittels Du damit:
http://de2.php.net/filesize

Wenn Du aber ein JPG Bild mit der GD Bibliothek öffnest, dann "wickelt" PHP das Bild erst mal aus und legt es im RAM in einem internen Format ab.

Zitat:
Aus diesem Grund schätze ich dass die bilder aus php-script als stream ausgegeben werden. Im PHP-Manual steht aber das gegenteil davon.
[Handbuchzitat]
"ein neues Bild" versteh ich hier mal nicht als stream.
Kommt darauf an, was Du unter Stream verstehst. imagecreatefromjpeg() liefert eine Resource auf einen Speicherbereich im Variablenspeicher von PHP zurück, in dem das ausgepackte Bild auf weiteres wartet.
imagejpeg() speichert entweder das Bild im Dateisystem oder es schickt den Kram zum Client. Letzterer zeigt den Kram aber nur dann als Bild an, wenn Du vorher die entsprechenden Content-type Header geschickt hast.

Das ist die Theorie. Wenn ich Deine weiteren Ausführungen richtig verstehe, willst Du die Bilder dann etwas "eindampfen", wenn der Client nicht mit 16MB sondern mit 33K saugt.

Das ist löblich, aber man sollte deshalb keine Bocksprünge veranstalten.
Man zeigt ein kleines Vorschaubild an und man bietet die etwas dickeren Versionen, die natürlich real existieren müssen, mit der Angabe von filesize() an. Dann kann sich der User ja überlegen, welchen "Ladelink" er auswählt.

Geändert von meikel (†) (25.03.2007 um 03:33:42 Uhr)
Mit Zitat antworten
  #3  
Alt 25.03.2007, 15:48:08
V.M.J V.M.J ist offline
Anfänger
 
Registriert seit: Mar 2007
Beiträge: 2
AW: GD Lib: vorraussichtliche Dateigröße von ImageCreateFromJPEG

Zitat:
Zitat von meikel Beitrag anzeigen
Kommt darauf an, was Du unter Stream verstehst. imagecreatefromjpeg() liefert eine Resource auf einen Speicherbereich im Variablenspeicher von PHP zurück, in dem das ausgepackte Bild auf weiteres wartet.
imagejpeg() speichert entweder das Bild im Dateisystem oder es schickt den Kram zum Client. Letzterer zeigt den Kram aber nur dann als Bild an, wenn Du vorher die entsprechenden Content-type Header geschickt hast
gut, das ImageCreateFromJPEG nur eine resurce liefert erklärt so einiges. Allerdings müsste das schon kompriemiert sein ( du schreibst : ausgepackte Bild, was vermutlich nicht stimmt).
Wenn dann fertiges komprimiertes jpeg im speicher liegt, dann kann man vermutlich davon auch die belegte größe bestimmen. Falls es geht, wäre es eine alternative zu meinem Vorschlag mit dem voraussichtliche-Dateigröße-Algorithmus.
falls fileSize() nicht nur mit dateinamen arbeitet (wie es im Handbuch steht) sonder auch mit resourcen, könnte ich mir das so vorstellen:
PHP-Code:
...
...
...
$res=ImageCreateFromJPEG($im,'',$quality);
$size=FileSize($res);
//jetzt wird $size irgendwie benutzt
... 
edit: wenn sich schon so ergibt, frage ich nach dem unterschied zw. ImageCreateFromJPEG und ImageJPEG, macht den anschein dass es irgendwie so dasselbe ist.

Geändert von V.M.J (25.03.2007 um 15:51:20 Uhr)
Mit Zitat antworten
  #4  
Alt 25.03.2007, 20:31:55
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: GD Lib: vorraussichtliche Dateigröße von ImageCreateFromJPEG

Zitat:
Zitat von V.M.J Beitrag anzeigen
Allerdings müsste das schon kompriemiert sein ( du schreibst : ausgepackte Bild, was vermutlich nicht stimmt).
Alle Bilder werden beim imagecreatefrom* in ein "GD internes" Format konvertiert.
Netterweise verwaltet PHP 5.2.1 den Speicher wesentlich besser. Bei den vorhergehenden Versionen war zB. für das Offnen eines 800KB dünnen JPEG satte 24MB Scriptspeicher erforderlich.

Zitat:
meinem Vorschlag mit dem voraussichtliche-Dateigröße-Algorithmus.
falls fileSize() nicht nur mit dateinamen arbeitet (wie es im Handbuch steht)
filesize() fragt das Betriebssystem. Deshalb heißt es ja auch filesize und nicht ramsize. <g>

Zitat:
edit: wenn sich schon so ergibt, frage ich nach dem unterschied zw. ImageCreateFromJPEG und ImageJPEG, macht den anschein dass es irgendwie so dasselbe ist.
Falsch. ImageCreateFromJPEG() erstellt vom Original eine Kopie im RAM und ImageJPEG() schickt das Bild entweder zum Client oder speichert es im Filesystem ab.
Mit Zitat antworten
  #5  
Alt 25.03.2007, 20:52:12
CIX88 CIX88 ist offline
Anfänger
 
Registriert seit: Jan 2007
Alter: 58
Beiträge: 131
AW: GD Lib: vorraussichtliche Dateigröße von ImageCreateFromJPEG

Zitat:
ImageCreateFromJPEG und ImageJPEG, macht den anschein dass es irgendwie so dasselbe ist.
Ein Blick im Handbuch hätte diesen anschein nicht aufkommen lassen :-)
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
imagecreatefromjpeg -> vorraussichtliche Dateigröße morsche PHP für Fortgeschrittene und Experten 5 27.05.2006 14:31:19
imagecreatefromjpeg probleme bavaglino PHP Grundlagen 35 23.03.2005 01:04:18
Zeichensalat bei imagecreatefromjpeg K_Seib PHP Grundlagen 4 12.11.2004 17:06:30
imagecreatefromjpeg - Beschränkung auf 256 Farben? septicus PHP für Fortgeschrittene und Experten 1 17.04.2002 10:42:44
kein PHP-dateiUpload ab einer bestimmten Dateigröße Rico PHP für Fortgeschrittene und Experten 2 08.04.2002 13:24:31


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:28:43 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt