Autor Zpráva
Jamanek
Profil *
Zdar všem.
Nemáte někdo script, že když zadám <img
src="./images.php?obrazek=neco.jpg&?vyska=55&?sirka=33"> tak to
projde scriptem v image.php a převede se to do dané velikosti ?
Nutně prosím !
23_nic_neumi
Profil *
jasne ...

podivej se na fci getimagesize();

teoreticky by to mohlo byt takto:

images.php

$obrazek=$_GET["obrazek"];
list($sirka,$vyska)=getimagesize($obrazek);
echo "<img src='$obrazek' width=$sirka height=$vyska>";



a pak si to volas images.php?obrazek=auto&sirka=XX&vyska=YY
hubipe
Profil
Je to docela v pohodě si to napsat, jen se musí důkladně prostudovat funkce GetImageSize() (Má asi 12 parametrů...). Ještě jedna rada, obrázek není dobré zvětšovat, jen zmenšovat. Pokud si chceš udělat náhledy, pak musíš dát podmínku, zda-li je obrázek menší, než jakej ho chceš, picni ho tam tak jak je.
hubipe
Profil
A ještě jedna rada, používej ImageCreateTrueColor(), jinak ti to může zabarvovat úplně blbě!
:)
Profil *
surovej kod, psanej na miru jedne me aplikaci, musis si to trochu upravit
class image{
// Atributy
var $config;
var $image;
var $mysql_link;

// Konstruktor
function image($config, $mysql_link, $image, $preset, $q){
$this->config = $config;
$this->mysql_link = $mysql_link;
$this->image['id'] = $image;
$this->image['preset'] = $preset;
$this->image['quality'] = $q;
}
// Script
// Ziskame rozmery obrazku
function get_image_preset_size($import_size){
if(!isset($this->image['preset'])){
$this->image['preset'] = $this->config['def_preset'];
}
if($this->image['preset'] === "1"){
$sub_conf['0'] = "150";
}elseif($this->image['preset'] === "2"){
$sub_conf['0'] = "200";
}elseif($this->image['preset'] === "3"){
$sub_conf['0'] = "250";
}
$sub_conf['1'] = round($import_size[1]/$import_size[0]*$sub_conf['0']);
return $sub_conf;
}
// Ziskame kvalitu obrazku
function get_image_quality(){
if(isset($this->image['quality'])){
$img['export_quality'] = $this->image['quality'];
}else{
$img['export_quality'] = $this->config['def_quality'];
}
return $img['export_quality'];
}
// Ziskame obrázek
function get_image(){
// Ziskame kvalitu obrazku
$img['export_quality'] = $this->get_image_quality();
// Ziskame id obrazku
if(!isset($this->image['id'])){
$this->image['id'] = $this->config['err_image'];
}
// Ziskame cestu k obrázku > $img['name']['nazev']
$query = "SELECT (nazev) FROM obrazky where id=".$this->image['id']." LIMIT 0,1";
$img['name'] = mysqli_fetch_array(mysqli_query($this->mysql_link,$query));
// Nacteme parametry obrazku a dopocitame ostatni
// Nacteme velikosti puvodniho obrazku > $img['import_size']
$img['import_size'] = GetImageSize($this->config['img_dir'].$img['name']['nazev']);
// Vypocitame velikost exportovaneho obrazku > $img['export_size']
$img['export_size'] = $this->get_image_preset_size($img['import_size']);
// Kvalita je v promenne $img['export_quality']
// Vygenerujeme nazev souboru pro cache > $img['export_name']
$img['export_name'] = $img['export_size']['0']."x".$img['export_size']['1']."_".$img['export _quality']."_".$img['name']['nazev'];
// Cachovani
// Pokud existuje soubor > $img['cache_file_exist']
$img['cache_file_exist'] = is_file($this->config['cache_dir'].$img['export_name']);
// Pokud soubor existuje presmerujeme na nej prohlizec
if($img['cache_file_exist']){
header("Location: ".$this->config['cache_dir'].$img['export_name']);
}
// Pokud ne, vygenerujeme ho
// Nacteme predlohu do > $img['import']
$img['import'] = ImageCreateFromJpeg($this->config['img_dir'].$img['name']['nazev']);
// Vytvorime obrazek s rozmery pro export > $img['export']
$img['export'] = ImageCreateTrueColor($img['export_size']['0'], $img['export_size']['1']);
// Upravime a zkopirujeme obrazek do > $img['export']
ImageCopyResampled($img['export'], $img['import'], 0, 0, 0, 0, $img['export_size']['0'], $img['export_size']['1'], $img['import_size'][0], $img['import_size'][1]);
// Smazeme $img['import']
ImageDestroy($img['import']);
$img['import'] = "";
// Ulozime soubor do adreasere s cache
imageJpeg($img['export'], $this->config['cache_dir'].$img['export_name'], $img['export_quality']);
// Posleme hlavicku ze jsme obrazek :)
header("Content-type: image/jpeg");
// posleme prohlizeci obrazek
imageJpeg($img['export'],"", $img['export_quality']);
ImageDestroy($img['import']);
ImageDestroy($img['export']);
unset ($img);
}
}
Erůrek
Profil *
a jak se to pak vola, mohl bys to prosim trochu popsat.. moc dik
Toto téma je uzamčeno. Odpověď nelze zaslat.

0