« 1 2
Autor Zpráva
aaa
Profil
Alphard: já vim... jenom jsem reagoval na to že je to podle tebe nefunkční, či že jsi to neviděl...
HGD
Profil
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
$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
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
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
no takže funkční neni... ta Alphardova funguje...
HGD
Profil
je, až na to kopírování do zmenšeniny, ale ta Alphardovo sem zkoušel a ta mi nejde vbec
Alphard
Profil
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
a jak vlastně dostranu do tý funkce ty nadefinovaný proměnný ? (v závorce za "function")
Alphard
Profil
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
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
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
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
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
proměný sou všechny v pořádku, jenom ty funkce hází chyby...
ty Warning sou ode mě
Alphard
Profil
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
to sou nový rozměry obrázku, a ikdyž je zaokrouhlim, tak je to prd platný
« 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