Galeria – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Galeria – PHP – Fórum – Programujte.comGaleria – PHP – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
mORb0
Stálý člen
24. 10. 2007   #1
-
0
-

Vedeli by ste mi poradit nejake funkcie, pomocou ktorych by som mohol rozbalit zip subor (s obrazkami) na serveri, jednotlive obrazky zmensit a z thumbu este cast (najlepsie nahodne vybranu) vyrezat ? Stacia mi nazvy funkcii a mozno trosku strucny popis pre lepsie pochopenie ich cinnosti a keby bol aj dlhsi tak sa nenahnevam ;) Ja uz si to potom nejak dam dokopy. Vytvorit zmenseninu obrazka nebude problem. Dolezite je to rozbalenie a vystrihnutie casti.

Dakujem velmi pekne;)

Nahlásit jako SPAM
IP: 91.127.12.–
www.milankohut.com
Reklama
Reklama
Prog.0
Věrný člen
24. 10. 2007   #2
-
0
-

So zipmi som veľmi nepracoval. Toto rozbalí celý zip do jedného adresara:

  $zip = new ZipArchive;


$res=$zip->open($zipfile);
if ($res === TRUE)
{
$zip->extractTo($path);
$zip->close();
}

Potrebuješ, aby php podporovalo zip, viac na http://www.php.net/zip

Práca s obrázkami sa už rozoberala aspoň 1000 krát, pozri potom na:
http://programujte.com/index.php?akce=diskuze&kam=vlakno&tema=6082-problem-s-funkci-imagecopyresampled-#49451

v skratke asi takto:
  $img_o = imagecreatefromjpeg( './obrazok.jpg' );  // nacita existujuci obrazok

list($o_w, $o_h) = getimagesize('subor.jpg'); // zistis rozmery obrazka

$img_t = imagecreatetruecolor( $t_w, $t_h); // vytvori novy obrazok (thumb)

imagecopyresampled($img_t, $img_o, 0, 0, 0, 0, $t_w, $t_h, $o_w, $o_h);
// alebo imagecopyresized(...) - ..resampled je kvalitnejšie, pomalšie

// prekopiruje a zmení veľkosť (fcia resample) časť obrazka obr_o do obr_t

imagejpeg ( $img_t , 'thumb.jpg' );
// uloží obrázok (pri použití bez 2 parametra zapíše obrázok na štandardný výstup)

Potrebuješ na to v php GD knižnicu, viac na http://www.php.net/manual/ref.image.php

http://www.php.net/imagecreatetruecolor
http://www.php.net/imagecopyresampled
http://www.php.net/imagecopyresized
http://www.php.net/imagejpeg

Nahlásit jako SPAM
IP: 213.160.186.–
Prog.
mORb0
Stálý člen
24. 10. 2007   #3
-
0
-

To Prog. : Dakujem ti velmi pekne. Idem sa do toho pustit.. ;)

Nahlásit jako SPAM
IP: 91.127.38.–
www.milankohut.com
mORb0
Stálý člen
24. 10. 2007   #4
-
0
-

Jaj a este ma napadlo, ze by som potreboval aj nejake funckie pomocou ktorych by som nacital vsetky rozbalene subory aby som ich mohol dalej zmensovat. Taketo veci som este nerobil.. dakujem

Nahlásit jako SPAM
IP: 91.127.38.–
www.milankohut.com
insider0
Věrný člen
24. 10. 2007   #5
-
0
-
Nahlásit jako SPAM
IP: 147.32.97.–
I don't want to see you go,[br] The sky is over[br] Even though we can't afford[br] The sky is over,[br] The sky is over us.[br][br] CIVILIZATION IS OVER
mORb0
Stálý člen
24. 10. 2007   #6
-
0
-

dakujem ti velmi pekne... este musim zistit ci to podporuje vobec moj webhosting ;)

Nahlásit jako SPAM
IP: 91.127.38.–
www.milankohut.com
mORb0
Stálý člen
24. 10. 2007   #7
-
0
-

zatial mi to funguje vsetko krasne.. len neviem presne ako z thumbu este vyrezat cast.. dajme tomu ze som dal vytvorit thum s pevnou sirkou 180px => vytvoril sa mi obrazok 180px x 120px a ja z neho chcem vyrezat (nie zmensit) cast 112px x 80px a najlepsie aby sa ten vyrez umiestnil niekde nahodne... nie som si isty, ale zda sa mi, ze by to islo cez imagecopyresampled pomocou parametrov $dst_x, $dst_y, $src_x, $src_y

toto je zatial moj zjednoduseny kod:

<?php

$zipfile = "./tmp/test.zip";
$path = "./tmp/test/";

//Rozbalovanie suboru ZIP
$zip = new ZipArchive;
$res=$zip->open($zipfile);
if ($res === TRUE){
$zip->extractTo($path);
$zip->close();
}
//Funkcia na zmensenie obrazka
function createThumb($newwidth, $thumbtype, $dst_x, $dst_y, $src_x, $src_y){
global $path, $file, $src;

list($width,$height)=getimagesize($path.$file);
$newheight=($height/$width)*$newwidth;
$tmp=imagecreatetruecolor($newwidth,$newheight);
imagecopyresampled($tmp,$src,$dst_x,$dst_y,$src_x,$src_y,$newwidth,$newheight,$width,$height);

if($thumbtype == 1){
$filename = "./tmp/images/".$file;
}
else if($thumbtype == 0){
$filename = "./tmp/images/thumbs/".$file;
}
imagejpeg($tmp,$filename,100);
imagedestroy($tmp);
}


