Skocz do zawartości


Zdjęcie

Galeria zdjeć w php - problemy


  • Zaloguj się, aby dodać odpowiedź
21 odpowiedzi w tym temacie

#1 19normalny89

19normalny89

    Bywalec

  • Zablokowany
  • 201 postów

Napisano 2010.09.19, 21:43

Witam Was

Proszę o pomoc...
Mam dwa pliki "install.php" który czyta z folderu X nazwy plików, robi z nich miniaturki i zapisuje w dane.txt.
Plik index.php czyta zawarte dane w dane.txt i pokazuje wynik w postaci miniatur zdjęć

INDEX.PHP
<html>
<head>
<script type="text/javascript">
<!--

function okno(p,s,w) {
  w=open('','','width='+s+',height='+w);
  with(w.document) {
   write('<html><head><title>'+p+'</title></head><body background="'+p+'"');
   write(' onMousedown="self.close()"></body></html>');
   close();
  }
}

//-->
</script>
</head>
<body>
<table align="center">
<tr><td valign="top"><?

$ile = 4; //ilość zdjęć w jednym wierszu tabeli
$fol = "fotosy"; //folder ze zdjęciami
$i = 1;
$dane = @file($fol."/dane.txt");
if(is_array($dane))
  foreach($dane as $v) {
   $d = explode("|", chop($v));
   echo "<a href=\"$fol/$d[0]\" onClick=\"okno('$fol/$d[0]',$d[1],$d[2]); return false\">".
         "<img src=\"$fol/$d[3]\" width=\"$d[4]\" height=\"$d[5]\"></a>".
      ($i == $ile ? "</td></tr><tr><td valign=\"top\">" : "</td><td valign=\"top\">")."\n";
   $i < $ile ? $i++ : $i = 1;
  }

?></td></tr>
</table>
</body>
</html>
INSTALL.PHP
<?

$fol = "fotosy"; // folder ze zdjęciami
$prfx = "min_"; // prefix poprzedzający nazwy miniaturek
$i = 0;

$naz = array();
$dane = @file($fol."/dane.txt");
if(is_array($dane)) foreach($dane as $v) {
  $t = explode("|", $v);
  $naz[] = $t[0];
}

$uchwyt = opendir($fol);
while(false !== ($plik = readdir($uchwyt)))
  if(is_file($fol."/".$plik) &&
  (!is_file($fol."/".$prfx.$plik) || !in_array($plik, $naz)) &&
   substr($plik, 0, strlen($prfx)) != $prfx &&
   ereg("^.+\.jpe?g$", $plik)) {
    $org = imagecreatefromjpeg($fol."/".$plik);
    $s_org = imagesx($org);
    $w_org = imagesy($org);
    $s_min = 100;
    if(($w_min = floor(($s_min * $w_org) / $s_org)) > 150) $w_min = 150;
    $min = imagecreate($s_min, $w_min);
    imagecopyresized($min, $org, 0, 0, 0, 0, $s_min, $w_min, $s_org, $w_org);
    imagedestroy($org);
    imagejpeg($min, $fol."/".$prfx.$plik, 50);
    imagedestroy($min);
    if(in_array($plik, $naz)) unset($dane[array_search($plik, $naz)]);
    $dane[] = "$plik|$s_org|$w_org|$prfx$plik|$s_min|$w_min\n";
    $i++;
}
closedir($uchwyt);


$fp = fopen($fol."/dane.txt", "w");
flock($fp, 2);
fputs($fp, str_replace("\r", "", join("", $dane)));
flock($fp, 2);
fclose($fp);

echo "Ilość utworzonych miniaturek: ".$i;

?>
I mam 3 problemy:
- plik install.php czyta tylko pliki jpg a JPG (z dużych to samo rozszerzenie) już nie czyta.
- jakość miniatur jest fatalna (gdzie jest wartość jaka ma być kompresja ?)
- po kliknięciu przez wyświetlane przez index.php miniatury zdjeć pojawia się okienko tyle ze zdjęcie jest w maksymalnej wielkości a chcę aby zawsze dopasowywało się do okienka a później dopiero po kliknięciu na nie maksymalizowało.

Użytkownik 19normalny89 edytował ten post 2010.09.19, 21:44

Aqq: najnowsze (licząc bety) Wtyczki: Aqq sms, AntySpam, Blocker, Gg network, Spell checker Kompozycja: Sense Glass
Windows: 7 Ultimate Przeglądarki: Firefox 3.6 (domyślna), IE8
Komputer: Q8200 2.33GHz(x4), GeForce 9800GT(1GB DDR3), 2x2GB DDR2, Samsung HD503HI(500GB)


#2 Pbo

Pbo

    Kierownik

  • Przyjaciel
  • 3477 postów

Napisano 2010.09.19, 21:47

czytaj.txt i nie na te forum trafiłeś. :/ Jednak ban był dla Ciebie odpowiednią nagrodą, więc nie wiem czemu została Ci odebrana.
  • Silverlight i tr0lit lubią to

Komunikatory głosowe Ventrilo.TeamSpeak, Mumble

PolscyGracze.pl - wiadomości ze świata gier | Serwer XMPP PGra.cz


#3 19normalny89

19normalny89

    Bywalec

  • Zablokowany
  • 201 postów

Napisano 2010.09.19, 21:48

Jakie txt ? W ogóle co mają bany związanego z tym ? Jest dział Internet.. nie pisze nigdzie że nie można poprosić o pomoc w tych sprawach.

Aqq: najnowsze (licząc bety) Wtyczki: Aqq sms, AntySpam, Blocker, Gg network, Spell checker Kompozycja: Sense Glass
Windows: 7 Ultimate Przeglądarki: Firefox 3.6 (domyślna), IE8
Komputer: Q8200 2.33GHz(x4), GeForce 9800GT(1GB DDR3), 2x2GB DDR2, Samsung HD503HI(500GB)


#4 Pbo

Pbo

    Kierownik

  • Przyjaciel
  • 3477 postów

Napisano 2010.09.19, 21:53

Gdybyś chwilę pomyślał, to byś wiedział, że to nie forum pomocy społecznej, że każdy zna się na wszystkim. Są do tego przeznaczone odpowiednie fora.

E: Przeczytaj kod 150 razy, a jeżeli nie uda Ci się tego zrozumieć to kolejne 150 razy do skutku, przecież z daleka widać co za co może odpowiadać i czy tak ciężko poeksperymentować?

Użytkownik Pbo edytował ten post 2010.09.19, 21:56

  • tr0lit lubi to

Komunikatory głosowe Ventrilo.TeamSpeak, Mumble

PolscyGracze.pl - wiadomości ze świata gier | Serwer XMPP PGra.cz


#5 muszi

muszi

    I hate Mondays!

  • Administrator
  • 1950 postów

Napisano 2010.09.19, 22:15

@Pbo: to, że jest to forum komunikatora, to nie znaczy, że innych tematów nie wolno poruszać. Są przecież inne fora do dyskusji o muzyce, książkach, grach, tapetach i Bóg wie co jeszcze. Nie szukaj dziury w całym. Poza tym od takich spraw jest funkcja Raportuj. A teraz trzymać się tematu!

Użytkownik muszi edytował ten post 2010.09.19, 22:49

  • 19normalny89 lubi to

Nie pomagam prywatnie (PW oraz JID) w sprawach AQQ
Beta info: AQQ: none | OS: Windows 10 x64
>> Przydatne linki: Regulamin | Szukajka | Buglista AQQ| Kompedium wiedzy o AQQ <<


#6 19normalny89

19normalny89

    Bywalec

  • Zablokowany
  • 201 postów

Napisano 2010.09.20, 07:09

Pbo odwracasz kota ogonem, po prostu nie ma takiego zapisu w regulaminie więc się nie czepiaj, bo nie masz podstaw.

Po drugie nie musisz być w stosunku do mnie chamski, gdybym nie eksperymentował to bym nie napisał tak dla Twojej wiedzy.

Skoro z daleka widać to byś napisał a Ty nie wiesz :)
]
Jeden mój problem jest w linijce
ereg("^.+\.jpe?g$", $plik)) {
tyle ze za ch nie wiem jak wpisać tam jeszcze JPG

Aqq: najnowsze (licząc bety) Wtyczki: Aqq sms, AntySpam, Blocker, Gg network, Spell checker Kompozycja: Sense Glass
Windows: 7 Ultimate Przeglądarki: Firefox 3.6 (domyślna), IE8
Komputer: Q8200 2.33GHz(x4), GeForce 9800GT(1GB DDR3), 2x2GB DDR2, Samsung HD503HI(500GB)


#7 tr0lit

tr0lit

    Rozgrzewam się

  • Użytkownik
  • 69 postów

Napisano 2010.09.20, 07:55

To wyrażenie poprawnie obsługuje JPG i JPEG. Poczytaj o wyrażeniach regularnych. :)

