phpbar.de logo

Mailinglisten-Archive

[php] Problem mit ImageCreateJPEG

[php] Problem mit ImageCreateJPEG

Peaveway_(at)_aol.com Peaveway_(at)_aol.com
Thu, 21 Dec 2000 15:04:22 EST


In einer eMail vom 21.12.00 19:12:07 (MEZ) Mitteleuropäische Zeit schreibt 
st001892_(at)_hrz1.hrz.tu-darmstadt.de:

> [Problem: ImageCreateJPEG liest nicht von URL]
>  
>  > >  obwohl laut php Doku auch von einer URL gelesen werden kann. 
>  
>  > Kannst du mir sagen in welchem Teil des Manuals das stehen soll ?
>  > Bislang funktionierte das nur mit Bildern die lokal verfuegbar waren. 
>  
>  http://www.php.net/manual/de/function.imagecreatefromjpeg.php
>  
<snip>

</snip>
>  
>  Prinzipiell geht es um folgendes Szenario: 
>  Auf Server A laeuft eine Bilderdatenbank, die Links zu Bildern auf einem 
> Server B 
>  enthaelt. Außerdem soll die Datenbank noch Thumbnails der Bilder 
enthalten. 
>  Zu Beginn enthaelt die Datenbank nur die Links zu den Bildern, aber noch 
> keine 
>  Thumbnails.
>  Wenn ein bestimmtes Thumbnail benoetigt, und es noch nicht in der 
Datenbank 
>  gefunden wird, wird das entsprechende Originalbild auf dem anderen Server 
>  geoeffnet, ein Thumbnail generiert und für Zukuenftige Verwendungen lokal 
in 
> der 
>  Datenbank gespeichert. 
>   
>  Optimal waere es da natuerlich, wenn ich (was laut Doku angeblich ja 
> moeglich 
>  ist) mit ImageCreateJPEG das Bild direkt auf dem anderen Server oeffnen 
kann.
>  
>  Die Alternative waere, wie Du schon gesagt hast, das Bild mit fopen() zu 
> holen, 
>  lokal zu speichern, dann das Thumbnail zu erzeugen und danach das Bild 
lokal 
> 
>  wieder zu loeschen. Wozu einfach wenn's auch kompliziert geht ;-) 
>  
>  Danke fuer Deine Hilfe.. jeder weitere Tipp ist willkommen.

Da war ich wohl von Blindheit geschlagen... das steht auch in meinem Manual 
drinne! ;)  Und Gott zum Grusse es funktioniert auch wir beschrieben. Gerade 
ebend mit dem PHP4.0.4. Du scheinst also etwas falsch zumachen. Was sagt den 
dein php_error.log dazu ?

Es macht keinen Sinn die Thumbnails ( = Bilder/Binaer Daten)  in die DB 
zupumpen. Wenn die originale der Bilder eh auf dem Webserver liegen, was 
spricht den dagegen die Thumbnails da auch abzulegen? Theoretisch musst du 
dir nicht einmal die Hyperlinks merken.  Deine Tabelle wird wahrscheinlich 
einen autoincrement haben um den Datensatz als eindeutig zudefinieren. Aus 
dieser Datensatzid bastelst du dir einen eindeutigen Dateinamen fuer deine 
Bilder zusammen. Beispiel:
1_image_gr_a.jpeg
1_image_gr_b.gif
1_image_gr_c.png

Du siehst du kannst dem Datensatz Nr 1 auch x beliebig viele Bilder zuordnen 
ohne dir in der DB nun zig Metadaten merken zumuessen. Die Bildgroesse 
ermittelst du mit getimagesize().

Deine Thumbnails koennten dann heissen:
1_image_kl_a.jpeg

Die Bilder werden in alle vorher in festdefinierten Verzeichnissen abgelegt. 
/images und /img_cache. Da die Bilder ja meistens ueber ein Formular 
hochgeladen werden kannst du dort auch gleich die Infos/Metadaten mit 
uebermitteln so bekommst du ja die Datensatzid heraus und weisst wie du dein 
Bild benennen musst.

Meine Thumbnails werden nur nach bedarf erzeugt (wenn original Bild nicht ins 
layout passt).Hier auch auch beim erstmaligen Aufruf (mit file_exists() 
pruefen ob ein thumb vorhanden ist.). Mit der gepatchtes gdlib ist es auch 
weiterhin moeglich GIF zubearbeiten plus zusaetzlich PNG+Jpeg ;)

Einen Haken hat die Sache aber wenn du so mehr als ein Bild dem Datensatz 
zuordnen willst. Ohne die die Extension gemerkt zuhaben hast du keine 
Moeglichkeit den img tag richtig zusetzten.
a.) man einigt sich auf ein Bildtyp (png ?)
b.) man ping ins blaue in dem man mit file_exist immer prueft.

Fuer ein Mini-CMS (eigentlich eher ein DMS) wird nur ein Bildtypzugelassen 
und diesen Merke ich mir in der DB zusammen mit dem Content.

Die Verwendung der IPTC Daten aus JPEG Bildern kannst du vergessen weil sie 
die Bildgroesse um 100% erhoehen. Diese Infos gehen beim bearbeiten/speichern 
mit Photoshop Datei | speichern fuer web bzw. JpegOptimizer eh verloren.

Also schone deinen DB Server. Die Bilder gehoeren ins Filesystem nur hier hat 
der Webserver bzw. das OS auch mal die Chance etwas zucachen.

Du hast keinen Grundgenannt warum die Dinger nun so hoch dynamisch bzw. aus 
der DB kommen muessen.

Gruss
Joerg Behrens

--
TakeNet GmbH                        Mobil: 0171/60 57 963       
D-97080 Wuerzburg                   Tel: +49 931 903-2243       
Alfred-Nobel-Straße 20              Fax:+49 931 903-3025


php::bar PHP Wiki   -   Listenarchive