Autor Zpráva
zdenek
Profil
ahoj, prosímvás, dělám fotogalerii a potřebuju udělat thumbnails (miniatury) ale vůbec nevím, jak začít. prosím o poskytnutí pomoci. stačí materiály. (ale něco srozumitelného prosím :-) ) předem díky.
ShiraNai7
Profil
Hledej :)

http://www.google.com/search?btnG=1&pws=0&q=php+miniatury
...
http://www.mrkev.net/read.php?what=php_miniatury
http://www.costasovo.cz/miniatury-obrazku-v-php
http://www.maxifick.com/log/post-18/tvorba-miniatur-v-php-s-knihovnou-gd
zdenek
Profil
ShiraNai7:

díky, a šlo by to prosím podrobněji??
breeta
Profil
nejlepší když použiješ nějakou hotovou třídu

Pokud cheš zjistit jak to jede pomocí GD

Případně Imagemagick který je psaný už OOP, ale musíš ho nainstalovat a ne každy hosting ho má.
Ben
Profil *
Anebo u Vrány S menšími úpravami a funguje mi to skvěle.
zdenek
Profil
Ben:

a jak by vypadaly ty drobné úpravy?
Ben
Profil *
Pokud se tit o bude chtit lustit, tak tady to mas cely script na ukladani fotek + zapisovani hodnot do MYSQL, a ty nahledy si v tom najdes, je to popsane.
Pokud neco nechapes, napis.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Language" content="cs">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../default.css">
<title>
Vložit fotku do galerie
</title>
</head>
<body>

<?php

//pripojeni k mysql
require_once("../config.php");

//odstraneni diakritiky(upravena funkce od php.vrana.cz)
function odstran_diakritiku($in){
$in = preg_replace('~[^\\pL0-9_]+~u', '-', $in);
$in = trim($in, "-");
$in = iconv("utf-8", "us-ascii//TRANSLIT", $in);
$in = strtolower($in);
$out = preg_replace('~[^-a-z0-9_]+~', '', $in);
return $out;
}