#8 karololszak

karololszak

    podróżnik w czasie

  • Moderator
  • 1562 postów

Napisano 2010.09.20, 08:08

hmm Zamiast "ereg" daj "eregi" - powinno pomóc ;)

#9 19normalny89

19normalny89

    Bywalec

  • Zablokowany
  • 201 postów

Napisano 2010.09.20, 15:22

a pozostałe 2 problemy ? Ktoś wie ?:(

Aqq: najnowsze (licząc bety) Wtyczki: Aqq sms, AntySpam, Blocker, Gg network, Spell checker Kompozycja: Sense Glass
Windows: 7 Ultimate Przeglądarki: Firefox 3.6 (domyślna), IE8
Komputer: Q8200 2.33GHz(x4), GeForce 9800GT(1GB DDR3), 2x2GB DDR2, Samsung HD503HI(500GB)


#10 karololszak

karololszak

    podróżnik w czasie

  • Moderator
  • 1562 postów

Napisano 2010.09.20, 16:10

Jakość:
imagejpeg($min, $fol."/".$prfx.$plik, 50);
wywal to ", 50" lub zmień na 100.
Trzeciego problemu nie rozumiem, tzn. opisz dokładniej o co Ci chodzi ;)

#11 kr2ysiek

kr2ysiek

  • Pomocnik
  • 1501 postów

Napisano 2010.09.20, 18:48

Co do trzeciego problemu:
function okno(p,s,w) {
  w=open('','','width='+s+',height='+w);
  with(w.document) {
   write('<html><head><title>'+p+'</title><style>.img{height:'+w+'; width:'+s+';} .img_max{height:auto; width:100%;}</style></head><body >');
   write('<img src="'+p+'" class="img" onclick="this.className=\'img_max\'"/>');
   write('<a href="#" onMousedown="self.close()">Zamknij</a>');
   write('</body></html>');
   close();
  }
}
Musisz mieć kod w tym stylu, trzeba jeszcze pobawić się z klasami .img i .img_max ;)

#12 19normalny89

19normalny89

    Bywalec

  • Zablokowany
  • 201 postów

Napisano 2010.09.20, 19:45

Zamiast "ereg" daj "eregi" - powinno pomó

to pomogło.

Czyli zostały 2
Musisz mieć kod w tym stylu, trzeba jeszcze pobawić się z klasami .img i .img_max <img src='http://forum.aqq.eu/public/style_emoticons/<#EMO_DIR#>/wink.gif' class='bbc_emoticon' alt=';)' />
Znaczy się ze co zmienić ?

Zmieniłem wartość 50 na 100 w
imagejpeg($min, $fol."/".$prfx.$plik, 50);
ale miniaturki dalej są fatalnej jakości.

Użytkownik 19normalny89 edytował ten post 2010.09.20, 19:47

Aqq: najnowsze (licząc bety) Wtyczki: Aqq sms, AntySpam, Blocker, Gg network, Spell checker Kompozycja: Sense Glass
Windows: 7 Ultimate Przeglądarki: Firefox 3.6 (domyślna), IE8
Komputer: Q8200 2.33GHz(x4), GeForce 9800GT(1GB DDR3), 2x2GB DDR2, Samsung HD503HI(500GB)


#13 tr0lit

tr0lit

    Rozgrzewam się

  • Użytkownik
  • 69 postów

Napisano 2010.09.20, 20:14

Używając biblioteki GD dobrej jakości nie uzyskasz, spróbuj użyć ImageMagick, gwarantuję że jakość będzie doskonała. :)

#14 19normalny89

19normalny89

    Bywalec

  • Zablokowany
  • 201 postów

Napisano 2010.09.20, 21:18

A jak z tego czegoś skorzystać ?