if ($handle = opendir($path)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != ".." && $file !="Thumbs.db") {
$src = imagecreatefromjpeg($path.$file);
createThumb(112,0,0,0,112,80);
createThumb(480,1,0,0,0,0);
imagedestroy($src);
echo "$file\n";
}
}
closedir($handle);
}

?>

Nahlásit jako SPAM
IP: 91.127.38.–
www.milankohut.com
mORb0
Stálý člen
24. 10. 2007   #8
-
0
-

tak uz som konecne pochopil filozofiu image fcii.. ked trosku upravim kod, doplnim a pod. aby bol dobre pouzitelny dam sem cely zdrojak..

Nahlásit jako SPAM
IP: 91.127.38.–
www.milankohut.com
mORb0
Stálý člen
25. 10. 2007   #9
-
0
-

narazil som na dalsi problem:

Ako som uz povedal chystam sa rozbalovat a zmensovat vacsie baliky fotiek, ktore mozu obsahovat aj niekolko 100 MB dat a pri rozbalovani takehoto balika mi vypisalo: Maximum execution time of 30 seconds exceeded

Nasiel som riesenie pre moj localhost pouzitim fcie set_time_limit(0), ale problem je zase v tom, ze nefunguje pri zapnutom safe_mode a na mojom hostingu zapnuty je. V tychto veciach ohladom nastaveni servera sa moc nevyznam, tak by som potreboval pomoct s riesenim, ktore by vsak nijak neohrozilo "bezpecnost" servera.

Teda ak by nebolo mozne ziadne ine riesenie chcel by som vediet co obnasa vypnutie safe_mode => ci by sa vyskytli nejake nove problemy, bezpecnost a podobne..

Dakujem

Nahlásit jako SPAM
IP: 91.127.78.–
www.milankohut.com
Phoenix0
Super člen
25. 10. 2007   #10
-
0
-
Nahlásit jako SPAM
IP: 85.70.88.–
mORb0
Stálý člen
25. 10. 2007   #11
-
0
-

To Phoenix : No to prave neviem, ci budu ochotni ho vypnut (ale skor myslim, ze nie), tak preto sa snazim najst ine riesenie ako to urobit. Len zatial som na nic neprisiel :)

Prinajhorsom budem ten moj skript pouzivat na svojom localhoste a na server to potom cele premiestnim cez FTP.. chcel som si to tymto ale pekne zjednodusit..

Nahlásit jako SPAM
IP: 91.127.78.–
www.milankohut.com
Prog.0
Věrný člen
25. 10. 2007   #12
-
0
-

Raz dávno som potreboval mať na free hostingu stále spustený script, tak som vymyslel taký refreshovací scriptík.
Môžeš to skúsiť:

každý uploadovaný zip sa uloží (nerozbalený) do nejakého adresára (napr. /_buffer/)

Potom si urobíš script, ktorý bude robiť nasledovné:

Vyberie prvý zip z /_buffer/ (napr podľa dátumu), a bude z neho postupne vyťahovať obrázky a spracuvávať ich. ( po jednom rozbaliť, odstrániť zo zipu, vytvoriť thumb,...). Ak už neostanú žiadne obrázky, tak zip vymaže. Teraz ak dôjde k timeoutu, tak čo stihne - stihne, čo nestihne = dorobí pri ďalšom spustení. Ak tento script budeš volať stále dokola, stále bude pokračovať, až nakoniec v bufferi nezostanú žiadne zipy.

Aby si nemusel ručne stláčať refresh, tak si tam pridaj nejaký javascript.

Náčrt:

<html><head>

...
<title>Spracúvam obrázky...</title>
<script type="text/javascript">
window.onload = window.location.reload();
</script>
</head><body><?php

flush(); // odošle broweru už vygenerovaný kód

$hotovo = false;

1. vyber jeden zip archiv, alebo
ak uz niesu ziadne zipy, tak $hotovo = true

2. postupne z neho spracuvaj obrazky...
alebo, ak v nom uz nieje ziaden obrazok,
tak zip subor vymaz a opakuj bod 1.

if ($hotovo): ?><script type="text/javascript">
window.onload = function()
{
alert('hotovo!');
}
</script><?php endif;


?></body></html>

Nahlásit jako SPAM
IP: 213.160.186.–
Prog.
mORb0
Stálý člen
25. 10. 2007   #13
-
0
-

To Prog. : Problem je aj v tom ze na serveri nie je podporovana zip kniznica ale poskytli mi len nejaku externu a vobec netusim co ta kniznica dokaze. Na druhej strane sa skusim poobzerat po inych webhostingoch, kedze u terajsieho mi kazdu chvilu domena expiruje..

Mohli by ste mi nejaky odporucit :)
Momentalne mam svoje stranky umiestnene tu: http://www.superwebhosting.sk/web/main.php | program Maximum Linux

Nahlásit jako SPAM
IP: 91.127.78.–
www.milankohut.com
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 50 hostů

Podobná vlákna

Galéria — založil MI@SO

C# photo galéria — založil lukyno010

Jednoduchá Foto Galéria — založil Tocimanko

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý