![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 43 Pomógł: 0 Dołączył: 3.12.2003 Skąd: Jelenia Góra Ostrzeżenie: (0%) ![]() ![]() |
Generuje dynamicznie obrazek PNG poprzez php, ktory sie wyswietla prawidlowo. Problem w tym, ze obrazek przemieszcza sie za pomoca javascript i za kazdym ruchem glupek czyta ponownie ten obrazek. Jak obrazek to "obrazek.png" jest OK, ale jak obrazek generuje "obrazek.php" to wlasnie dzieja sie takie cyrki.
Jedyne co mi do glowy przychodzi to ze poza header("Content-type: image/png") trzeba wyslac jeszcze jakis naglowek. za wszelka pomoc z gory dziekuje |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 222 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Hm.. nigdy się nie bawiłem obrazkami, ale czy nie można za pomocą skryptu php (np. png.php) stworzyć obrazek w innym pliku (np. obrazek.png) i dopiero potem wczytać przez javascript ten drugi??
-------------------- pozdrawiam, chfast
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 43 Pomógł: 0 Dołączył: 3.12.2003 Skąd: Jelenia Góra Ostrzeżenie: (0%) ![]() ![]() |
Ma to byc mapa na ktora beda dynamicznie nanoszone punkty w zaleznosci czego szuka uzytkownik. Poniwewaz mapa zajmuje 100KB a takich obiektow na mapie bedzie ponad 100 wiec troche mi to sie za bardzo rozrasta. Poza tym ciezko pozniej dokonac jakies zmiany na mapie.
Jesli jest jakis sposob stworzenia takiego tymczasowego pliku to Twoj sposob bylby dobry, ale powstaje pytanie kiedy i co mialoby kasowac ten tymczasowy plik. Dzieki za propozycje |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Pamiętajm, że przy pomocy php możesz zapisać obrazek na dysk - a wiec zapisujeszz do pliku obrazek.png i ten obrazek czytasz. Jak chcesz zmienić obrazek.png na nowy, to wywołujesz skrypt.php - czy o to chodziło, bo wydaje mi sie, że nie zrozumiałem problemu..
-------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 43 Pomógł: 0 Dołączył: 3.12.2003 Skąd: Jelenia Góra Ostrzeżenie: (0%) ![]() ![]() |
no tak, ale co sie stanie gdy kilka osob bedzie chcialo zobaczyc mape w tym samym czasie, z innymi punktami wyszczegolnionymi?
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Wywołujesz plik generujacy obrazki z pewnymi parametrami dla danego usera, po czym zapisujesz plik według danego wzoru - np. mapa-42-coś_unikalnego-coś_jeszcze.png - coś w tym stylu; te parametry, które przekazujesz do generowania obrazka umieszczasz w nazwie pliku,żeby łatwo było go znaleźć - to już zadanie dla Ciebie
![]() Potem okresowo (np. co 2 godziny czyścisz katalog ze starych plików). |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
Nazwę obrazka można nadać taka jak ID sesji.
-------------------- |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 43 Pomógł: 0 Dołączył: 3.12.2003 Skąd: Jelenia Góra Ostrzeżenie: (0%) ![]() ![]() |
spenalzo - tak wlasnie chyba zrobie i zastosuje pomysl scannera z ID sesji
dzieki za podpowiedzi |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 43 Pomógł: 0 Dołączył: 3.12.2003 Skąd: Jelenia Góra Ostrzeżenie: (0%) ![]() ![]() |
OK, zrobilem to tak:
[php:1:80f7dc009b]<?php function usun_stare($dir) { //usuwa stare obrazki $tab = scandir($dir); //scandir zwraca pliki z podanej sciezki if ($tab) { $i = count($tab)-1; while ($i>=2) { // bo $tab[0]="." $tab[1]=".." if (time()-fileatime($dir.'/'.$tab[$i]) > 180) { //Jesli plik jest starszy niz 3 minuty unlink ($dir.'/'.$tab[$i]); } $i--; } } } function zrob_mape($x,$y) { $im = imagecreatefrompng ('pic/mapa.png'); $insert = imagecreatefrompng("pic/strzalka.png"); $background_color = imagecolorallocate ($im, 255, 255, 255); imagecolortransparent($insert,imagecolorexact($insert,255,0,255)); $insert_x = imagesx($insert); $insert_y = imagesy($insert); imagecopymerge($im,$insert,$x,$y,0,0,$insert_x,$insert_y,50); $plik = 'tmp/'.time().session_id().'.png'; imagepng ($im,$plik); ImageDestroy($im); ImageDestroy($insert); session_destroy(); return $plik; } function wypisz_polozenie() { $this->usun_stare('tmp'); $plik = $this->zrob_mape(100,100); echo '<table id="tabela" style="background: url(''.$plik.'');......... ?>[/php:1:80f7dc009b] Na poczatku wszystkiego dalem session_start() i teraz mam pytanie - czy musze pozniej robic session_destroy(). Nigdy wczesniej nie bawilem sie sesjami wiec nie wiem... Dzieki wszystkim za pomoc Jesli cos w tym kodzie jest nie tak to dajcie znac |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 19:02 |