« 1 2 »
Autor Zpráva
M**
Profil *
Dobrý den, vím, že už to tu několikrát bylo, vždycky opíšu ty skripty, nastavím proměnné a nefunguje mi to. V jednom příspěvku jsem četl, že potřebuji příst. pr. 777, tak jsem to v Total Commandru nastavil, a pořád to nefunguje. Možná bude chyba v tom, že jsem nastavil špatně ty proměnné. Napište mi prosím nějaký kód, který máte vyzkoušený a popište, jak se nastaví proměnné. díky
temistokles
Profil
http://www.google.com/search?client=opera&rls=en&q=php+image+thumbnail &sourceid=opera&ie=utf-8&oe=utf-8
M**
Profil *
najít si kódy umím...
problém je v tom, že mi nefungují.
A když to nepochopím z CZ stránek, tak z EN asi těžko...
M**
Profil *
najít si skripty umím...
problém je v tom, že mi nefungují.
A když to nepochopím z CZ stránek, tak z EN asi těžko...
Alphard
Profil
Napište mi prosím nějaký kód, který máte vyzkoušený a popište, jak se nastaví proměnné.


/* uprav_velikost_jpeg(stary nazev, novy nazev, co_zmenit, velikost_urcene_strany, komprese)
stary nazev - ukazatel na puvodni soubor, cesta muze byt soucasti
novy nazev - nazev noveho obrazku, cesta muze byt soucasti
co_menit - 1 == velikostne urcena strana je sirka, 2 == velikost udava vysku
velikost urcene strany - udava velikost urcene strany v pixelech, druha strana se dopocita
komprese - komprese jpeg 0 - 100, vyhozi hodnota: 80 */

function uprav_velikost_jpeg ($stary_nazev, $novy_nazev, $co_zmenit, $velikost_strany, $komprese_jpeg = 80)
{ $in_name = $stary_nazev; // puvodni nazev obrazku, prostor pro prefix / suffix
$out_name = $novy_nazev; // novy nazev obrazku, prostor pro prefix / suffix
$origin_size = getimagesize ($in_name);
if ($co_zmenit == 1) // zname sirku
{ $out_sirka = $velikost_strany;
$out_vyska = ($out_sirka * $origin_size[1]) / $origin_size[0];
$out_vyska = round($out_vyska); }
if ($co_zmenit == 2) // zname vysku
{ $out_vyska = $velikost_strany;
$out_sirka = ($out_vyska * $origin_size[0]) / $origin_size[1];
$out_sirka = round($out_sirka); }
$image_obrazku = imagecreatefromjpeg($in_name); // vytvori image puvodniho obrazku
$out = imagecreatetruecolor ($out_sirka,$out_vyska); // vytvori novy obrazek, pouze "podklad"
imagecopyresampled ($out,$image_obrazku,0,0,0,0,$out_sirka, $out_vyska,$origin_size[0],$origin_size[1]); // vlozi image obrazku do noveho obrazku a prispusobi mu velikost
$result = imagejpeg ($out,$out_name,$komprese_jpeg); // ulozi novy obrazek
imagedestroy ($image_obrazku);
imagedestroy ($out);
return $result; }

