NFO Forum Network:  linux.nfo.sk (Linux forum)     net.nfo.sk (Network forum)     www.mforum.sk (M$ forum)
Obsah fóra linux.nfo.sk linux.nfo.sk
Fórum zaoberajúce sa nielen Linuxom...
 
 Watched TopicsWatched Topics   FAQFAQ   HľadaťHľadať   Zoznam užívateľovZoznam užívateľov   Užívateľské skupinyUžívateľské skupiny   Lite versionLite   RegistráciaRegistrácia 
 NastaveniaNastavenia   Prihlásiť, pre kontrolu súkromných správPrihlásiť, pre kontrolu súkromných správ   PrihláseniePrihlásenie 

Vlastný vyhľadávací nástroj

Tvorba miniatur v PHP

 
Odoslať novú tému   Odpovedať na tému    Obsah fóra linux.nfo.sk -> PHP
Zobraziť predchádzajúcu tému :: Zobraziť nasledujúcu tému  
Autor Správa
samot
Pokročilý používateľ
Pokročilý používateľ


Založený: 09.01.2005
Príspevky: 56
Bydlisko: Vavrecka 80

PríspevokZaslal: Po Apr 07, 2008 8:05 pm    Predmet: Tvorba miniatur v PHP Odpovedať s citátom

Zdravim

stiahol som si kod na ulozenie miniatury z velkeho obrazka
tu je kod
Kód:

<?php
function createthumb($name,$filename,$new_w,$new_h)
{
$system=explode('.',$name);
$src_img=imagecreatefromjpeg($name);

$old_x=imageSX($src_img);
$old_y=imageSY($src_img);

if ($old_x > $old_y)
{
$thumb_w=$new_w;
$thumb_h=$old_y*($new_h/$old_x);
}

if ($old_x < $old_y)
{
$thumb_w=$old_x*($new_w/$old_y);
$thumb_h=$new_h;
}

if ($old_x == $old_y)
{
$thumb_w=$new_w;
$thumb_h=$new_h;
}

$dst_img=imagecreatetruecolor($thumb_w,$thumb_h);
imagecopyresampled($dst_img,$src_img,0,0,0,10,$thumb_w,$thumb_h,
$old_x,$old_y);

if (preg_match("/png/",$system[1]))
{
imagepng($dst_img,$filename);
}

else
{
imagejpeg($dst_img,$filename);
}

imagedestroy($dst_img);
imagedestroy($src_img);
}

 

 echo createthumb("bobor.jpg","01/bobor2.jpg",150,150);
 ?>


poprosim vas ludia upravit tento kod tak aby boli vsetky obrazky
boli rovnake ci uz ide o obrazok po vyske alebo sirke napr ako na www.azet.sk - > fotoalbumy ... na tento styl Smile

PS : dik moc
Návrat hore
Zobrazit informácie o autorovi Odoslať súkromnú správu Odoslať e-mail
krasko
Aktívny používateľ
Aktívny používateľ


Založený: 18.03.2007
Príspevky: 149
Bydlisko: Praha

PríspevokZaslal: Po Apr 07, 2008 8:14 pm    Predmet: Re: Tvorba miniatur v PHP Odpovedať s citátom

samot Napísal:
poprosim vas ludia upravit tento kod tak aby boli vsetky obrazky
boli rovnake ci uz ide o obrazok po vyske alebo sirke napr ako na www.azet.sk - > fotoalbumy ... na tento styl Smile


chces

upravit obrazok na pozadovanu vysku a sirku (prestne), toto moze mat za nasledok deformaciu samotneho obrazku, nie kazdy obrazok ma pomer sirka:vyska 1:1

alebo

chces upravit obrazok tak, aby nepresiahol tebov definovanu maximalnu sirku/vysku s tym, ze pomer stran ostane zachovany
Návrat hore
Zobrazit informácie o autorovi Odoslať súkromnú správu Zobraziť autorove WWW stránky
timelord
Site Admin
Site Admin


Založený: 14.01.2005
Príspevky: 913
Bydlisko: Vancouver, British Columbia, Canada

PríspevokZaslal: Po Apr 07, 2008 8:51 pm    Predmet: Odpovedať s citátom

Urci si, aky chces mat maximalnu rozmer vysky alebo sirky a potom ked mas obrazok, tak si zisti, ktora z nich je dlhsia a tu nastav na ten tvoj pozadovany rozmer a druhy rozmer jednoducho vypocitas.

Ak napr. povodny obrazok mal v pixeloch sirku W a vysku H a chces aby "miniatura" nepresiahla napr. 100px, tak nove rozmery Wn a Hn vypocitas takto:

Kód:
ak W = H, potom Wn=100 a Hn=100
ak W > H, potom Wn = 100 a Hn = 100 x H/W
ak H > W, potom Hn = 100 a Wn = 100 x W/H

Do PHP si to uz prepis sam.
_________________
SCUBA LIBRE
合気道 養神館
Návrat hore
Zobrazit informácie o autorovi Odoslať súkromnú správu
samot
Pokročilý používateľ
Pokročilý používateľ