Aqq: najnowsze (licząc bety) Wtyczki: Aqq sms, AntySpam, Blocker, Gg network, Spell checker Kompozycja: Sense Glass
Windows: 7 Ultimate Przeglądarki: Firefox 3.6 (domyślna), IE8
Komputer: Q8200 2.33GHz(x4), GeForce 9800GT(1GB DDR3), 2x2GB DDR2, Samsung HD503HI(500GB)


#15 mav

mav

    Skrypter

  • Przyjaciel
  • 1157 postów

Napisano 2010.09.21, 19:42

Nie prościej korzystać z innych narzędzi do generowania galerii? Wiem że są takowe, które generują również galerie webowe we flashu.

JS / jQuery / PHP / MySQL / CMS / Forum filmowe / Kran kamerowy


#16 19normalny89

19normalny89

    Bywalec

  • Zablokowany
  • 201 postów

Napisano 2010.09.21, 21:12

Tylko że ja potrzebuję takie coś na stronę ze user klika w X (odnośnik do pliku install.php gdzie robi miniatury) i później na stornie w iframe jest wyświetlana strona index.php gdzie jest galeria :)

Aqq: najnowsze (licząc bety) Wtyczki: Aqq sms, AntySpam, Blocker, Gg network, Spell checker Kompozycja: Sense Glass
Windows: 7 Ultimate Przeglądarki: Firefox 3.6 (domyślna), IE8
Komputer: Q8200 2.33GHz(x4), GeForce 9800GT(1GB DDR3), 2x2GB DDR2, Samsung HD503HI(500GB)


#17 UsagiAddict

UsagiAddict

    J̵ava͡Pr͝òg̢ram̵mer

  • Użytkownik
  • 1175 postów
  • MiejscowośćWrocław

Napisano 2010.09.21, 23:06

jak ci się nie chce instalować bibliotek opensource`owych to w google wyklikaj sobie kilka słów kluczowych:
  • macierz, wyostrzająca, grafika, filtry

Does the scent of soil and beast
Breathe the life into the animal you hide
Dołączona grafika


#18 mav

mav

    Skrypter

  • Przyjaciel
  • 1157 postów

Napisano 2010.09.21, 23:41

http://www.flashgall...r.com/main.aspx
http://www.simplevie...t/simpleviewer/

20 sekund z google.

Olej iframe'y i inne badziwia.
Jest od cholery darmowych i dobrych gotowców. Nie tylko flashowych - są i jQuery z lightboxem i innymi galeriami mniej, lub bardziej znanymi 'w branży'.

Wymyślanie koła na nowo nie ma sensu.

A jeśli już naprawdę musisz pieścić się z PHP to poproś kogoś kto naprawdę pojęcie o tym ma - samemu zaczynać zabawę grzebiąc w kodzie może przynieść jakiś skutek, ale szczerze wątpię. Chyba, że lubisz truć ludziom dupę i co każdy kolejny krok zadawać setki pytań. Lub czekać na gotowca.

JS / jQuery / PHP / MySQL / CMS / Forum filmowe / Kran kamerowy


#19 19normalny89

19normalny89

    Bywalec

  • Zablokowany
  • 201 postów

Napisano 2010.09.22, 08:02

Dzięki za podpowiedzi.

mav - jeśli truję Ci dupę to po co odpisujesz ? Łaski nie robisz.

Aqq: najnowsze (licząc bety) Wtyczki: Aqq sms, AntySpam, Blocker, Gg network, Spell checker Kompozycja: Sense Glass
Windows: 7 Ultimate Przeglądarki: Firefox 3.6 (domyślna), IE8
Komputer: Q8200 2.33GHz(x4), GeForce 9800GT(1GB DDR3), 2x2GB DDR2, Samsung HD503HI(500GB)


#20 19normalny89

19normalny89

    Bywalec

  • Zablokowany
  • 201 postów

Napisano 2010.09.26, 14:44

Tyle że podane rzeczy przez mav nie tworzą miniatur automatycznie :(

Aqq: najnowsze (licząc bety) Wtyczki: Aqq sms, AntySpam, Blocker, Gg network, Spell checker Kompozycja: Sense Glass
Windows: 7 Ultimate Przeglądarki: Firefox 3.6 (domyślna), IE8
Komputer: Q8200 2.33GHz(x4), GeForce 9800GT(1GB DDR3), 2x2GB DDR2, Samsung HD503HI(500GB)





Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych