• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Grafiken mit PHP

kannst du mir mal das "dropshadow-script" zukommen lassen?

also versuch mal folgendes:

PHP:
<?php

$viewfile = get_viewfile_from_sql_db();//hier holst du dir die datei aus der datenbank - mußt du natürlich noch implementieren...

if($dir=opendir('../../pics'))
{
while($file=readdir($dir))
{
if('.'==$file || '..'==$file)
continue;
if(is_dir('../../pics/'.$file))
continue;
if($file == $viewfile){
 echo "\r\n";
 printf('<a href="../../pics/%s"><img src="thumb.php?img=%s" width="110" height="110" border="0" alt="%s"></a>', $file, $file, $file);
 }
}
closedir($dir);
}

?>
 
Hi Ginna,

das Bild ist schon aus der DB ausgelesen:

PHP:
$bild1=mysql_result($result,$i,"bild1");

Ich weiss nicht, wie man die "Schleife" bzw. folgendes umschreibt, damit nur das Foto zum Wert $bild1 angezeigt wird:

PHP:
printf('<a href="../../pics/%s"><img src="thumb.php?img=%s" width="110" height="110" border="0" alt="%s"></a>', $file, $file, $file);

Wäre super, wenn man das hinbekommt!!!:D

Das Skript an sich ist echt einfach und gut!

Ich hinterleg´s hier mal!
 
again...

Datei war zu groß!

Habe die .php-Dateien gezippt!
Den Ordner images müsstet Ihr dann selber anlegen!
Mit beliebigen Pics!
 

Anhänge

  • thumb.zip
    1,7 KB · Aufrufe: 10
Also wenn du schon den Name des Bildes hast, kannst du's doch einfach ausgeben lassen:
PHP:
$bild1 = mysql_result($result,$i,"bild1");
echo '<a href="../../pics/' . $bild1 . '"><img src="thumb.php?img=' . $bild1 . '" width="110" height="110" border="0" alt="' . $bild1 . '"></a>';

Aber sowas wurde ja schon gepostet...
 
DAAANKEEE...!

Hi, Xilef,

es klappt!!!:D
Und ich war schon am verzweifeln. Ich hatte es fast mal genau so! Aber halt nur fast:

PHP:
echo '<a href="../../pics/$bild1"><img src="thumb.php?img=$bild1" width="110" height="110" border="0" alt="$bild1"></a>';

Jetzt weiss ich, dass ich nicht ganz verblödet bin!

Kannst Du mir sagen, warum dieses
PHP:
' . $bild1 . '
so wichtig ist und was man genau damit bewirkt???:confused:

Wäre dankbar und würde wieder etwas dazu lernen!

Gruß
 
PHP:
// wenn du
$variable = "asdfed";
$string = "blabla bla $variable bla blabla";
// hast, wird der inhalt von $variable zweimal geparst (oder so ähnlich;) )
// wenn du aber
$variable = "asdfed";
$string = "blabla bla ".$variable." bla blabla";
// schreibst, wird das nur einmal gemacht. es ist vielleicht ein bisschen schneller, vor allem aber ist der programmierstil schöner;)
 
PHP:
// eine weiter optimierung wäre
$variable = 'asdfed';
$string = 'blabla bla '.$variable.' bla blabla';
// denn erstmal musst du nun nicht mehr " oder sowas mit \ 
// escapen (sondern _nur_ noch das Hochkomma und den 
// Backslash selbst) und ausserdem wird der String ein 
// klitzekleinesbischen schneller ausgegeben, da er nicht mehr auf 
// Variablen geprüft wird
mfg digleu
 
Zuletzt bearbeitet:
Einen schönen guten Morgen und danke für die Antworten!

Hat es denn nur etwas mit der Schnelligkeit zu tun?
Als ich nämlich $bild1 anstatt '.$bild1.' benutzt habe, lief das Skript nicht.

@rasputin:

Was wäre denn daran so schlimm, wenn eine Variable 2 x geparst bzw. verarbeitet wird? Wenn sie den gleichen Wert hat!

Toxic
 
"bla" ist bei mysql-queries oft praktisch, aber man sollte sie so oft wie möglich vermeiden. und lieber 'bla' nehmen, da wie schon gesagt diese nicht geparsed werden.
Und das mit der Geschwidnigkeit:
Wenn man ein Script schreibt, und es mehr Rechenleistung gebrauchen würde, als nötig, dann ist das doch nicht so toll, oder?
Stell dir vor, du schreibst ein Programm ( KA, MP3-Player oder so) und die Prozessorauslastung steht die ganze Zeit auf 100% :D

den Rest kannst du dir denken.
 
UND NOCHEINMAL

