Frage thumbnail qualli verbessern+ Pfad angabe ändern

SOCKEN

Enthusiast
Thread Starter
Mitglied seit
31.01.2005
Beiträge
4.715
Ort
Ostercappeln
hi

ich hab mir ein Bild upload service eingerichtet
und jetzt zur ersten frage
ich habe eine thumb.php die mir die thumbnails erstellt nur ist die qualli von diesen sehr miess meine frage ist also wie kann ich die qualli hochschreuben das man 1. mehr erkennt und das die T.n. ein bisschen größer sind halt so wie bei imageshack
hier der code
PHP:
<?php
     error_reporting(0);
 
     $types = array (1 => "gif", "jpeg", "png", "swf", "psd", "wbmp");

     define ('cache', 'cache/');

     $cachedir = substr($HTTP_GET_VARS['image'],0,strrpos($HTTP_GET_VARS['image'],'/') + 1).cache;
     !is_dir ($cachedir)
          ? mkdir ($cachedir, 0777)
          : system ("chmod 0777 ".$cachedir);

     (!isset ($x) || ereg ('^[0-9]{1,}$', $x, $regs)) &&
     (!isset ($y) || ereg ('^[0-9]{1,}$', $y, $regs)) &&
     (isset ($x) || isset ($y))
          ? true
          : DIE ('Fehlende(r) oder ungültige(r) Größenparameter!');

     !isset ($resize) || !ereg ('^[0|1]$', $resize, $regs)
          ? $resize = 0
          : $resize;

     !isset ($aspectratio) || !ereg ('^[0|1]$', $aspectratio, $regs)
          ? isset ($x) && isset ($y)
                 ? $aspectratio = 1
                 : $aspectratio = 0
          : $aspectratio;

     !isset ($image)
          ? DIE ('Es wurde kein Bild angegeben!')
          : !file_exists($image)
               ? DIE ('Die angegebene Datei konnte nicht auf dem Server gefunden werden!')
               : false;

     $imagedata = getimagesize($image);

     !$imagedata[2] || $imagedata[2] == 4 || $imagedata[2] == 5
          ? DIE ('Bei der angegebenen Datei handelt es sich nicht um ein Bild!')
          : false;
 
     eval ('
     if (!(imagetypes() & IMG_'.strtoupper($types[$imagedata[2]]).')) {
          DIE ("Das ".strtoupper($types[$imagedata[2]])."-Format wird nicht unterstützt!");
     }
     ');

     !isset ($x)
          ? $x = floor ($y * $imagedata[0] / $imagedata[1])
          : $x;
 
     !isset ($y)
          ? $y = floor ($x * $imagedata[1] / $imagedata[0])
          : $y;
 
     if ($aspectratio && isset ($HTTP_GET_VARS['x']) && isset ($HTTP_GET_VARS['y'])) {
          if ($imagedata[0] > $imagedata[1]) {
               $y = floor ($x * $imagedata[1] / $imagedata[0]);
          } else if ($imagedata[1] > $imagedata[0]) {
               $x = floor ($y * $imagedata[0] / $imagedata[1]);
          }
     }

     $thumbfile = substr ($HTTP_GET_VARS['image'], strrpos ($HTTP_GET_VARS['image'], '/') + 1);
     if (file_exists ($cachedir.$thumbfile)) {
          $thumbdata = getimagesize ($cachedir.$thumbfile);
          $thumbdata[0] == $x && $thumbdata[1] == $y
               ? $iscached = true
               : $iscached = false;
     } else {
          $iscached = false;
     }

     if (!$iscached) {
          ($imagedata[0] > $x || $imagedata[1] > $y) ||
          (($imagedata[0] < $x || $imagedata[1] < $y) && $resize)
               ? $makethumb = true
               : $makethumb = false;
     } else {
          $makethumb = false;
     }

     Header ("Content-Type: image/".$types[$imagedata[2]]);
 
     if ($makethumb) {
          $image = call_user_func("imagecreatefrom".$types[$imagedata[2]], $image);
          $thumb = imagecreate ($x, $y);
          imagecopyresized ($thumb, $image, 0, 0, 0, 0, $x, $y, $imagedata[0], $imagedata[1]);
          call_user_func("image".$types[$imagedata[2]], $thumb, $cachedir.$thumbfile);
          imagedestroy ($image);
          imagedestroy ($thumb);
          $image = $cachedir.$thumbfile;
     } else {
          $iscached
               ? $image = $cachedir.$thumbfile
               : $image = $HTTP_GET_VARS['image'];
     }
     $image = fopen ($image, "rb");
     fpassthru ($image);
     fclose ($image);
 
?>

und meine 2. Frage
ich hab dann noch die upload.php die mir die 3 verschidene links macht und das thumbn. anzeigt meine Frage ist wie muss ich den code verändern damit nicht sofort das komplette bild angezeigt wird sondern nur das Thumb halt so wie bei imageshack
hier der code
PHP:
<?php
// ####################################################################################################
// ####################################################################################################
// ####################################################################################################

// Hier bitte die Dateiendungen eintragen
$allowed_types = "(jpg|jpeg|gif|bmp|png|txt)";

//Hier bitte die Dateigröße eintragen (max; in Byte)
$max_byte_size = 1500000;

//Pfad zum Ordner "uploader"
$pfad = "http://socken4.so.funpic.de/";
// ####################################################################################################
// ####################################################################################################
// ####################################################################################################
?>







<html>
<head>
	<title>Uploader</title>

	<style type="text/css">
	input {
   	border:1px solid #000;
   	BACKGROUND: #006600;
	   }
   	</style>
</head>
<body bgcolor="#006600">
<center>


<?
if($_POST["submit"] == "Upload") {
if(is_uploaded_file($_FILES["file"]["tmp_name"])) {
if(preg_match("/\." . $allowed_types . "$/i", $_FILES["file"]["name"])) {
if($_FILES["file"]["size"] <= $max_byte_size) {
$ums = "./Dateien/".$_FILES["file"]["name"];
if(copy($_FILES["file"]["tmp_name"], $ums)) {
echo "Datei erfolgreich hochgeladen!<br>";
echo "Name: " . $_FILES["file"]["name"] . "<br>";
echo "Größe: " . $_FILES["file"]["size"] . " Byte<br>";
echo "MIME-Type: " . $_FILES["file"]["type"] . "<br>";
echo "<table width='50%'>";
echo "<tr><td>DirektLink:</td><td><input type='text' size='100' value='" . $pfad . "Dateien/" . $_FILES["file"]["name"] ."'></td></tr>";
echo "<tr><td>Html:</td><td><input type='text' size='100' value=\"<img src='" . $pfad . "Dateien/" . $_FILES["file"]["name"] . "'>\"></td></tr>";
echo "<tr><td>Für Foren:</td><td><input type='text' size='100' value='[img]" . $pfad . "Dateien/" . $_FILES["file"]["name"] . "[/img]'></td></tr>";
echo "<tr><td colspan='2'><center><img src=\"thumb.php?image=./Dateien/" . $_FILES["file"]["name"] . "&x=150\"></center></td></tr>";
echo "</table>";
echo "<a href='http://socken4.so.funpic.de/index.html'>Zurück</a>";
}
else {
echo "Datei konnte nicht hochgeladen werden.";
}
}
else {
echo "Die Datei darf nur eine Größe von " . $max_byte_size . " Byte besitzen.";
}
}
else {
echo "Die Datei besitzt keine ungültige Endung.";
}
}
else {
echo "Keine Datei zum Hochladen angegeben.";
}
}
else {
echo "Bitte benutzen Sie das Upload Formular.";
}
?> 
</center>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<body>


<center>


..::Ein weiteres Bild hochladen::..
<form action="upload.php" method="post" enctype="multipart/form-data" name="upload">
  <p>
    <input type="file" name="file">
    <input type="submit" name="submit" value="Upload">
      <br />
      <br />
    Erlaubte Dateiendungen: jpg, jpeg, gif, bmp, png, txt<br />
    Die maximale Dateigröße beträgt 1,5 MB  <br />
    <span class="style1">Bitte nur Legale sachen hochladen    </span>
  </form>
<p>*</p>
</body>
</html>

hoffe Ihr könnt mir helfen:drool:

gruß
SOCKEN
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
für eine höhere qualität der thumbs versuch mal imagecopyresampled statt imagecopyresized

zum 2. wo zeigt er denn das komplette bild an? ich denk mal auf deiner seite da unten ist das selbe script verwendet und im FF zeigt er mir das thumb an
 
hi habs grad ausprobiert mit imagecopyresampled
aber ich seh leider keine verbesserung:(
ich denk mal ich habs richtig eingesetzt oder??
PHP:
<?php
     error_reporting(0);
 
     $types = array (1 => "gif", "jpeg", "png", "swf", "psd", "wbmp");

     define ('cache', 'cache/');

     $cachedir = substr($HTTP_GET_VARS['image'],0,strrpos($HTTP_GET_VARS['image'],'/') + 1).cache;
     !is_dir ($cachedir)
          ? mkdir ($cachedir, 0777)
          : system ("chmod 0777 ".$cachedir);

     (!isset ($x) || ereg ('^[0-9]{1,}$', $x, $regs)) &&
     (!isset ($y) || ereg ('^[0-9]{1,}$', $y, $regs)) &&
     (isset ($x) || isset ($y))
          ? true
          : DIE ('Fehlende(r) oder ungültige(r) Größenparameter!');

     !isset ($resize) || !ereg ('^[0|1]$', $resize, $regs)
          ? $resize = 0
          : $resize;

     !isset ($aspectratio) || !ereg ('^[0|1]$', $aspectratio, $regs)
          ? isset ($x) && isset ($y)
                 ? $aspectratio = 1
                 : $aspectratio = 0
          : $aspectratio;

     !isset ($image)
          ? DIE ('Es wurde kein Bild angegeben!')
          : !file_exists($image)
               ? DIE ('Die angegebene Datei konnte nicht auf dem Server gefunden werden!')
               : false;

     $imagedata = getimagesize($image);

     !$imagedata[2] || $imagedata[2] == 4 || $imagedata[2] == 5
          ? DIE ('Bei der angegebenen Datei handelt es sich nicht um ein Bild!')
          : false;
 
     eval ('
     if (!(imagetypes() & IMG_'.strtoupper($types[$imagedata[2]]).')) {
          DIE ("Das ".strtoupper($types[$imagedata[2]])."-Format wird nicht unterstützt!");
     }
     ');

     !isset ($x)
          ? $x = floor ($y * $imagedata[0] / $imagedata[1])
          : $x;
 
     !isset ($y)
          ? $y = floor ($x * $imagedata[1] / $imagedata[0])
          : $y;
 
     if ($aspectratio && isset ($HTTP_GET_VARS['x']) && isset ($HTTP_GET_VARS['y'])) {
          if ($imagedata[0] > $imagedata[1]) {
               $y = floor ($x * $imagedata[1] / $imagedata[0]);
          } else if ($imagedata[1] > $imagedata[0]) {
               $x = floor ($y * $imagedata[0] / $imagedata[1]);
          }
     }

     $thumbfile = substr ($HTTP_GET_VARS['image'], strrpos ($HTTP_GET_VARS['image'], '/') + 1);
     if (file_exists ($cachedir.$thumbfile)) {
          $thumbdata = getimagesize ($cachedir.$thumbfile);
          $thumbdata[0] == $x && $thumbdata[1] == $y
               ? $iscached = true
               : $iscached = false;
     } else {
          $iscached = false;
     }

     if (!$iscached) {
          ($imagedata[0] > $x || $imagedata[1] > $y) ||
          (($imagedata[0] < $x || $imagedata[1] < $y) && $resize)
               ? $makethumb = true
               : $makethumb = false;
     } else {
          $makethumb = false;
     }

     Header ("Content-Type: image/".$types[$imagedata[2]]);
 
     if ($makethumb) {
          $image = call_user_func("imagecreatefrom".$types[$imagedata[2]], $image);
          $thumb = imagecreate ($x, $y);
          imagecopyresampled ($thumb, $image, 0, 0, 0, 0, $x, $y, $imagedata[0], $imagedata[1]);
          call_user_func("image".$types[$imagedata[2]], $thumb, $cachedir.$thumbfile);
          imagedestroy ($image);
          imagedestroy ($thumb);
          $image = $cachedir.$thumbfile;
     } else {
          $iscached
               ? $image = $cachedir.$thumbfile
               : $image = $HTTP_GET_VARS['image'];
     }
     $image = fopen ($image, "rb");
     fpassthru ($image);
     fclose ($image);
 
?>

wegen dem 2.
wenn das bild hochgeladen wird bekomm ich ja einen link.
wenn ich dann z.B den forum link nehme und den in einem forum einfüge zeigt der mir sofort das ganze bild an in voller größe an

ich möchte aber das der code so ist das das thumb verlinkt ist zu den großen bild.

gruß
SOCKEN
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh