Autor Zpráva
japlavaren
Profil
Dobry den,

mam obrazok, z ktoreho potrebujem dostat obrazok 200x200px. to co precnieva ma byt orezane. hladal som v funkciach, ale nasiel som iba riesenie pouzit imagecopyresampled a image copy - nedaju sa tieto funkcie spojit dokopy??

priklad, ako to ma byt
[img]www.simplelife.sk/obrazky/1.jpg[/img] [img]www.simplelife.sk/obrazky/2.jpg[/img]
japlavaren
Profil
Alphard
Profil
pouzit imagecopyresampled a image copy - nedaju sa tieto funkcie spojit dokopy
proč? jak? imagecopyresampled umí vše co imagecopy

zjistíte velikost obrázku, podle toho si vypočítáte svůj čtverec a ten zmenšíte na 200 × 200
japlavaren
Profil
Alphard mohol by si mi to dat do kodu bo som to skusal a nejde mi to
kletely
Profil
japlavaren
Veď pošli ten tvoj kód a snáť ti niekdo poradí.
japlavaren
Profil
$big_w=800;
$big_h=600;

list($src_w, $src_h, $typ)=getimagesize($_FILES['obrazok']['tmp_name']);

$src_img=imagecreatefromjpeg($_FILES['obrazok']['tmp_name']);
$big_img=imagecreatetruecolor($big_w, $big_h);

imagecopyresampled($big_img, $src_img, 0, 0, 0, 0, $big_w, $big_h, $src_w, $src_h);

toto ho zdeformuje
Alphard
Profil
zde vytváříte nový obrázek o velikosti 800 × 600, ale na začátku jste chtěl 200 × 200, co vlastně chcete?
Alphard
Profil
původní verze (200 × 200, vyříznout střed a zmenšit) by mohla vypadat takhle

<?php
$path = $_FILES['obrazok']['tmp_name'];
list($src_w, $src_h, $typ)=getimagesize($path);

$src_img=imagecreatefromjpeg($path);
$big_img=imagecreatetruecolor(200, 200);

if($src_w == $src_h)
{
	$s_w = $s_h = 0;
	$t = $src_w;
}
elseif($src_w > $src_h)
{
	$t = $src_h;
	$s_h = 0;
	$s_w = round(($src_w - $src_h) / 2);
}
elseif($src_w < $src_h)
{
	$t = $src_w;
	$s_w = 0;
	$s_h = round(($src_h - $src_w)/2);
}

imagecopyresampled($big_img, $src_img, 0, 0, $s_w, $s_h, 200, 200, $t, $t);
header('Content-type: image/jpeg');
imagejpeg($big_img);
?>
horava2
Profil
Presne to same bych ted potreboval.
Zkusil jsem to spojit s uploadem, ale vysledek je nulovy.

if (isset($_FILES['fupload']))
  {
    if($_FILES['fupload']['type']=="application/octet-stream"){
    echo "Soubory s příponou PHP jsou zakázány!";
    }else{
    $slozka = "soubory";
    $cil = $slozka . "/" .$_FILES['fupload']['name'];
    $nazev_souboru = $_FILES['fupload']['tmp_name'];
    $copy = move_uploaded_file($nazev_souboru, $cil)
      or die ("Přenesený soubor nelze zkopírovat");
         
$path = $_FILES['obrazok']['tmp_name'];
list($src_w, $src_h, $typ)=getimagesize($path);

$src_img=imagecreatefromjpeg($path);
$big_img=imagecreatetruecolor(100, 100);

if($src_w == $src_h)
{
    $s_w = $s_h = 0;
    $t = $src_w;
}
elseif($src_w > $src_h)
{
    $t = $src_h;
    $s_h = 0;
    $s_w = round(($src_w - $src_h) / 2);
}
elseif($src_w < $src_h)
{
    $t = $src_w;
    $s_w = 0;
    $s_h = round(($src_h - $src_w)/2);
}

imagecopyresampled($big_img, $src_img, 0, 0, $s_w, $s_h, 100, 100, $t, $t);
header('Content-type: image/jpeg');
imagejpeg($big_img);


    chmod ($cil, 0644);
    if($copy == true){
      echo "Soubor " .$_FILES['fupload']['name']. " byl úspěšně nahrán na server.\n<br><a href=\"$cil\">Jdi na soubor</a>";
    }else{
      echo "Soubor nemohl být nahrán.\nPočet chyb: " . $_FILES['fupload']['error'];
    }
    }
  }
?>


Kde je chyba ?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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