Witam
Szukam i szukam po naszym internetowym koledze google.pl i znaleźć nie mogę w końcu skusiłem napisać posta z pytaniem/prośbą
Czy jest możliwość(jeśli tak jaka) aby wyświetlany obrazek (gdy nie spełnia warunku był zmniejszony o połowę (50%)
np. Gdy chcemy aby każdy plik graficzny o rozmiarach mniejszych jak 800x600 był normalnie wyświetlany, ale już pliki większe jak 800x600 były zmniejszane o połowę. Sam zrobiłem następujący skrypt:
[php]<?php
$tab = getimagesize(scieżka/do/pliku.jpg);
if(($tab[0]<'1024')OR($tab[1]<'768')){
echo '<img src="'.$sc.'" />';
} else {
echo '<img src="'.$sc.'" width="1024" height="768" />';
}
?>[/php]
nie spełnia on moich wymagan ponieważ sprawdza tylko czy rozmiar pliku jest mniejszy jak 1024x768 jeśli tak pozostawia go bez zmian jeśli przekracza którąś z wartości zmniejsza go do rozmiarów 1024x768.
jest to nie fortunne rozwiązanie gdyż obrazki o nie standardowych rozmiarach deformuje. Pomyślałem sobie ze gdyby tak rozmiar pliku zmienić nie do ustalonych wartości ale o połowę mniej jak ich rzeczywisty rozmiar.
Pomysł mam ale z wykonaniem kompletnie mi nie idzie są może jakieś sugestie rozwiązania problemu. może już ktoś miał z tym kłopot i wie co z tym zrobić?
liczę na waszą pomoc
pozdrawiam
[/manual]
[php][pomoc]Jak w procentach zmienić rozmiat obrazka? PHP
[php][pomoc]Jak w procentach zmienić rozmiat obrazka? PHP
Ostatnio zmieniony ndz gru 31, 2006 7:23 pm przez Chmura, łącznie zmieniany 1 raz.
...
Chcesz zmienic rozmiar na stałe czy tylko do wyswietlania? Powinienes robic to na PHP. Teraz ide na obiad wiec nie moge napisac przykladowego kodu
... ale bylo juz cos takiego na tym forum i podalem kod jak zmienic rozmiar obrazka. Tylko nie pamietam czy przypadkiem nie bylo to przed mala awaria i czy post nie polecial.
Re: [php][pomoc]Jak w procentach zmienić rozmiat obrazka? PHP
tylko do wyświetlania. To ma przypominać coś w stylu tego skryptu co dałem tylko ze jeśli nie spełnia warunku mniejszego lub równego jak 1024x768 zostaje pomniejszony o 50% (najlepiej z możliwością zmiany o ile %) ciekawie by było gdyby jeszcze dodatkowo np. standardowe rozdzielczości obrazów (np. 1280x768, 1280x1024, 1400x1050, 1680x1050) zmieniał do konkretnych rozmiarów np. 1024x768Chcesz zmienic rozmiar na stałe czy tylko do wyswietlania?
pozdrawiam
...
Skoro chcesz to zrobic w tak nieoptymalny sposob (pobierasz grafike w wiekszym rozmiarze a wyswietlasz w miejszym - niepotrzebne pobieranie wiekszej ilosci danych i strata jakosci obrazu przez skalowanie w przegladarce) to wystarczy:przypominać coś w stylu tego skryptu co dałem tylko ze jeśli nie spełnia warunku mniejszego lub równego jak 1024x768 zostaje pomniejszony o 50% (najlepiej z możliwością zmiany o ile %)
[php]<?php
$tab = getimagesize(scieżka/do/pliku.jpg);
$procent = 0.5; // procenty to przemnozenie przez ulamek (0.5 = 50%)
if(($tab[0]<'1024')OR($tab[1]<'768')){
echo '<img src="'.$sc.'" />';
} else {
$roz1 = (int) $tab[0] * $procent;
$roz2 = (int) $tab[1] * $procent;
echo '<img src="'.$sc.'" width="'.$roz1.'" height="'.$roz2.'"/>';
}
?>[/php]
To jest kiepskie rozwiazanie. Lepiej generowac obraz na php zeby niepotrzebnie nie sciagac tak duzych plikow a wyswietli i tak sie jako maly obrazek.
Re: [php][pomoc]Jak w procentach zmienić rozmiat obrazka? PHP
Wiem ze jest to nie zbyt dobre rozwiązanie...
ale chodzi o to ze chce wyświetlić obrazki już dodane na serwer, jest ich bardzo dużo powtórne skopiowanie na dysk, zrobienie skryptu pomniejszającego i jeszcze raz skopiować na serwer z moim internetem graniczy z cudem dlatego drogą wyboru postanowiłem w taki sposób zaleczyć ten problem
może jest jakieś lepsze rozwiązanie które ja nie wziąłem po uwagę albo nawet nie wiedziałem ze w taki sposób można załatwić sprawę?
ale chodzi o to ze chce wyświetlić obrazki już dodane na serwer, jest ich bardzo dużo powtórne skopiowanie na dysk, zrobienie skryptu pomniejszającego i jeszcze raz skopiować na serwer z moim internetem graniczy z cudem dlatego drogą wyboru postanowiłem w taki sposób zaleczyć ten problem
może jest jakieś lepsze rozwiązanie które ja nie wziąłem po uwagę albo nawet nie wiedziałem ze w taki sposób można załatwić sprawę?
...
A dlaczego masz sciagac to znowu? Nie łatwiej napisac skrypt ktory sam wszystko zrobi? Sprawdzi sobie rozmiar wszystkich obrazow i jesli jakis bedzie za duzy to go nadpisze z mniejsza rozdzielczoscia. W koncu to jezyki programowania sa dla programistow a nie my dla nich. Niech one odwalają cala robotejuż dodane na serwer, jest ich bardzo dużo powtórne skopiowanie na dysk, zrobienie skryptu pomniejszającego i jeszcze raz skopiować na serwer z moim internetem graniczy z cudem
Re: [php][pomoc]Jak w procentach zmienić rozmiat obrazka? PHP
w trakcie roboty wynikł jeszcze jeden problem zeby wytłumaczyć musze podac skrypt galerii:
[php]<?php
if ($handle = opendir('galeria')) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
echo "<B><font size=2><a href=\"galeria.php?catname=galeria/$file\">$file</a></font></B><br />\n";
}
}
closedir($handle);
}
$ile = "4";
$n=1;
if ($handle = opendir($catname)) {
echo "<p align=center><b>Zdjęcia:</b><br /><br />";
while (false !== ($file = readdir($handle)))
{
if ($file != "." && $file != "..")
{
if($file != "mini") {
$size = getimagesize($catname.'/'.$file);
if(($size[0]<'1024')OR($size[1]<'768')){
echo "<a rel=\"lightbox[example]\" title=\"$file\" href=\"$catname/$file\" class=\"image\"><img src=\"$catname/mini/$file\" hspace=3 vspace=3 ></a>";
}
else {
echo "<a title=\"$file\" href=\"$catname/$file\" class=\"image\"><img src=\"$catname/mini/$file\" hspace=3 vspace=3></a>";
}
if($n==$ile) { echo '<br>'; $n=0; }
$n++;
} else {
if($file == "opis.txt") { } else { echo "<br>"; }
}
}
}
closedir($handle);
}
?>[/php]
korzystam także ze skryptu LightBox2
(dzałanie myśle jest wam dobrze znane)
dotychczas skrypt ten wyszykuje folder "galeria" w nim foldery ze zdjęćmi(ich nazwy jako hiperłącza) otwierając wczytuje miniatury z folderu "mini" zawartego w folderze z zdjęćmi i automatycznie robi linki do oryginalnych zdjęć, gdy zastasowałem LightBox'a zdjęcia dużych rozmiarów otwierały sie w oryginalnych rozmiarach (oglądanie zdjęcie sprawia więcej kłopotu jak przyjemności gdyż trzeba sie strasznie namachać rolką " dlatego zastasowałem skrypt który zdjęcie o rozdzielczości mniejszej jak 1024x768 są otwierane za pomocą lightBox a większe standardowo otwierane. W jakiś sposób chce aby zdjęcie które są większe jak 1024x768 były przy wczytywaniu pomniejszane do danych rozmiarów co ułatwilo by przegladnie.
cała akcja rozgrywa sie nahttp://www.zstiojar.edu.pl/~bchmura/mec ... aleria.php
licze na waszą pomoc:)
[php]<?php
if ($handle = opendir('galeria')) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
echo "<B><font size=2><a href=\"galeria.php?catname=galeria/$file\">$file</a></font></B><br />\n";
}
}
closedir($handle);
}
$ile = "4";
$n=1;
if ($handle = opendir($catname)) {
echo "<p align=center><b>Zdjęcia:</b><br /><br />";
while (false !== ($file = readdir($handle)))
{
if ($file != "." && $file != "..")
{
if($file != "mini") {
$size = getimagesize($catname.'/'.$file);
if(($size[0]<'1024')OR($size[1]<'768')){
echo "<a rel=\"lightbox[example]\" title=\"$file\" href=\"$catname/$file\" class=\"image\"><img src=\"$catname/mini/$file\" hspace=3 vspace=3 ></a>";
}
else {
echo "<a title=\"$file\" href=\"$catname/$file\" class=\"image\"><img src=\"$catname/mini/$file\" hspace=3 vspace=3></a>";
}
if($n==$ile) { echo '<br>'; $n=0; }
$n++;
} else {
if($file == "opis.txt") { } else { echo "<br>"; }
}
}
}
closedir($handle);
}
?>[/php]
korzystam także ze skryptu LightBox2
(dzałanie myśle jest wam dobrze znane)
dotychczas skrypt ten wyszykuje folder "galeria" w nim foldery ze zdjęćmi(ich nazwy jako hiperłącza) otwierając wczytuje miniatury z folderu "mini" zawartego w folderze z zdjęćmi i automatycznie robi linki do oryginalnych zdjęć, gdy zastasowałem LightBox'a zdjęcia dużych rozmiarów otwierały sie w oryginalnych rozmiarach (oglądanie zdjęcie sprawia więcej kłopotu jak przyjemności gdyż trzeba sie strasznie namachać rolką " dlatego zastasowałem skrypt który zdjęcie o rozdzielczości mniejszej jak 1024x768 są otwierane za pomocą lightBox a większe standardowo otwierane. W jakiś sposób chce aby zdjęcie które są większe jak 1024x768 były przy wczytywaniu pomniejszane do danych rozmiarów co ułatwilo by przegladnie.
cała akcja rozgrywa sie nahttp://www.zstiojar.edu.pl/~bchmura/mec ... aleria.php
licze na waszą pomoc:)