Založený: 09.01.2005
Príspevky: 56
Bydlisko: Vavrecka 80

PríspevokZaslal: Ut Apr 08, 2008 1:32 pm    Predmet: .. Odpovedať s citátom

PLS mohol by si mi to sem napisat ?

dik moc dik
Návrat hore
Zobrazit informácie o autorovi Odoslať súkromnú správu Odoslať e-mail
timelord
Site Admin
Site Admin


Založený: 14.01.2005
Príspevky: 913
Bydlisko: Vancouver, British Columbia, Canada

PríspevokZaslal: Ut Apr 08, 2008 5:16 pm    Predmet: Odpovedať s citátom

Teraz som si to cele pozrel poriadne co si pisal hore a ved to mas takto napisane. Presne tento alogitmus, co som Ti ja napisal, takze nechapem, co chces prepisovat a co chces vobec riesit, ked to uz mas.

Na konci prikladu volas metodu:
Kód:
createthumb("bobor.jpg","01/bobor2.jpg",150,150);

ktora v podstate urobi to, ze vezme subor bobor.jpg a ulozi ho ako 01/bobor2.jpg. A ten udaj 150, 150 nezmanena, ze to ma resiznut na 150x150px ale ze ani sirka ani vyska nebudu vacsie ako 150px. Teda jeden z nich bude 150px a ten druhy rozmer sa nasledne prepocita.

To si vobec nepozeral co ten Tvoj kod robi, pripadne ani nevyskusal?
_________________
SCUBA LIBRE
合気道 養神館
Návrat hore
Zobrazit informácie o autorovi Odoslať súkromnú správu
samot
Pokročilý používateľ
Pokročilý používateľ


Založený: 09.01.2005
Príspevky: 56
Bydlisko: Vavrecka 80

PríspevokZaslal: Ut Apr 08, 2008 5:39 pm    Predmet: .. Odpovedať s citátom

ahoj

jo skusal ale chcem aby vsetky obrazky boli rovnake aj na vysku aj na sirku ..

priklad 2 typy obrazkov :

http://hudba.fast.sk/obr/skuska.jpg

takto to je ..

ale ja chcem aby boli vsetky rovnake ako su na azete napr aby nebol jeden dlhsi 2 kratsi a sirsi ale = vsetky rovnake

PS : inak dik moc za pomoc
Návrat hore
Zobrazit informácie o autorovi Odoslať súkromnú správu Odoslať e-mail
timelord
Site Admin
Site Admin


Založený: 14.01.2005
Príspevky: 913
Bydlisko: Vancouver, British Columbia, Canada

PríspevokZaslal: Ut Apr 08, 2008 5:56 pm    Predmet: Odpovedať s citátom

No ja neviem ako to je na azet, ja tam nechodim ani tam nemam konto, takze ukaz nejaky priklad ako to tam vyzera.

Pokial natvrdo urobis resize fotky, ze aj sirka aj vyska bude rovnaka, tak sa stane to, co pisal krasko, ze sa Ti zdeformuje.

No ale hod priklad z azetu a uvidim co vlastne chces.
_________________
SCUBA LIBRE
合気道 養神館
Návrat hore
Zobrazit informácie o autorovi Odoslať súkromnú správu
samot
Pokročilý používateľ
Pokročilý používateľ


Založený: 09.01.2005
Príspevky: 56
Bydlisko: Vavrecka 80

PríspevokZaslal: Ut Apr 08, 2008 6:20 pm    Predmet: . Odpovedať s citátom

ahoj napr

http://fotoalbumy.azet.sk/kika1325/kukni-pekne-coooo/


tam su vsetkz miniatury rovnake a ked kliknes tak je original fotka sirsia je taka isto ako aj vysoka (miniatura myslim)

a toto kukni

http://hudba.fast.sk/obr/skuska.jpg

ked pridam jednu vysoku fotku a jednu sirsiu ako to vypada...a keby sa to dalo dat normalne ako je na azete http://fotoalbumy.azet.sk/kika1325/kukni-pekne-coooo/

vsetky rovnake .dik Smile
Návrat hore
Zobrazit informácie o autorovi Odoslať súkromnú správu Odoslať e-mail
timelord
Site Admin
Site Admin


Založený: 14.01.2005
Príspevky: 913
Bydlisko: Vancouver, British Columbia, Canada

PríspevokZaslal: Ut Apr 08, 2008 6:27 pm    Predmet: Odpovedať s citátom

Oni to tam neresizuju ale cropuju. Teda aj resizuju ale hlavne potom robia crop.

Idu na to opacnym sposobom: zistia ktora strana je najkratsia a tu nastavia na pozadovany rozmer. Druhu stranu nasledne v pomere vypocitaju. Nasledne obrazok zmensia na takyto novy rozmer (este stale je jedna strana dlhsia ako druha). Takyto obrazok nasledne orezu (crop), teda z tej dlhsej strany "odrezu" to, co presahuje pozadovanu dlzku.
_________________
SCUBA LIBRE
合気道 養神館
Návrat hore
Zobrazit informácie o autorovi Odoslať súkromnú správu
samot
Pokročilý používateľ
Pokročilý používateľ


