phpbar.de logo

Mailinglisten-Archive

[php] Problem mit ImageCreateJPEG

[php] Problem mit ImageCreateJPEG

Thilo Wagner st001892_(at)_hrz1.hrz.tu-darmstadt.de
Fri, 22 Dec 2000 03:06:30 +0100


On 21 Dec 2000, at 15:04, Peaveway_(at)_aol.com wrote:

> Da war ich wohl von Blindheit geschlagen... das steht auch in meinem
> Manual drinne! ;)  

Jaja.. der Wald und die Bäume und so ;-) 

> 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 ?

Mein Error Log sagt: 

PHP Warning:  imagecreatefromjpeg: Unable to open 
'http://www.meinserver.de/~foo/bar.jpg' for reading in 
/phptest/imagetest.php on line 3

Der dazugehörige Source ist: 

<?
  $imagepath = "http://www.meinserver.de/~foo/bar.jpg";
  $tn_filename = "testthumbnail.jpg";
  $src_img = imagecreatefromjpeg($imagepath);
  $img_x = imagesx($src_img);
  $img_y = imagesy($src_img);
  if ($img_x > $img_y) $fak =  $img_x / 110; 
   else $fak =  $img_y / 110;
  $new_x = $img_x/$fak;
  $new_y = $img_y/$fak;
  $dst_img = imagecreate($new_x,$new_y);
  imagecopyresized($dst_img,$src_img,
  0,0,0,0,$new_x,$new_y,$img_x,img_y); 
  imagejpeg($dst_img, $tn_filename, 50); 
?>
 
Wie gesagt, wenn ich fuer $imagepath eine lokale Datei nehme, 
funkioniert es perfekt, nur bei einer URL gibts die Fehlermeldung. 

> 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?

Die Bilder liegen auf Servern, auf die ich ausser durch http keinen 
Zugriff habe. Die Links zu den Bildern werden von den jeweiligen 
Homepagebesitzern in die Datenbank eingetragen. Die Hyperlinks 
und andere Metadaten muss ich mir also schon in der Datenbank 
merken und die Thumbnails kann ich nur lokal bei mir ablegen. Die 
Thumbnails selbst werde ich nicht in die Datenbak packen sondern 
im lokalen Filesystem speichern, aber das ist ja auch nicht das 
Problem, um das es hier eigentlich geht. Davor muss ich die Bilder 
ja erst mal irgendwie eingelesen und das Thumbnail erzeugt haben 
:'-(
 
> Meine Thumbnails werden nur nach bedarf erzeugt (wenn original Bild
> nicht ins layout passt). 

Da es sich um Fotos handelt, werde ich für jedes Bild ein 
Thumbnail erzeugen (muessen). 

> Hier auch auch beim erstmaligen Aufruf (mit
> file_exists() pruefen ob ein thumb vorhanden ist.). 

Macht mein Script natuerlich schon. Den Sourcecode den ich hier 
gepostet habe, ist nur ein Testscript um überhaupt mal die Sache 
mit dem ImageCreateJPEG zum Laufen zu kriegen. Es wäre nett, 
wenn Du den Codeschnipsel mal probieren könntest und damit 
versuchtst, von einem x-beliebigen Server ein JPEG Bild 
abzuholen. Wenns bei Dir klappt weiss ich auch nicht weiter.

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

Wie gesagt, im Endeffekt kommen nur die Metadaten aus der DB, 
die Thumbnails werden im Filesystem gelagert. Hatte es nur nicht 
für so relevant gehalten, das explizit zu erklären, da das am 
eigentlichen Problem nicht viel ändert ;-) 

Danke fuer die Hilfe! 
 
> Gruss
> Joerg Behrens

ciao.. Thilo


php::bar PHP Wiki   -   Listenarchive