Ich habe ein Problem:
mein Thumbnail script hat super funktioniert - allerdings habe ich die berechneten Bilder nicht cachen lassen - dadruch habe ich einen enormen traffic auf dem webserver erzeugt - denn nicht nur ausgehnde daten wurde registriert, sondern auch die aktivitäten des webservers :-( und da er für jeden Thumbnail ein ca 600KB großes JPEG auslesen mußte und das 5x pro Seite hat sich das schnell summiert :-| - da war ich ganz fix bei knapp 3 GB Traffic im Dezember ...
so nun woltle ich die Thumbnails cachen lassen - habe aber jetzt ein Problem: die Thumbnails lassen sich nicht mehr löschen!
der Modus der Thumbnails ist 0777 - also rechte für jedermann - soltle kein Problem sein (die rechte werden in einem anderen Script gesetzt - also hier nicht ersichtlich). Sieht mir eher nach einem offenen File-Pointer aus :-/
Als ich die Thumbnails erstellt habe, hatte ich imagedestroy() noch nicht integriert - kann es daran liegen?

und der Thumbnail wird nicht angezeigt, erst wenn das Bild gespeichert wurde und ich es dann referenziere, wird es angezeigt...

hier ist mein Script:
PHP:
<?PHP

$nova_max_largura = 200;
$nova_max_altura = 150;

$scalefactor = 0.14;
/* CREATING THE THUMBNAIL */
$imagem = $image;          // übergebener Parameter
$img_origem = imagecreatefromjpeg($imagem);
$o_x = imagesx($img_origem);
$o_y = imagesy($img_origem);
$xfactor = $o_x/$nova_max_largura;
$yfactor = $o_y/$nova_max_altura;

if($o_y/$xfactor <= $nova_max_altura)
{
 $nova_largura = $o_x/$xfactor;
 $nova_altura = $o_y/$xfactor;
}
else
{
 $nova_largura = $o_x/$yfactor;
 $nova_altura = $o_y/$yfactor;
}

$img_destino = imagecreatetruecolor($nova_largura,$nova_altura);
imagecopyresampled($img_destino, $img_origem,0,0,0,0,$nova_largura,$nova_altura,imagesx ($img_origem),imagesy($img_origem));


/* ABSCHLUSS */
/* eventuelles Speichern des Thumbnails*/
// $strCacheDir, $intModTime und $strFileName werden von einem anderen Script übergeben...
$strThumbName = $strCacheDir."/".$intModTime."_".$strFileName;


/* VORHER (DA GING ALLES) */
// imageJPEG($img_destino);

/*JETZT*/
imageJPEG($img_destino,$strThumbName);
imagedestroy($img_destino);
?>
 
Zuletzt bearbeitet:
hm ich habe es jetzt nocheinmal probier - neue grafiken mit imagedestroy - und die kann ich trotzdem nicht löschen :-/

woran liegt das?
 
Hat sich erledigt - ich habe es hinbekommen - das Löschen lag an den Rechten des Verzeichnisses *d'oh*

und dass die thumbnails nicht angezeigt wurden lag daran, dass imageJPEG mit 2 Paratemetern nicht an den Browser sondern nur ans Filesystem übergibt - also musste ich das dann so lösen
PHP:
imageJPEG($img_destino,$strThumbName);
imagedestroy($img_destino);
$fp = fopen($strThumbName,rb);
fpassthru($fp);
 
so, da wil lich doch mal einen alten Thread neu aufleben lassen :D

also - die sache mit dem Thumbnail-erzeugen hat sich ja nun seit knapp 8 monaten erledigt - und funzt

aber jetzt mal noch eine andere frage - wie einige sich sicher erinnern, hat .colin mal eine Geburtstagskarte mit PHP gebastelt - und die "Quelldaten" waren einzelne, winzige grafiken für die buchstaben und ein großes hintergrundbild...

wie kann ich das mit PHP realisieren, 2 bilder "zusammenzufügen" - also an meinem konkreten beispiel:

ich habe ein JPEG-Bild - erzeuge davon ein Thumbnail (mit oder ohne schatten - das sei jetzt mal dahingestellt) - und ich habe noch ein teilweise transparentes GIF - ein Lupen-Symbol - dieses will ich in die linke untere Ecke des Thumbnails basteln - wie geht das am besten?

so soll dann endergebnis aussehen:
http://www.juern.de/hosting/internet/images/album/thumbs/kirchuhr2.jpg
 
Zuletzt bearbeitet:
Klar:
[color=2c2c8c]
  $subLIME_image = new Watermark("banner.png");
  $subLIME_image->createWatermark("images/fat_cat.jpg", "bottom left", 90, 0);
  $subLIME_image->save("images/wm_fat_cat.jpg", 90);
  $subLIME_image->destroyImages();
[/color]
 
danke danke :)
naja im moment hab ich es ein bissl anders gelöst, da ich nur ein kleines Symbol aufbringen wollte - aber ich werde das mal im auge behalten :D
 
so, falls nochmal fragen wegen eines Thumbnailers aufkommen sollten - hier ist einer -incl beispiel
 

Anhänge

  • thumb.zip
    1,4 KB · Aufrufe: 16
Zurück
Oben