Mailinglisten-Archive |
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