//nastaveni promenych
$popis = odstran_diakritiku($_POST["popis"]);
//$popis = trim($_POST["popis"]);
//$popis = preg_replace('~\s~','',$popis);
$popis = mysql_real_escape_string($popis);
$popis_s_mezerami = trim($_POST["popis"]);
$popis_s_mezerami = mysql_real_escape_string($popis_s_mezerami);
$rok = mysql_real_escape_string($_POST["rok"]);
$fotka = trim($_FILES["image"]["name"]);
$fotka = preg_replace('~\s~','',$fotka);
$soubor = $rok."-".$popis."-".date("Y-m-d_H-i-s")."-".$fotka;
$sql = 'INSERT INTO foto (
`id`, `soubor`, `rok`, `popis`)
VALUES (
NULL, \''.$soubor.'\', \''.$rok.'\', \''.$popis_s_mezerami.'\');
';

/** Vrácení rozměrů obrázku po zmenšení
* @param string název zmenšovaného souboru
* @param int maximální šířka výsledného obrázku, 0 pokud na ní nezáleží
* @param int maximální výška výsledného obrázku, 0 pokud na ní nezáleží
* @return array ($width, $height) výsledná šířka a výška
* @copyright Jakub Vrána, http://php.vrana.cz/
*/
function image_shrink_size($file_in, $max_x = 0, $max_y = 0) {
list($width, $height) = getimagesize($file_in);
if (!$width || !$height) {
return array(0, 0);
}
if ($max_x && $width > $max_x) {
$height = round($height * $max_x / $width);
$width = $max_x;
}
if ($max_y && $height > $max_y) {
$width = round($width * $max_y / $height);
$height = $max_y;
}
return array($width, $height);
}

/** Převzorkování obrázku GIF, PNG nebo JPG
* @param string název zmenšovaného souboru
* @param string název výsledného souboru
* @param int šířka výsledného obrázku
* @param int výška výsledného obrázku
* @return bool true, false v případě chyby
* @copyright Jakub Vrána, http://php.vrana.cz/
*/
function image_resize($file_in, $file_out, $width, $height) {
$imagesize = getimagesize($file_in);
if ((!$width && !$height) || !$imagesize[0] || !$imagesize[1]) {
return false;
}
if ($imagesize[0] == $width && $imagesize[1] == $height) {
return copy($file_in, $file_out);
}
switch ($imagesize[2]) {
case 1: $img = imagecreatefromgif($file_in); break;
case 2: $img = imagecreatefromjpeg($file_in); break;
case 3: $img = imagecreatefrompng($file_in); break;
default: return false;
}
if (!$img) {
return false;
}
$img2 = imagecreatetruecolor($width, $height);
imagecopyresampled($img2, $img, 0, 0, 0, 0, $width, $height, $imagesize[0], $imagesize[1]);
if ($imagesize[2] == 2) {
return imagejpeg($img2, $file_out);
} elseif ($imagesize[2] == 1 && function_exists("imagegif")) {
imagetruecolortopalette($img2, false, 256);
return imagegif($img2, $file_out);
} else {
return imagepng($img2, $file_out);
}
}

//zpracovani po odeslani
if($_POST["ok"]){
//overovani, zda jsou vyplnena vsechna povinna pole
if($_POST["rok"] && $_POST["popis"] && $_FILES["image"]){
//vytvoreni a ulozeni nahledu nahraneho obrazku
//vytvoreni nahledu o maximalni veliskosti (sirka=120, vyska=80)
list($width, $height) = image_shrink_size($_FILES["image"]["tmp_name"], 120, 80);
if ($width && $height){
//adresar kde se ulozi nahled obrazku, pojmenovany stejne jako original, jen na bude zacina thumb_...
$filename = "../img/uploaded/foto/thumb_".$soubor;
image_resize($_FILES["image"]["tmp_name"], $filename, $width, $height);
}
//nahrani obrazku
if($_FILES["image"]["size"] > 0){
//povolene koncovky
$koncovky = array('jpg', 'jpeg', 'png', 'gif');
$chyba = "";
if (!$_FILES || $_FILES["image"]["error"] == UPLOAD_ERR_INI_SIZE) {
$chyba = "<p class=\"error\">Soubor je příliš velký, maximální velikost je " . ini_get('upload_max_filesize') . ".</p>\n";
$chyba .= "<form><input type=\"button\" value=\"Zpět\" onclick=\"history.back()\"></form>";
}
elseif ($_FILES["image"]["error"] == UPLOAD_ERR_NO_FILE) {
$chyba = "<p class=\"error\">Nevybrali jste soubor, který chcete nahrát.</p>\n";
$chyba .= "<form><input type=\"button\" value=\"Zpět\" onclick=\"history.back()\"></form>";
}
elseif ($_FILES["image"]["error"]) {
$chyba = "<p class=\"error\">Soubor se nepodařilo nahrát!</p>\n";
$chyba .= "<form><input type=\"button\" value=\"Zpět\" onclick=\"history.back()\"></form>";
}
elseif (!in_array(strtolower(pathinfo($_FILES["image"]["name"], PATHINFO_EXTENSION)), $koncovky)) {
$chyba = "<p class=\"error\">Koncovka souboru musí být jedna z: " . implode(", ", $koncovky) . ".</p>\n";
$chyba .= "<form><input type=\"button\" value=\"Zpět\" onclick=\"history.back()\"></form>";
}
elseif (!($imagesize = getimagesize($_FILES["image"]["tmp_name"])) || $imagesize[2] > 3) {
$chyba = "<p class=\"error\">Typ obrázku musí být JPG, JPEG, PNG nebo GIF.</p>\n";
$chyba .= "<form><input type=\"button\" value=\"Zpět\" onclick=\"history.back()\"></form>";
}
else {
//vytvoreni velkeho obrazku o maximalnich rozmerech(sirka=900, vyska=692)
list($width, $height) = image_shrink_size($_FILES["image"]["tmp_name"], 900, 692);
if ($width && $height){
//cesta kam se to ma ulozit(slozka musi mit nastaven chmod=0777)
$filename = "../img/uploaded/foto/".$soubor;
image_resize($_FILES["image"]["tmp_name"], $filename, $width, $height);
}
//move_uploaded_file($_FILES["image"]["tmp_name"], "../img/uploaded/foto/$soubor");
}
}

//ulozit data do MySQL
if(mysql_query($sql)){
echo"<p>Data byla úspěšně uložena!</p><br><br>";
echo"<p><a href=\"insert_to_photos.php\">Nahrát další obrázek</a></p>";
echo"<p><a href=\"../admin/\">Do administrační sekce</a></p>";
$send = true;
}
else{
echo "<p class=\"error\"><strong>Uložení dat do databáze selhalo!</strong>Zkus to znovu.</p>";
echo "<form><input type=\"button\" value=\"Zpět\" onclick=\"history.back()\"></form>";
}
}
else{
echo "<p class=\"error\"><strong>Nejsou vyplněna všechna povinná pole!</strong></p>";
echo "<form><input type=\"button\" value=\"Zpět\" onclick=\"history.back()\"></form
Ben
Profil *
ha, nevejde se to sem cele, takze pokracovani...

  else{
    echo "<p class=\"error\"><strong>Nejsou vyplněna všechna povinná pole!</strong></p>";
    echo "<form><input type=\"button\" value=\"Zpět\" onclick=\"history.back()\"></form>";
  }
}
//zobrazeni formulare
else{
?>
<p align="left">Vyplneni vsech poli je povinne.</p><br><br>
<form name="vlozit"  action="<?php echo $_SERVER["PHP_SELF"];?>" method="post" enctype="multipart/form-data">
<table>
 <tr>
  <td>Rok:</td>
  <td colspan="2">
   <select name="rok">
    <option value="">Vyber rok...*</option>
    <?php  
    //vytvori rolovatko s roky od roku 1994 do soucasneho
    for($rok = 1994; $rok <= date("Y"); $rok++){
      echo"<option value=\"$rok\""; if(!isset($send)){echo $_POST["rok"]==$rok ? "selected" : "";} echo">$rok</option>";
    }
    ?>
   </select> 
  </td>
 </tr>

 <tr>
  <td>Obrázek:</td>
  <td><input type="file" name="image" accept="image"></td>
  <td><i>klikni a vyber *.jpg, *,jpeg, *.png nebo *.gif soubor</i></td>
 </tr>
 
  <tr>
  <td>Popis:</td>
  <td><textarea name="popis" cols="40" rows="3" maxlength="999"><?php if(!isset($send)){echo $_POST["popis"];}?></textarea></td>
  <td><i>tento text bude zobrazen jako titulek a zaroven jako popisek k fotce</i></td>
 </tr> 
   
 <tr>
  <td><input type="submit" name="ok" value="Uložit"></td>
 </tr>
</table>  
</form>
<br>
<p><a href="../admin/">Zpět do administrační sekce</a> </p>
<?php
}
?>

</body>
</html> 

zdenek
Profil
Ben:

díky, přeberu si to a použiju, co se mi bude hodit.

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0