Autor | Zpráva | ||
---|---|---|---|
aaa Profil |
#1 · Zasláno: 28. 8. 2007, 23:13:07
Alphard: já vim... jenom jsem reagoval na to že je to podle tebe nefunkční, či že jsi to neviděl...
|
||
HGD Profil |
#2 · Zasláno: 29. 8. 2007, 09:35:47
jo, no, tak moc tolik zase s PHP neumim a switch sem ještě nikdy nepoužíval, tak sem to jenom zkoušel ale nešlo to, tak to mam teď takle:
<?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){ $from = 'imagecreatefromgif'; $imagetyp = 'imagegif'; }elseif($vel[2]==2){ $from = 'imagecreatefromjpeg'; $imagetyp = 'imagejpeg'; }elseif($vel[2]==3){ $from = 'imagecreatefrompng'; $imagetyp = 'imagepng'; } //---Tvorba zmenšeniny--- $obrazek = $from("data/".$name); $fname_small = $date."_small.".$file_ext; $small = imagecreatetruecolor($s_width, $s_height); imagecopyresampled($small, $obrazek, 0, 0, 0, 0, $_swidth, $s_height, $width, $height); $imagetyp($small, "view/".$fname_small); //---Zničení proměnných--- imagedestroy ($obrazek); imagedestroy ($small); ?> ale jak sem nedávno psal, už to takle funguje jak potřebuju, ale vytvoří se mi pouze smenšenej obrázek vyplněnej černo barvou, a nikde sm nezjistil jak to opravit nebo co s tim :( |
||
aaa Profil |
#3 · Zasláno: 29. 8. 2007, 09:47:05
$from("data/".$name); tohle taky nepůjde musíš to mít takhle... imagecreatefromgif("data/".$name); pak tam používáš funkci bez parametrů, tzn že to nic nevytvoří...
|
||
aaa Profil |
#4 · Zasláno: 29. 8. 2007, 09:55:50
rozhodně jsem to teda nikde neviděl a pochybuju že to půjde
k switch podívej se na manual na php.net jinak je to switch ($promena // co prověřujeme ){ case 'čemu se rovná': echo ""; break; case 'čemu se rovná2': echo ""; break; } Tzn, mám proměnou $type ... ta nabývá hodnout 1 až 3: switch ($type){ case '1': kód pro zmenšení GIF break; case '2': kód pro zmenšení JPEG break; case '3': kód pro zmenšení PNG break; } Docela bych ti doporučil použít tu fci co sem dával Alphard, nebo kdo to byl a jenom jí upravit v tom že bys z ní udělal funkce 3, jednu na zmenšení JPEG druhou na GIF a třetí na PNG (jen prohozenim image funkcí vně Tý funcke)... Pak bys pro každej z případů použil buď uprav_velikost_jpeg($aaa, $bbb, $ccc, $ddd = 80) nebo uprav_velikost_gif($aaa, $bbb, $ccc, $ddd = 80) nebo uprav_velikost_png($aaa, $bbb, $ccc, $ddd = 80)... |
||
HGD Profil |
#5 · Zasláno: 29. 8. 2007, 14:18:46
ten script od Alpharda sem zkoušel, a nejde.
Kromě toho, tak ta moje verze co sem dával o 2 příspěvky vejš je funkční, pouze to vytváří obrázek bez obsahu, je jenom černej |
||
aaa Profil |
#6 · Zasláno: 29. 8. 2007, 14:27:29
no takže funkční neni... ta Alphardova funguje...
|
||
HGD Profil |
#7 · Zasláno: 29. 8. 2007, 17:04:34
je, až na to kopírování do zmenšeniny, ale ta Alphardovo sem zkoušel a ta mi nejde vbec
|
||
Alphard Profil |
#8 · Zasláno: 29. 8. 2007, 17:50:49
HGD
nevím, co si představuješ pod pojmem nejde a nevím, co děláš špatně, ale ta funkce je funkční mám ji odzkoušenou na několika serverech napiš sem, jak ji používáš (jaké hodnoty dosazuješ za parametry) a co to dělá / nedělá |
||
HGD Profil |
#9 · Zasláno: 29. 8. 2007, 18:25:58
a jak vlastně dostranu do tý funkce ty nadefinovaný proměnný ? (v závorce za "function")
|
||
Alphard Profil |
#10 · Zasláno: 29. 8. 2007, 19:03:08
tu funkci nakopíruj na začátek scriptu a nic v ní neměň
poté ji zavoláš takhle: uprav_velikost_jpeg ("velka_fotka.jpg", "mala_fotka.jpg", 1, 300); a do stejného adresáře nahraješ obrázek pojmenovaný velka_fotka.jpg |
||
HGD Profil |
#11 · Zasláno: 29. 8. 2007, 20:13:38
mnoooo, paráda, už to fachá :-D
...nejspíš to je asi tim, že je to ve funkci... btw.: ještě mam problém jak to nacpat ty obrázky do souborů ? uvod.php <form method="post" enctype="multipart/form-data"> <input type="hidden" name="sent" value=""/> <input type="file" name="soubor" size="30"> <input type="submit" id="submit" value="Nahrát"> </form><br> <?php require "funkce.php"; if(isset($_POST['sent'])){ $type = $_FILES['soubor']['type']; $orig_name = $_FILES['soubor']['name']; $size = $_FILES['soubor']['size']; $soubor = $_FILES['soubor']['tmp_name']; $getExt = explode ('.', $orig_name); $file_ext = $getExt[count($getExt)-1]; //pokud soubor se jmenuje "bla.bla.jpg", tak veme koncovku if ($type == "image/jpeg" or $type=="image/gif" or $type=="image/png") { $date = StrFTime("%H%M%S%d%m%y", Time()); $name = $date.".".$file_ext; $vel = getimagesize($soubor); $width = $vel[0]; $height = $vel[1]; if (move_uploaded_file ($soubor, "data/$name")) { $size = ($size > 512)?( ($size/1024 > 512) ?sprintf("%.02f MB",($size/1024)/1024) :sprintf("%.02f kB",$size/1024)) :sprintf("%d B",$size); miniatura($name, $date."_small.".$file_ext, $width, $heigh); header("location: index.php?page=count&size=$size&width=$width&name=$name"); }else{ header("location: index.php?page=upload&new=ko"); } }else{ header("location: index.php?page=upload&typ=ko"); } } ?> funkce.php <?php function miniatura ($stary_nazev, $novy_nazev, $sirka, $vyska){ $in_name = 'data/'.$stary_nazev; $out_name = $novy_nazev; $width = $sirka; $height = $vyska; //---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; $obrazek = imagecreatefromjpeg($in_name); // vytvori image puvodniho obrazku $small = imagecreatetruecolor ($s_width, $s_height); // vytvori novy obrazek, pouze "podklad" imagecopyresampled($small, $obrazek, 0, 0, 0, 0, $s_width, $s_height, $width, $height); // vlozi image obrazku do noveho obrazku a prispusobi mu velikost $result = imagejpeg($small, $out_name); // ulozi novy obrazek imagedestroy($obrazek); imagedestroy($small); return $result; } ?> |
||
Alphard Profil |
#12 · Zasláno: 29. 8. 2007, 21:18:36
btw.: ještě mam problém jak to nacpat ty obrázky do souborů ?
nemyslíš adresáře? zapíšeš do názvu i cestu např. místo "obrazek.jpg" zadáš "obrazky/obrazek.jpg", předpoklad je, že existuje adresář obrazky, ten si funkce nevytvoří |
||
HGD Profil |
#13 · Zasláno: 29. 8. 2007, 21:24:10
já tam teda mam všude proměnný, ale zkoušel sem to, a nejde :(
a newim proč, tak jak sem to udělal, tak to 1 šlo, pak sem to zkoušel přepsat do těch adresářů a teď už to nefunguje vůbec :( -> hází to: Warning: imagecreatetruecolor(): Invalid image dimensions in /3w/xf.cz/h/h-upload/funkce.php on line 22 Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /3w/xf.cz/h/h-upload/funkce.php on line 24 Warning: imagejpeg(): supplied argument is not a valid Image resource in /3w/xf.cz/h/h-upload/funkce.php on line 25 Warning: imagedestroy(): supplied argument is not a valid Image resource in /3w/xf.cz/h/h-upload/funkce.php on line 27 Warning: Cannot modify header information - headers already sent by (output started at /3w/xf.cz/h/h-upload/funkce.php:24) in /3w/xf.cz/h/h-upload/uvod.php on line 67 |
||
Alphard Profil |
#14 · Zasláno: 29. 8. 2007, 21:27:37
je ta cesta správně?
vypiš si tu proměnnou těsně před použitím a zkontroluj ji a ty warningy jsou z mého nebo tvého kódu? |
||
HGD Profil |
#15 · Zasláno: 29. 8. 2007, 21:52:18
proměný sou všechny v pořádku, jenom ty funkce hází chyby...
ty Warning sou ode mě |
||
Alphard Profil |
#16 · Zasláno: 29. 8. 2007, 22:34:06
napiš, co je v $s_width a $s_height
myslím, že je v nich nějaké desetinné číslo, protože se ho neobtěžuješ zaokrouhlit PS: nevím, proč se snažíš dělat to, v čem se nevyznáš, najdi si nějaký tutoriál (třeba na linuxsoft) a začni od začátku |
||
HGD Profil |
#17 · Zasláno: 30. 8. 2007, 07:59:35
to sou nový rozměry obrázku, a ikdyž je zaokrouhlim, tak je to prd platný
|
||
Časová prodleva: 17 let
|
0