![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 24.01.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam tablice dwuwymiarową, której każda wartości opisuje kolor (odcień) piksela. Jak wygenerować obraz z takiej tablicy w [php] i wyświetlić go na stronie? |
|
|
![]() |
--webdevil-- |
![]()
Post
#2
|
Goście ![]() |
przy użyciu biblioteki GD - imagecreate (lub imagecreatetruecolor) + pętla po tablicach i imagecolorset
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 24.01.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Dzięki. Czy mógłbym jednak prosić o jakiś przykład? Z [PHP] mam do czynienia od tygodnia.
|
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Dwie pętle for. jedna używa szerokości, druga wysokości. Do tego funkcja ustawiająca kolor dla piksela o danych współrzędnych (IMG:style_emoticons/default/smile.gif) I chyba mamy wszystko.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 24.01.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Dzięki.
Ja niestety nie miałem styczności z programowaniem i pętla for oraz funkcja przypisująca kolory to dla mnie jak obliczenie całki z e^x po dx dla kogoś z podstawówki, niby proste ale dopiero jak ktoś wytłumaczy lub zademonstruje przykład. |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Prosze, tu masz przyklady:
http://pl2.php.net/manual/pl/control-structures.for.php najpierw zapoznaj się pętlą FOR. Gdy ją opanujesz zajmiemy się grafiką |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 24.01.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Ok, zapoznałem się z FOR'em. Proszę o następną wskazówkę. Jeszcze jedno pytanie, jak sprawdzić rozmiar tablicy zapisanej w pliku txt?
|
|
|
![]()
Post
#8
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
A w jakiej postaci ty masz tę tablicę w pliku?
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 24.01.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Jest to plik .dat , został wygenerowany z pliku XML z sekcji BLOB. Po otworzeniu go notatnikiem jest około 1300 lini i 850 kolum. Jest tam dużo zer, z tego co mi sie wydaje należy zrobic z tego tablice 400 na 400 i wyeliminować wartości zerowe (chyba). Są w niej wartości ujemne: -11.7719655984252 jak i dodatnie np. 69.
W sekcji BLOB zapisany był obraz i został on zdekompresowany do formy tablicy w tym pliku, by łatwo było zrobić obraz (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#10
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Skoro był to blob, to niekoniecznie musi to być tak zapisane jak myślisz. Może to być cokolwiek i jeśli nie wiesz jakim algorytmem to potraktowano by teraz zdekodować, to trochę kicha. Może być na pałę plik i tylko trzeba dodać header, może być to w base64 czy też jeszcze inaczej.
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 24.01.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Z tego pliku w octave da się wygenerować obraz :
max=18.8585; min=-20; gain=(max-min)/254; I=load('output3.dat'); A=zeros(400,400); for i=1:400 for j=1:400 if I(i,j)==A(i,j) A(i,j)=0; else A(i,j)=min+gain*I(i,j); endif endfor endfor potem pcolor(A) i rysunek jest gotowy. Chce natomiast to samo zrobić tylko w php. BLOB jest już zdekodowany i nadaje się do robienia grafiki. (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
thek base64 chyba koduje w inny sposób niż on opisał. ;p
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 24.01.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Ten obraz to mapka, więc wartości tego pliku odzwierciedlaja dlugosc i szerokosc geograficzna, by zrobić ten obraz trzeba przeskalować je na wartości odpowiednich pikseli co czyni powyzej przedstawiona fukncja i petla.
Ok. Mam tablice 400na400, chce ja ,,przekonwertowac'' na obraz. Troche namieszalem dwoma poprzednimi postami. |
|
|
![]()
Post
#14
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Fifi... A skąd ja mam wiedziec do końca jak to jest kodowane (IMG:style_emoticons/default/smile.gif) Na upartego może się tak zdarzyć, że kodowany w base64 plik da takie wyniki. Kwestia tylko małego prawdopodobieństwa. Z tego co widać to Podobną tablicę i to podobnie jak w octave można bez problemu utworzyć w php. Tylko brak funkcji pcolor i musisz ją sam pętlami zasymulować. For wewnatrz for i funkcja do kolorowania piksela. Zajrzyj do opisu biblioteki GD a na bank po angielskiej nazwie rozpoznasz o jaką funkcję chodzi (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 24.01.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Dzieki wszystkim za pomoc:)
Pozdrawiam:) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 14:47 |