Založený: 09.01.2005
Príspevky: 56
Bydlisko: Vavrecka 80

PríspevokZaslal: Ut Apr 08, 2008 6:54 pm    Predmet: .. Odpovedať s citátom

jaaj

a nemas niaky navod alebo nieco ?

dik
Návrat hore
Zobrazit informácie o autorovi Odoslať súkromnú správu Odoslať e-mail
timelord
Site Admin
Site Admin


Založený: 14.01.2005
Príspevky: 913
Bydlisko: Vancouver, British Columbia, Canada

PríspevokZaslal: Ut Apr 08, 2008 7:12 pm    Predmet: Odpovedať s citátom

Ved navod som Ti povedal. PHP kod si uz musis napisat sam. Ja som Javista a nie PHPckar, takze neviem aky je v PHP prikaz na crop, vsetko ostatne si vies urobit z toho kodu, co si napisal uplne hore, co uz mas. Malinko ho upravit a pridat este volanie metody pre crop.
_________________
SCUBA LIBRE
合気道 養神館
Návrat hore
Zobrazit informácie o autorovi Odoslať súkromnú správu
samot
Pokročilý používateľ
Pokročilý používateľ


Založený: 09.01.2005
Príspevky: 56
Bydlisko: Vavrecka 80

PríspevokZaslal: Ut Apr 08, 2008 7:57 pm    Predmet: .. Odpovedať s citátom

ok dik moc Smile

fakt dik za rady
Smile
Návrat hore
Zobrazit informácie o autorovi Odoslať súkromnú správu Odoslať e-mail
timelord
Site Admin
Site Admin


Založený: 14.01.2005
Príspevky: 913
Bydlisko: Vancouver, British Columbia, Canada

PríspevokZaslal: Ut Apr 08, 2008 8:07 pm    Predmet: Odpovedať s citátom

enjoy Wink
_________________
SCUBA LIBRE
合気道 養神館
Návrat hore
Zobrazit informácie o autorovi Odoslať súkromnú správu
samot
Pokročilý používateľ
Pokročilý používateľ


Založený: 09.01.2005
Príspevky: 56
Bydlisko: Vavrecka 80

PríspevokZaslal: Ut Apr 08, 2008 8:22 pm    Predmet: .. Odpovedať s citátom

ja dakujem tak tu je kod ak niekto bude potrebovat Smile

Kód:

// CROP NA OBRAZOK
function cropImage($nw, $nh, $source, $stype, $dest)
   {
   $size = getimagesize($source);
   
   $w = $size[0];
   $h = $size[1];
   
   switch($stype)
          {
          case 'gif':
        $simg = imagecreatefromgif($source);
        break;
       
        case 'jpg':
        $simg = imagecreatefromjpeg($source);
        break;
       
        case 'png':
        $simg = imagecreatefrompng($source);
        break;
        }
  $dimg = imagecreatetruecolor($nw, $nh);
 
  $wm = $w/$nw;
  $hm = $h/$nh;
 
  $h_height = $nh/2;
  $w_height = $nw/2;
 
  if($w> $h)
     {
    $adjusted_width = $w / $hm;
    $half_width = $adjusted_width / 2;
   
    $int_width = $half_width - $w_height;
    imagecopyresampled($dimg,$simg,-$int_width,0,0,0,$adjusted_width,$nh,$w,$h);
    }
  elseif(($w <$h) || ($w == $h))
     {
    $adjusted_height = $h / $wm;
    $half_height = $adjusted_height / 2;
    $int_height = $half_height - $h_height;
    imagecopyresampled($dimg,$simg,0,-$int_height,0,0,$nw,$adjusted_height,$w,$h);
    } else {
    imagecopyresampled($dimg,$simg,0,0,0,0,$nw,$nh,$w,$h);
    }
   
    imagejpeg($dimg,$dest,100);
  }


treba si ho upravit a funguje Smile takze skusajte a testujte

vyvolanie funkcie :

Kód:

echo cropImage(145, 110, "fotka_1", "jpg", "fotka_2");
Návrat hore
Zobrazit informácie o autorovi Odoslať súkromnú správu Odoslať e-mail
Zobraziť príspevky z predchádzajúcich:   
Odoslať novú tému   Odpovedať na tému    Obsah fóra linux.nfo.sk -> PHP Časy uvádzané v GMT + 1 hodina
Strana 1 z 1

 
Prejdi na:  
Môžete odosielať nové témy do tohto fóra
Môžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre
Nemôžete hlasovať v tomto fóre


Powered by phpBB © 2001, 2005 phpBB Group

Server Uptime: 195 days 8 hours 30 minutes | Average Load: 0.82, 0.48, 0.40

linux.nfo.sk topic RSS feed