EDIT: diskuze rozdělila dlouhé řádky v nevhodných místech, což by vedlo k chybám, snad se mi podařilo vše najít a opravit
M**
Profil *
nefunguje :-(
aaa
Profil
M**:
vytvoř si soubor index.php do kterého vložíš kód, který je níže. index.php zkopíruj do rootu na serveru (do nějaké složky). v ní vytvoř složku images a nastav jí práva 777. ve složce images se ti pak po uploadu obrázku vytvoří miniatura a originál. funguje to 100%.

(neuploaduj soubory obsahující diakritiku, mezery a tečku jinde než mezi názvem souboru a příponou!)

soubor index.php:

<?

//funkce uprav_velikost_jpeg - začátek

function uprav_velikost_jpeg ($stary_nazev, $novy_nazev, $co_zmenit, $velikost_strany, $komprese_jpeg = 80)

{ $in_name = $stary_nazev;

$out_name = $novy_nazev;

$origin_size = getimagesize ($in_name);

if ($co_zmenit == 1)

{ $out_sirka = $velikost_strany;

$out_vyska = ($out_sirka * $origin_size[1]) / $origin_size[0];

$out_vyska = round($out_vyska); }

if ($co_zmenit == 2) // zname vysku

{ $out_vyska = $velikost_strany;

$out_sirka = ($out_vyska * $origin_size[0]) / $origin_size[1];

$out_sirka = round($out_sirka); }

$image_obrazku = imagecreatefromjpeg($in_name);

$out = imagecreatetruecolor ($out_sirka,$out_vyska);

imagecopyresampled ($out,$image_obrazku,0,0,0,0,$out_sirka, $out_vyska,$origin_size[0],$origin_size[1]);

$result = imagejpeg ($out,$out_name,$komprese_jpeg);

imagedestroy ($image_obrazku);

imagedestroy ($out);

return $result;

}

//funkce uprav_velikost_jpeg - konec

//formulář pro upload souboru

if(!$_POST['submit']){
echo "
<form action='?upload=1' method='post' enctype='multipart/form-data'>
<table align='center'>
<tr>
<td>File to upload:</p></td><td><input type='file' name='file' size='30'></td>
</tr>
<tr><td>
<input type='submit' name='submit' value='Upload'>
</td></tr>
</table>
</form>
";
}

//upload a vytvoření miniatury
//$fname_original - cesta k oiginálnímu souboru
//$fname_thumbnail - cesta k miniatuře originálu

if($_POST['submit']){
echo "Uploading...";
$dir = "images";
if (copy ($file, $dir."/$file_name")){

$fname = explode(".", $file_name);
$fname_original = $dir."/".$fname[0].".".$fname[1];
$fname_thumbnail = $dir."/".$fname[0]."_th.".$fname[1];
uprav_velikost_jpeg($fname_original,$fname_thumbnail, 1, 200, $komprese_jpeg = 80);


}else{

echo "Upload error!";

}
}

?>
M**
Profil *
nefunguje...

Uploading...Upload error!
aaa
Profil
tak jsi nenastavil práva... mě to funguje... nebo ještě jinak, na jakym pracuješ serveru? provider?
aaa
Profil
pak to samozřejmě musí být soubor typu jpeg...
HGD
Profil
a je nějaký script, kterej dokáže zmenšit i PNG a GIF ?
Alphard
Profil
ano, moc se neliší od tohoto
http://php.vrana.cz/zmensovani-obrazku.php
HGD
Profil
sem si to celý několikrát přečet, a sem z toho nějakej volakej zmetěnej...
když to tim scriptem budu zmenšovat, tak potřebuju abych udal šířku a výška se dopočítala sama
-a vůbec nevim jak nadefinovat vstupy do funkce, aby to běhalo
Apostolus
Profil
musíš prostě spočítat poměr stran, aby změnšený obrázek nebyl roztahanej. ŠÍřku a výšku získáš pomocí getimagesize();. Zjistíš, která strana je delší, jestli je obrázek na výšku nebo na šířku, a pak už jsou to jen matematické výpočty.
HGD
Profil
mno a ještě takovej technickej dotaz, miniatutu mam udělat a uložit až po uploudu originálu žejo?
aaa
Profil
HDG: ano, s obrázkem můžeš stejně pracovat až po uploadu. jinak by na to měl fungovat ten script co tu je ...akorát místo funkcí který jsou na jpeg tam dáš fce jež jsou pro gif a png. třeba tohle je pro jpeg "imagejpeg" a tohle pro gif "imagegif"... moc se to lišit nebude...
HGD
Profil
a jak zjistim tu knihovnu GD ? ten script by měl pak běhat na WZ, tak jestli to vůbec pude ?
Alphard
Profil
verzi GD zjistíš z phpinfo();
HGD
Profil
¨mno tak sem dal do souboru info.php script: <?php
phpinfo()
?>
a je tady ale nic o GD tam newidim :(
HGD
Profil
jo, tak prdon, sem to tam už našel, ale co to znamená? co to bude umět za funkce ?
Alphard
Profil
zkus použít vyhledávání
je tam, verze 2.0.15
HGD
Profil
mno, tak sem zkoušel použít tendle script, jenom jak to fuguje:
<?php
$obrazek = imagecreatefromjpeg(`a.jpg`);
imagepng($obrazek,`ob.png`);
imagedestroy($obrazek);
?>


a hází to:
Warning: shell_exec(): Cannot execute using backquotes in Safe Mode in /3w/xf.cz/h/h-upload/funkce_m.php on line 2

Warning: imagepng(): supplied argument is not a valid Image resource in /3w/xf.cz/h/h-upload/funkce_m.php on line 3

Warning: imagedestroy(): supplied argument is not a valid Image resource in /3w/xf.cz/h/h-upload/funkce_m.php on line 4
Makhiel
Profil *

<?php
$obrazek = imagecreatefromjpeg('a.jpg');
imagepng($obrazek, 'ob.png');
imagedestroy($obrazek);
?>

co takhle? jsou tam obyč apostrofy namísto zpětných
HGD
Profil
ha ;-) , díky, už to jede, už to fičí
HGD
Profil
tak sem zkusil něco vyprodukovat sám, tak jestli mi to můžete pls zkontrolovat ?
Hází mi to Parse error: parse error in /3w/xf.cz/h/h-upload/funkce.php on line 25

tady je script:
<?php
//---Poměr zmenšení---
if ($width > $height){
$pomerove = $width;
}else{
$pomerove = $height;
}

$pomer = round($pomerove/150, 2);

//---Velikost souboru---
$s_width = $width/$pomer;
$s_height = $height/$pomer;

//---Typ souboru---
if ($vel[2]==1){
$type = gif;
}elseif($vel[2]==2){
$type = jpeg;
}elseif($vel[2]==3){
$type = png;
}

//---Tvorba zmenšeniny---
$obrazek = imagecreatefrom".$type."('data/'$name);
$small = imagecreatetruecolor ($s_width,$s_height);
imagecopyresampled($small, $obrazek, 0, 0, 0, 0, $_swidth, $s_height, $width, $height);
image".$type." ($small,$name."_small");

//---Zničení proměnných---
imagedestroy ($obrazek);
imagedestroy ($small);
?>
Alphard
Profil
$obrazek = imagecreatefrom".$type."('data/'$name);

1. mezi 'data/' a $name chybí tečka, takhle se řetězce nespojují
2. imagecreatefrom".$type." netuším, jestli tohle může fungovat, nikdy jsem to neviděl
HGD
Profil
mno, tak s tim $type to neběhá, ale zkoušim to zatim na jpeg, ale newim kde je chyba

<?php
//---Poměr zmenšení---
if ($width > $height){
$pomerove = $width;
}else{
$pomerove = $height;
}

$pomer = round($pomerove/150, 2);

//---Velikost souboru---
$s_width = $width/$pomer;
$s_height = $height/$pomer;

//---Typ souboru---
if ($vel[2]==1){
$type = 'gif';
}elseif($vel[2]==2){
$type = 'jpeg';
}elseif($vel[2]==3){
$type = 'png';
}

//---Tvorba zmenšeniny---
$obrazek = imagecreatefromjpeg("data/".$name);
$fname = explode(".", $name);
$fname_original = "data/".$fname[0].".".$fname[1];
$fname_small = "data/".$fname[0]."_small.".$fname[1];
$small = imagecreatetruecolor ($s_width,$s_height);
imagecopyresampled($small, $obrazek, 0, 0, 0, 0, $_swidth, $s_height, $width, $height);
imagejpeg ($small,"view/".$fname_small);

//---Zničení proměnných---
imagedestroy ($obrazek);
imagedestroy ($small);
?>
HGD
Profil
tak, nějak mi to už teda běhá, ale mam problém ten, že sice velikost, název i umístění miniatury je OK, ale je to jenom černej obdélník :(

newíte někedo kde je chyba ?
aaa
Profil
Alphard: já si tedy myslim že imagecreatefrom".$type." fungovat nebude. Možná by bylo spolehlivější udělat podmínku třeba přes switch...
Alphard
Profil
aaa
Možná by bylo spolehlivější udělat podmínku třeba přes switch...
mě to neříkej... já to nevymyslel
« 1 2 »

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